From 0b19d7f034d04a5013d386b436b15cfc72e2489b Mon Sep 17 00:00:00 2001 From: r09 Date: Fri, 22 Feb 2019 21:42:45 +0100 Subject: [PATCH 01/42] pc98.xml: softlist updates, part 4 (C) - Added new software items from the Neo Kobe Collection: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cal III - Kanketsuhen Cal Gaiden - Tiny Steps Behind the Cal Capcom Tokoton Efude Ce'st la vie Centurion - Defender of Rome Centurion - Defender of Rome (Alt) Chiemi Chou Shinri Samâdhi ((Alt) Cherry Jam - Kanojo ga Hadaka ni Kigaetara Cherry Jam - Kanojo ga Hadaka ni Kigaetara (Alt) Chikyuu Bouei Shoujo Iko-chan - UFO Daisakusen Clipper - Takepon no Ochimono Puzzle Cocktail Soft - Zoukan-gou 2 Computer Technica FMC-98 Sound Card Driver Utility Concert Contec Super EMS Cranston Manor Cranston Manor (2HD conversion) CRW - Metal Jacket Cybernetic Hi-School / Dennou Gakuen Shin'ou Densetsu Crystania - Re-tested software entries with current MAME - Relabeled disks with their actual names - Added usage notes for software that needs DOS - Removed user disks from games where they aren't included in the original box, and the user is expected to create them - Removed duplicate images where the only differences are in the saved game data - Split "Shin'ou Densetsu Crystania DX" into the original and cracked versions - Replaced "Chou-Baku" with a dump that's actually bootable - Reordered some disks so they are auto-mounted in a more logical way - Some minor title / spelling fixes - pc98_cd.xml: added a new software item (Cyberwar) --- hash/pc98.xml | 1206 +++++++++++++++++++++++++++++++++++----------- hash/pc98_cd.xml | 37 ++ 2 files changed, 956 insertions(+), 287 deletions(-) diff --git a/hash/pc98.xml b/hash/pc98.xml index 9642650c18d..91643dfd13e 100644 --- a/hash/pc98.xml +++ b/hash/pc98.xml @@ -855,10 +855,10 @@ only have some part of Windows file and a Video driver(CLGD?). - - Microfocus Level II COBOL - 19?? - <unknown> + + Level II COBOL V2.1 + 1984 + Micro Focus @@ -921,7 +921,7 @@ only have some part of Windows file and a Video driver(CLGD?). - Copy AID98II v2.20 + Copy Aid 98 II v2.20 19?? <unknown> @@ -8705,7 +8705,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Cal 1990 バーディーソフト (Birdy Soft) @@ -8725,7 +8726,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Cal II 1991 バーディーソフト (Birdy Soft) @@ -8757,12 +8759,108 @@ only have some part of Windows file and a Video driver(CLGD?). - + + + Cal III - Kanketsuhen + 1993 + バーディーソフト (Birdy Soft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cal Gaiden - Tiny Steps Behind the Cal + 1993 + バーディーソフト (Birdy Soft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Camisole 1992 フラット (Flat) + @@ -8783,6 +8881,33 @@ only have some part of Windows file and a Video driver(CLGD?). + + + Capcom Tokoton Efude + 1992 + カプコン (Capcom) + + + + + + + + + + + + + + + + + + + + + + Campaign Version Daisenryaku II 1989 @@ -8898,7 +9023,7 @@ only have some part of Windows file and a Video driver(CLGD?). Canvas 98 - 19?? + 1992 <unknown> @@ -8915,6 +9040,7 @@ only have some part of Windows file and a Video driver(CLGD?). アグミックス (Agumix) + @@ -8955,31 +9081,13 @@ only have some part of Windows file and a Video driver(CLGD?). - - Carat - Magical Blocks (Alt) - 1992 - カスタム (Custom) - - - - - - - - - - - - - - - - - + + Card Buster 1993 F-88 + @@ -9006,7 +9114,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Carmen Sandiego in Japan - Hannin Sagashite Nihon Zenkoku 1989 ブロダーバンドジャパン (Brøderbund Japan) @@ -9026,7 +9135,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Carmine 1986 マイクロキャビン (Microcabin) @@ -9046,6 +9156,7 @@ only have some part of Windows file and a Video driver(CLGD?). + Caroll 1990 @@ -9071,6 +9182,7 @@ only have some part of Windows file and a Video driver(CLGD?). + The Castle and Princess. 1985 @@ -9144,7 +9256,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Cat's Part-1 1993 Cat's Pro. @@ -9189,6 +9302,46 @@ only have some part of Windows file and a Video driver(CLGD?). + + + + Centurion - Defender of Rome + 1993 + エレクトロニック・アーツ・ビクター (Electronic Arts Victor) + + + + + + + + + + + + + + + + + + Centurion - Defender of Rome (Alt) + 1993 + エレクトロニック・アーツ・ビクター (Electronic Arts Victor) + + + + + + + + + + + + + + Chakra 1993 @@ -9215,7 +9368,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Champions of Krynn 1992 ポニーキャニオン (Pony Canyon) @@ -9255,9 +9409,10 @@ only have some part of Windows file and a Video driver(CLGD?). - Character Editor 98˜ + Character Editor 98 19?? <unknown> + @@ -9266,10 +9421,11 @@ only have some part of Windows file and a Video driver(CLGD?). - Character Tsukuru + Character Tsukuuru 19?? アスキー (ASCII) + @@ -9398,6 +9554,7 @@ only have some part of Windows file and a Video driver(CLGD?). ペガサスジャパン (Pegasus Japan) + @@ -9418,7 +9575,7 @@ only have some part of Windows file and a Video driver(CLGD?). ペガサスジャパン (Pegasus Japan) - + @@ -9426,7 +9583,7 @@ only have some part of Windows file and a Video driver(CLGD?). - + @@ -9439,6 +9596,7 @@ only have some part of Windows file and a Video driver(CLGD?). ペガサスジャパン (Pegasus Japan) + @@ -9459,7 +9617,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Cherry Bomb - Chou Ojousama Sayaka-chan Nanpa Daisakusen 1994 ペパーミント・Kids (Peppermint Kids) @@ -9581,12 +9740,60 @@ only have some part of Windows file and a Video driver(CLGD?). - + + + + Chikyuu Bouei Shoujo Iko-chan - UFO Daisakusen + 1992 + グラムス (Glams) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Chime's Quest 1992 ログインソフト (Login Soft) + @@ -9607,7 +9814,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Chitty Chitty Train 1993 ビッツー (Bit²) @@ -9645,6 +9853,32 @@ only have some part of Windows file and a Video driver(CLGD?). + + + Chou Shinri Samâdhi (Alt) + 1994 + M.M.S. ~ Mighty Mycom System + + + + + + + + + + + + + + + + + + + + + Choujikuu Yousai Macross - Complete Pack HD Senyou 1995 @@ -9765,6 +9999,135 @@ only have some part of Windows file and a Video driver(CLGD?). + + + Chiemi + 1993 + フェアリーテール レッドゾーン (Fairytale Red-Zone) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cherry Jam - Kanojo ga Hadaka ni Kigaetara + 1996 + ジャム (Jam) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cherry Jam - Kanojo ga Hadaka ni Kigaetara (Alt) + 1996 + ジャム (Jam) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Christine 1986 @@ -9784,6 +10147,7 @@ only have some part of Windows file and a Video driver(CLGD?). アシッドプラン (Acid Plan) + @@ -9840,6 +10204,7 @@ only have some part of Windows file and a Video driver(CLGD?). アシッドプラン (Acid Plan) + @@ -9895,6 +10260,7 @@ only have some part of Windows file and a Video driver(CLGD?). 1996 アシッドプラン (Acid Plan) + @@ -9916,31 +10282,31 @@ only have some part of Windows file and a Video driver(CLGD?). - + - + - + - + - + @@ -9979,12 +10345,14 @@ only have some part of Windows file and a Video driver(CLGD?). - - Sid Meyer's Civilization + + + Sid Meier's Civilization 1992 マイクロプローズジャパン (MicroProse Japan) + @@ -10029,7 +10397,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Classic Road 1992 ビクター音楽産業 (Victor Musical Industries) @@ -10042,12 +10411,14 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Classic Road 2 1992 ビクターエンタテインメント (Victor Entertainment) + @@ -10068,7 +10439,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Classic Road 3 1994 ビクターエンタテインメント (Victor Entertainment) @@ -10107,7 +10479,42 @@ only have some part of Windows file and a Video driver(CLGD?). - + + + Ce'st la vie + 1995 + メイビーソフト (May-Be Soft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cluju 1988 ザインソフト (Xain Soft) @@ -10179,6 +10586,38 @@ only have some part of Windows file and a Video driver(CLGD?). + + + Cocktail Soft - Zoukan-gou 2 + 1992 + カクテル・ソフト (Cocktail Soft) + + + + + + + + + + + + + + + + + + + + + + + + + + + Collector D 1993 @@ -10262,10 +10701,10 @@ only have some part of Windows file and a Video driver(CLGD?). - Colonial Conquest + Sekai Seifuku - Colonial Conquest 1989 ビクター音楽産業 (Victor Musical Industries) - + @@ -10278,7 +10717,7 @@ only have some part of Windows file and a Video driver(CLGD?). Columns - Taisen Mode-tsuki 1991 システムソフト (SystemSoft) - + @@ -10287,19 +10726,6 @@ only have some part of Windows file and a Video driver(CLGD?). - - Columns - Taisen Mode-tsuki (Alt) - 1991 - システムソフト (SystemSoft) - - - - - - - - - Command H.Q. 1992 @@ -10313,7 +10739,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Company 1993 ジーエーエム (GAM) @@ -10353,6 +10780,45 @@ only have some part of Windows file and a Video driver(CLGD?). + + + + Computer Technica FMC-98 Sound Card Driver Utility + 1995? + コンピュータテクニカ (Computer Technica) + + + + + + + + + Concert + 1994 + アーヴォリオ (Aypio) + + + + + + + + + + + + + + + + + + + + + + Constructors Grand Prix 1992 @@ -10360,25 +10826,38 @@ only have some part of Windows file and a Video driver(CLGD?). - + - + - + + + + + Contec Super EMS + 1991? + Contec + + + + + + + Continental 1992 @@ -10411,6 +10890,7 @@ only have some part of Windows file and a Video driver(CLGD?). + Cosmic Psycho 1991 @@ -10469,6 +10949,47 @@ only have some part of Windows file and a Video driver(CLGD?). + + + + Cranston Manor + 1983 + スタークラフト (Starcraft) + + + + + + + + + + + + + + + + + + + + + + + + Cranston Manor (2HD conversion) + 1983 + スタークラフト (Starcraft) + + + + + + + + + Crescent 1993 @@ -10527,7 +11048,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Crescent Moon Girl (Alt Format) 1989 アリスソフト (AliceSoft) @@ -10553,34 +11075,35 @@ only have some part of Windows file and a Video driver(CLGD?). + - Crimson 3 + Crimson III 1990 クリスタルソフト (Xtal Soft) - + - + - + - + - + - + - + - + @@ -10675,6 +11198,41 @@ only have some part of Windows file and a Video driver(CLGD?). + + + + CRW - Metal Jacket + 1994 + ウィズ (Wiz) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Crystal Chaser - Tenkuu no Mashoukyuu 1991 @@ -10716,7 +11274,7 @@ only have some part of Windows file and a Video driver(CLGD?). - Crystal Dream II - Maou no Genei + Crystal Dream II - Maou no Gen'ei 1990 ストライカー (Striker) @@ -10728,6 +11286,7 @@ only have some part of Windows file and a Video driver(CLGD?). + Crystal Quest 1992 @@ -10834,12 +11393,60 @@ only have some part of Windows file and a Video driver(CLGD?). - - Crystania Shinou Densetsu + + + + Shin'ou Densetsu Crystania 1995 システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Shin'ou Densetsu Crystania - Powerup Kit + 1995 + システムソフト (SystemSoft) + + + @@ -10873,6 +11480,7 @@ only have some part of Windows file and a Video driver(CLGD?). クィーンソフト (Queensoft) + @@ -11032,6 +11640,38 @@ only have some part of Windows file and a Video driver(CLGD?). + + Cybernetic Hi-School / Dennou Gakuen + 1989 + ガイナックス (Gainax) + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cybernetic Hi-School / Dennou Gakuen Ver. 2.0 1990 @@ -24637,7 +25277,8 @@ only have some part of Windows file and a Video driver(CLGD?). - + + Libros de Chilam Balam 1992 ライトスタッフ (Right Stuff) @@ -46790,6 +47431,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) + Candy 3 19?? @@ -46814,30 +47456,32 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - - CG Tsukuruu 3D + + CG Tsukuuru 3D 19?? アスキー (ASCII) + - + - + - + Challenge the Touch-Type 2 19?? - アスキー (ASCII) - + 日本マイコン販売 (Nihon Micom Hanbai) + + @@ -46845,7 +47489,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - + Charade Magic 1992 ハートソフト (Heart Soft) @@ -46858,20 +47502,20 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - + - + - + Check Six (Demo) 1993? ペガサスジャパン (Pegasus Japan) @@ -46889,6 +47533,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) + Chou·Baku 1993 @@ -46897,26 +47542,26 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - - + + - - + + - - + + - - + + @@ -46959,11 +47604,23 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - + + Clipper - Takepon no Ochimono Puzzle + 19?? + <unknown> + + + + + + + + Computer Aided Economics 19?? <unknown> + @@ -46971,7 +47628,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - + CRW 2 1995 ウィズ (Wiz) @@ -46983,37 +47640,40 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - Crystania - Shinou Densetsu DX + Shin'ou Densetsu Crystania DX 1995 システムソフト (SystemSoft) + @@ -47074,14 +47734,79 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) - - + + + + + Shin'ou Densetsu Crystania DX (cracked) + 1995 + システムソフト (SystemSoft) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cyber Vaccine Itekomashi 19?? @@ -50121,6 +50846,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?) + Nihon Juudan Cessna Flight 1988 @@ -53436,7 +54162,7 @@ SPACE EMPIRE - + Can Can Bunny 2 - Superior 1990 カクテル・ソフト (Cocktail Soft) @@ -53455,7 +54181,8 @@ SPACE EMPIRE - + + Can Can Bunny 4 - Premiere 1992 カクテル・ソフト (Cocktail Soft) @@ -53487,39 +54214,7 @@ SPACE EMPIRE - - Can Can Bunny 4 - Premiere (Alt Disk 1) - 1992 - カクテル・ソフト (Cocktail Soft) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Can Can Bunny 5 - Extra 1993 カクテル・ソフト (Cocktail Soft) @@ -53575,7 +54270,7 @@ SPACE EMPIRE - + Can Can Bunny 5½ - Limited 1994 カクテル・ソフト (Cocktail Soft) @@ -53595,12 +54290,13 @@ SPACE EMPIRE - + Canaan - Yakusoku no Chi 1997 フォア・ナイン (Fournine) + @@ -53675,7 +54371,8 @@ SPACE EMPIRE - + + Charade 1995 アップルパイ/コーヒーぶれいく (Apple Pie / Coffee Break) @@ -53713,7 +54410,7 @@ SPACE EMPIRE - + Cherry Moderate 1996 ユーコム (Ucom) @@ -53751,8 +54448,8 @@ SPACE EMPIRE - - Cherry Moderate (Demo?) + + Cherry Moderate (Demo) 1996 ユーコム (Ucom) @@ -53788,12 +54485,13 @@ SPACE EMPIRE - + Chuushaki - Hirasawa Nurse School 1996 アーヴォリオ (Aypio) + @@ -53826,12 +54524,13 @@ SPACE EMPIRE - + Clone Doll - Kagai Juugyou 1995 スペースプロジェクト (Space Project) + @@ -53870,7 +54569,7 @@ SPACE EMPIRE - + Coin 1996 アンジェ (Ange) @@ -53895,7 +54594,7 @@ SPACE EMPIRE - + Coming Heart 1995 メイビーソフト (May-Be Soft) @@ -53921,7 +54620,7 @@ SPACE EMPIRE - + CrEastar - Planets in Legend 1989 ボーステック (Bothtec) @@ -53941,7 +54640,8 @@ SPACE EMPIRE - + + Custom Mate 2 1994 カクテル・ソフト (Cocktail Soft) @@ -53997,68 +54697,13 @@ SPACE EMPIRE - - Custom Mate 2 (Alt Disk 1) - 1994 - カクテル・ソフト (Cocktail Soft) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + Custom Mate 3 1995 カクテル・ソフト (Cocktail Soft) + @@ -54115,12 +54760,13 @@ SPACE EMPIRE - + Cyber Illusion 1995 パールソフト (Pearl Soft) + @@ -60554,7 +61200,7 @@ SPACE EMPIRE - + Computer Music Vol. 20 19?? <coverdisk> @@ -61168,7 +61814,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1991-11 1991 <coverdisk> @@ -61179,7 +61825,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-01 1992 <coverdisk> @@ -61190,7 +61836,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-02 1992 <coverdisk> @@ -61201,7 +61847,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-03 1992 <coverdisk> @@ -61212,7 +61858,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-04 1992 <coverdisk> @@ -61223,7 +61869,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-05 1992 <coverdisk> @@ -61234,7 +61880,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-06 1992 <coverdisk> @@ -61245,7 +61891,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-07 1992 <coverdisk> @@ -61256,7 +61902,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-09 1992 <coverdisk> @@ -61267,7 +61913,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-10 1992 <coverdisk> @@ -61285,7 +61931,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-11 1992 <coverdisk> @@ -61296,7 +61942,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1992-12 1992 <coverdisk> @@ -61307,7 +61953,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1993-01 1993 <coverdisk> @@ -61318,7 +61964,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1994-04 1993 <coverdisk> @@ -61329,7 +61975,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1994-05 1993 <coverdisk> @@ -61340,7 +61986,7 @@ SPACE EMPIRE - + SoftBank C Magazine 1994-06 1993 <coverdisk> @@ -62112,7 +62758,8 @@ SPACE EMPIRE - + + Car II Grand Prix 1992 バイオひゃくパーセント (Bio 100%) @@ -62123,7 +62770,8 @@ SPACE EMPIRE - + + Carax 92 1992 バイオひゃくパーセント (Bio 100%) @@ -62134,7 +62782,8 @@ SPACE EMPIRE - + + Cray Shoot 19?? バイオひゃくパーセント (Bio 100%) @@ -62444,7 +63093,8 @@ SPACE EMPIRE - + + Carrot Hunting 19?? <unofficial> @@ -63309,10 +63959,11 @@ doujin?!? - + Cal Piss Water - Ayashii CG Shuu 19?? <doujin> + @@ -63344,7 +63995,8 @@ doujin?!? - + + C.G. Gallery 7 - Escort 1992 <doujin> @@ -63356,11 +64008,12 @@ doujin?!? - + C.G. Gallery Master_98 1991 <doujin> + @@ -63400,6 +64053,7 @@ doujin?!? <doujin> + @@ -63407,7 +64061,8 @@ doujin?!? - + + ChingHai 19?? <doujin> @@ -63432,6 +64087,7 @@ doujin?!? + Collon Club 2 19?? @@ -63444,7 +64100,8 @@ doujin?!? - + + Collon Club 3 19?? <doujin> @@ -63457,9 +64114,10 @@ doujin?!? - Crazy Labyrinth - 19?? + Kyouki no Meikyuu + 1996 <doujin> + @@ -65604,19 +66262,6 @@ doujin?!? - - Cal III (Incomplete) - 1991 - バーディーソフト (Birdy Soft) - - - - - - - - - Gassen Sekigahara (Incomplete) @@ -65778,19 +66423,6 @@ doujin?!? - - Tokio 2 - Kaitaku Imin Boshuuchuu (Incomplete) - 1995 - アートディンク (Artdink) - - - - - - - - - Wrestle Angels Special (Incomplete) diff --git a/hash/pc98_cd.xml b/hash/pc98_cd.xml index edc26cc1409..de88ca06f2d 100644 --- a/hash/pc98_cd.xml +++ b/hash/pc98_cd.xml @@ -1098,6 +1098,43 @@ + + + Cyberwar + 1995 + 塚本吉彦事務所 (Tsukamoto Yoshihiko Jimusho) + + + + + + + + + + + + + + + + + + - + BAT Volume 4 (Japan) (GC0010-BAT) 2002 @@ -183,7 +183,7 @@ - + TV Pop Volume 6 (Japan) (GC0017-TPJ) 2002 @@ -194,6 +194,6 @@ - + diff --git a/hash/ekara_japan_m.xml b/hash/ekara_japan_m.xml index f46f458b793..3be3576dbe8 100644 --- a/hash/ekara_japan_m.xml +++ b/hash/ekara_japan_m.xml @@ -54,7 +54,7 @@ - + KSM Mini Volume 2 (Japan) (MC0006-KSM) 2003 @@ -64,7 +64,7 @@ - + Artist Mini Volume 7 (untranslated artist) (Japan) (MC0012-ATM) @@ -87,7 +87,7 @@ - + Artist Mini Volume 8 (BoA) (Japan) (MC0014-ATM) 2003 @@ -97,6 +97,6 @@ - + diff --git a/hash/ekara_japan_p.xml b/hash/ekara_japan_p.xml index 2995bb8d5b6..7b87f3cb076 100644 --- a/hash/ekara_japan_p.xml +++ b/hash/ekara_japan_p.xml @@ -50,7 +50,7 @@ - + ENB Volume 1 (Japan) (PC0003-ENB) 2001 diff --git a/hash/ekara_japan_sp.xml b/hash/ekara_japan_sp.xml index e5f67af4a96..f0fa50dfb0f 100644 --- a/hash/ekara_japan_sp.xml +++ b/hash/ekara_japan_sp.xml @@ -44,7 +44,7 @@ - + SP-03 Super Cartridge (Japan) 2004 @@ -55,8 +55,8 @@ - - + + SP-04 Super Cartridge (Japan) 2004 @@ -67,6 +67,6 @@ - - + + diff --git a/hash/ekara_japan_web.xml b/hash/ekara_japan_web.xml index 34e7103c6e6..9ba3f9f10b9 100644 --- a/hash/ekara_japan_web.xml +++ b/hash/ekara_japan_web.xml @@ -27,9 +27,9 @@ - + - + e-kara Web cartridge 12M (used, with 7 Songs) (Japan) 2003 @@ -39,6 +39,6 @@ - + diff --git a/hash/gamate.xml b/hash/gamate.xml index 20534013173..17f601498c8 100644 --- a/hash/gamate.xml +++ b/hash/gamate.xml @@ -546,7 +546,7 @@ C1066 - ?? - + Famous 7 1993 diff --git a/hash/ibm5150.xml b/hash/ibm5150.xml old mode 100755 new mode 100644 index 0516e41135b..23a399ad960 --- a/hash/ibm5150.xml +++ b/hash/ibm5150.xml @@ -3592,7 +3592,7 @@ Known PC Booter Games Not Dumped, Or Dumped and Lost when Demonlord's Site went - + StretchCalc 1983 @@ -7132,7 +7132,7 @@ has been replaced with an all-zero block. --> - + The Bard's Tale - Tales of the Unknown (5.25") 1987 @@ -7409,7 +7409,7 @@ has been replaced with an all-zero block. --> - + Budokan - The Martial Spirit 1989 @@ -7420,7 +7420,7 @@ has been replaced with an all-zero block. --> - + Budokan - The Martial Spirit (Big Games release) 1989 @@ -8171,7 +8171,7 @@ has been replaced with an all-zero block. --> - + Gunboat: River Combat Simulation (Hit Squad release) 1990 @@ -8357,7 +8357,7 @@ has been replaced with an all-zero block. --> - + James Clavell's Shogun (set 1) 1987 @@ -9271,7 +9271,7 @@ has been replaced with an all-zero block. --> - + Monopoly v2.00 (Shareware) 1989 @@ -9298,7 +9298,7 @@ has been replaced with an all-zero block. --> - + Monty Python's Flying Circus (3.5") 1990 @@ -10279,7 +10279,7 @@ has been replaced with an all-zero block. --> - + The Simpsons - Bart vs. the Space Mutants (Hit-Squad release) 1991 @@ -11038,7 +11038,7 @@ has been replaced with an all-zero block. --> - + Xenon (5.25") 1988 @@ -11056,7 +11056,7 @@ has been replaced with an all-zero block. --> - + Xenon (16 Blitz Plus release) (3.5") 1990 @@ -11123,7 +11123,7 @@ has been replaced with an all-zero block. --> - + Zool (Big Games release) 1993 diff --git a/hash/ibm5170.xml b/hash/ibm5170.xml index c2239a98a2d..6b6de203046 100644 --- a/hash/ibm5170.xml +++ b/hash/ibm5170.xml @@ -10747,7 +10747,7 @@ - + Micro Machines 2: Turbo Tournament 1995 @@ -11301,7 +11301,7 @@ - + The Secret of Monkey Island (Italian) 1991 diff --git a/hash/jpopira_jp.xml b/hash/jpopira_jp.xml index f3dade22f25..90c0b1b18f8 100644 --- a/hash/jpopira_jp.xml +++ b/hash/jpopira_jp.xml @@ -29,7 +29,7 @@ - + JP-02 (Japan) 2004 @@ -41,5 +41,5 @@ - + diff --git a/hash/msx1_cass.xml b/hash/msx1_cass.xml old mode 100755 new mode 100644 diff --git a/hash/sega_beena_cart.xml b/hash/sega_beena_cart.xml index ed5245bd853..95d46c8abbe 100644 --- a/hash/sega_beena_cart.xml +++ b/hash/sega_beena_cart.xml @@ -3,8 +3,8 @@ - - + + Fresh Pretty Cure 2009 Sega diff --git a/hash/timex_dock.xml b/hash/timex_dock.xml old mode 100755 new mode 100644 diff --git a/hash/vgmplay.xml b/hash/vgmplay.xml index 9c98d6a576b..c991909a30c 100644 --- a/hash/vgmplay.xml +++ b/hash/vgmplay.xml @@ -227454,7 +227454,7 @@ - + diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua index dd09da404a7..276193acc13 100644 --- a/plugins/cheatfind/init.lua +++ b/plugins/cheatfind/init.lua @@ -259,17 +259,17 @@ function cheatfind.startplugin() local devtable = {} local devsel = 1 local devcur = 1 - - + + --local formtable = { " I1", " i1", "I2", "i2", "I4", "i4", "I8", "i8", }-- " f", " d" } --local formname = { "u8", "s8", "little u16", "big u16", "little s16", "big s16", - -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", } - -- -- "little float", "big float", "little double", "big double" } + -- "little u32", "big u32", "little s32", "big s32", "little u64", "big u64", "little s64", "big s64", } + -- -- "little float", "big float", "little double", "big double" } -- Reordered into likelyhood of use order: unsigned byte by big endian unsigned by little endian unsigned then unsigned in same order local formtable = { " I1", ">I2", ">I4", ">I8", "i2", ">i4", ">i8", "f", " d" } - local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32", - "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", } - + local formname = { "u8", "big u16", "big u32", "big u64", "little u16", "little u32", + "little u64", "s8", "big s16", "big s32", "big s64", "little s16", "little s32", "little s64", } + local width = 1 local bcd = 0 local align = 0 @@ -278,16 +278,16 @@ function cheatfind.startplugin() local value = 0 local leftop = 1 local rightop = 1 - local leftop_text = "Slot 1" - local rightop_text = "Slot 1" - local value_text = "" - local expression_text = "Slot 1 < Slot 1" + local leftop_text = "Slot 1" + local rightop_text = "Slot 1" + local value_text = "" + local expression_text = "Slot 1 < Slot 1" local pausetable = { "Automatic", "Manual" } local pausesel = 1 - local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)", + local pokevaltable = { "Slot 1 Value", "Last Slot Value", "0x00", "0x01", "0x02", "0x03", "0x04", "0x05", "0x06", "0x07", "0x08", "0x09", "0x63 (Decimal 99)", "0x99 (BCD 99)", "0xFF (Decimal 255)" , "0x3E7 (Decimal 999)", "0x999 (BCD 999)", "0x270F (Decimal 9999)", "0x9999 (BCD 9999)", "0xFFFF (Decimal 65535)" } local pokevalsel = 1 - + local matches = {} local matchsel = 0 local matchpg = 0 @@ -350,12 +350,12 @@ function cheatfind.startplugin() end emu.register_start(start) - + local menu_is_showing = false - local tabbed_out = false - + local tabbed_out = false + local function menu_populate() - if pausesel == 1 then + if pausesel == 1 then emu.pause() menu_is_showing = true end @@ -504,24 +504,24 @@ function cheatfind.startplugin() local m = { _("Pause Mode"), pausetable[pausesel], 0 } menu_lim(pausesel, 1, pausetable, m) local function f(event) - if (event == "left" or event == "right") then + if (event == "left" or event == "right") then if pausesel == 1 then pausesel = 2 menu_is_showing = false manager:machine():popmessage(_("Manually pause & unpause the game when needed with the pause hotkey")) - else + else pausesel = 1 emu.pause() - end + end end return true end - return m, f - end + return m, f + end + + - - menu[#menu + 1] = function() local function f(event) local ret = false @@ -542,7 +542,7 @@ function cheatfind.startplugin() leftop_text = "Slot 1" rightop_text = "Slot 1" value_text = "" - expression_text = "Slot 1 < Slot 1" + expression_text = "Slot 1 < Slot 1" matchsel = 0 return true end @@ -550,9 +550,9 @@ function cheatfind.startplugin() local opsel = 1 return { _("Start new search"), "", 0 }, f end - - + + if #menu_blocks ~= 0 then menu[#menu + 1] = function() return { "---", "", "off" }, nil end menu[#menu + 1] = function() @@ -562,7 +562,7 @@ function cheatfind.startplugin() menu_blocks[num][#menu_blocks[num] + 1] = cheat.save(devtable[devcur].space, region.offset, region.size) end manager:machine():popmessage(string.format(_("Memory State saved to Slot %d"), #menu_blocks[1])) - + if (leftop == #menu_blocks[1] - 1 and rightop == #menu_blocks[1] - 2 ) then leftop = #menu_blocks[1] rightop = #menu_blocks[1]-1 @@ -571,7 +571,7 @@ function cheatfind.startplugin() rightop = #menu_blocks[1] elseif (leftop == #menu_blocks[1] - 1 ) then leftop = #menu_blocks[1] - elseif (rightop == #menu_blocks[1] - 1) then + elseif (rightop == #menu_blocks[1] - 1) then rightop = #menu_blocks[1] end leftop_text = string.format("Slot %d", leftop) @@ -618,27 +618,27 @@ function cheatfind.startplugin() return true end end - + if optable[opsel] == "lt" then if (value == 0 ) then - expression_text = string.format("%s < %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s < %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s - %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "gt" then if (value == 0 ) then - expression_text = string.format("%s > %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s > %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s + %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "eq" then expression_text = string.format("%s == %s", leftop_text, rightop_text) elseif optable[opsel] == "ne" then if (value == 0 ) then - expression_text = string.format("%s != %s", leftop_text, rightop_text) - else - expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value) - end + expression_text = string.format("%s != %s", leftop_text, rightop_text) + else + expression_text = string.format("%s == %s +/- %d", leftop_text, rightop_text, value) + end elseif optable[opsel] == "beq" then expression_text = string.format("%s BITWISE== %s", leftop_text, rightop_text) elseif optable[opsel] == "bne" then @@ -651,10 +651,10 @@ function cheatfind.startplugin() expression_text = string.format("%s == %d", leftop_text, value) elseif optable[opsel] == "nev" then string.format("%s != %d", leftop_text, value) - end + end return { _("Perform Compare : ") .. expression_text, "", 0 }, f end - menu[#menu + 1] = function() return { "---", "", "off" }, nil end + menu[#menu + 1] = function() return { "---", "", "off" }, nil end menu[#menu + 1] = function() local m = { _(leftop), "", 0 } menu_lim(leftop, 1, #menu_blocks[1], m) @@ -712,7 +712,7 @@ function cheatfind.startplugin() m = { _("Value"), value, "" } else m = { _("Difference"), value, "" } - end + end local max = 100 -- max value? menu_lim(value, 0, max, m) if value == 0 and optable[opsel]:sub(3, 3) ~= "v" then @@ -726,7 +726,7 @@ function cheatfind.startplugin() menu_lim(width, 1, #formtable, m) return m, function(event) local r width, r = incdec(event, width, 1, #formtable) return r end end - + menu[#menu + 1] = function() local m = { _("Test/Write Poke Value"), pokevaltable[pokevalsel], 0 } menu_lim(pokevalsel, 1, #pokevaltable, m) @@ -741,19 +741,19 @@ function cheatfind.startplugin() elseif pokevalsel == 3 then manager:machine():popmessage(_("Use this if you want to poke 0x00")) elseif pokevalsel == 4 then - manager:machine():popmessage(_("Use this if you want to poke 0x01")) + manager:machine():popmessage(_("Use this if you want to poke 0x01")) elseif pokevalsel == 5 then manager:machine():popmessage(_("Use this if you want to poke 0x02")) elseif pokevalsel == 6 then - manager:machine():popmessage(_("Use this if you want to poke 0x03")) + manager:machine():popmessage(_("Use this if you want to poke 0x03")) elseif pokevalsel == 7 then manager:machine():popmessage(_("Use this if you want to poke 0x04")) elseif pokevalsel == 8 then - manager:machine():popmessage(_("Use this if you want to poke 0x05")) + manager:machine():popmessage(_("Use this if you want to poke 0x05")) elseif pokevalsel == 9 then manager:machine():popmessage(_("Use this if you want to poke 0x06")) elseif pokevalsel == 10 then - manager:machine():popmessage(_("Use this if you want to poke 0x07")) + manager:machine():popmessage(_("Use this if you want to poke 0x07")) elseif pokevalsel == 11 then manager:machine():popmessage(_("Use this if you want to poke 0x08")) elseif pokevalsel == 12 then @@ -763,7 +763,7 @@ function cheatfind.startplugin() elseif pokevalsel == 14 then manager:machine():popmessage(_("Use this if you want to poke 0x99 (BCD 99)")) elseif pokevalsel == 15 then - manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)")) + manager:machine():popmessage(_("Use this if you want to poke 0xFF (Decimal 255)")) elseif pokevalsel == 16 then manager:machine():popmessage(_("Use this if you want to poke 0x3E7 (Decimal 999)")) elseif pokevalsel == 17 then @@ -773,15 +773,15 @@ function cheatfind.startplugin() elseif pokevalsel == 19 then manager:machine():popmessage(_("Use this if you want to poke 0x9999 (BCD 9999)")) elseif pokevalsel == 20 then - manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)")) + manager:machine():popmessage(_("Use this if you want to poke 0xFFFF (Decimal 65535)")) end end return r end return m, f end - - + + menu[#menu + 1] = function() if optable[opsel] == "bne" or optable[opsel] == "beq" then return nil @@ -873,12 +873,12 @@ function cheatfind.startplugin() local function match_exec(match) local dev = devtable[devcur] - + local wid = formtable[width]:sub(3, 3) local widchar local pokevalue local form - + if pokevalsel == 1 then pokevalue = match.oldval elseif pokevalsel == 2 then @@ -914,25 +914,25 @@ function cheatfind.startplugin() elseif pokevalsel == 17 and wid == "1" then pokevalue = 153 elseif pokevalsel == 18 and wid == "1" then - pokevalue = 99 + pokevalue = 99 elseif pokevalsel == 19 and wid == "1" then - pokevalue = 153 + pokevalue = 153 elseif pokevalsel == 20 and wid == "1" then - pokevalue = 255 + pokevalue = 255 elseif pokevalsel == 16 then - pokevalue = 999 + pokevalue = 999 elseif pokevalsel == 17 then - pokevalue = 2457 + pokevalue = 2457 elseif pokevalsel == 18 then - pokevalue = 9999 + pokevalue = 9999 elseif pokevalsel == 19 then - pokevalue = 39321 + pokevalue = 39321 elseif pokevalsel == 20 then - pokevalue = 65535 + pokevalue = 65535 end - + local cheat = { desc = string.format(_("Test Cheat %08X:%02X"), match.addr, pokevalue), script = {} } - + if wid == "2" then wid = "u16" form = "%08x %04x" @@ -958,7 +958,7 @@ function cheatfind.startplugin() form = "%08x %02x" widchar = "b" end - + if getmetatable(dev.space).__name:match("device_t") then cheat.ram = { ram = dev.tag } cheat.script.run = "ram:write(" .. match.addr .. "," .. pokevalue .. ")" @@ -1001,7 +1001,7 @@ function cheatfind.startplugin() cheat_save.json = json.stringify({[1] = cheat}, {indent = true}) cheat_save.xml = string.format("\n \n \n \n", dev.tag:sub(2), widchar, match.addr, match.newval) cheat_save.simple = string.format("%s,%s,%X,%s,%X,%%s\n", setname, dev.tag, match.addr, widchar, pokevalue) - cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue) + cheat_save.dat = string.format(":%s:40000000:%X:%08X:FFFFFFFF:%%s\n", setname, match.addr, pokevalue) manager:machine():popmessage(string.format(_("Default name is %s"), cheat_save.name)) return true else @@ -1026,7 +1026,7 @@ function cheatfind.startplugin() match.mode = 1 end local modes = { _("Test"), _("Write"), _("Watch") } - local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval, + local m = { string.format("%08x" .. bitwidth .. bitwidth, match.addr, match.oldval, match.newval), modes[match.mode], 0 } menu_lim(match.mode, 1, #modes, m) local function f(event) @@ -1081,12 +1081,12 @@ function cheatfind.startplugin() local height = mame_manager:ui():get_line_height() for num, watch in ipairs(watches) do screen:draw_text("left", num * height, string.format(watch.format, watch.addr, watch.func())) - end + end if tabbed_out and manager:ui():is_menu_active() then emu.pause() menu_is_showing = true tabbed_out = false - end + end end) emu.register_periodic(function () if menu_is_showing and not manager:ui():is_menu_active() then @@ -1094,7 +1094,7 @@ function cheatfind.startplugin() menu_is_showing = false tabbed_out = true end - end) + end) end return exports diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp index 65c5be6a383..376e2824660 100644 --- a/src/devices/bus/amiga/zorro/buddha.cpp +++ b/src/devices/bus/amiga/zorro/buddha.cpp @@ -231,8 +231,8 @@ READ16_MEMBER( buddha_device::ide_0_interrupt_r ) data = m_ide_0_interrupt << 15; -// if (VERBOSE) -// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask); +// if (VERBOSE) +// logerror("ide_0_interrupt_r %04x [mask = %04x]\n", data, mem_mask); return data; } @@ -243,8 +243,8 @@ READ16_MEMBER( buddha_device::ide_1_interrupt_r ) data = m_ide_1_interrupt << 15; -// if (VERBOSE) -// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask); +// if (VERBOSE) +// logerror("ide_1_interrupt_r %04x [mask = %04x]\n", data, mem_mask); return data; } diff --git a/src/devices/bus/ekara/slot.cpp b/src/devices/bus/ekara/slot.cpp index 6748ee935cc..5140e3f28ab 100644 --- a/src/devices/bus/ekara/slot.cpp +++ b/src/devices/bus/ekara/slot.cpp @@ -273,5 +273,5 @@ WRITE_LINE_MEMBER(ekara_cart_slot_device::write_scl) READ_LINE_MEMBER(ekara_cart_slot_device::read_sda ) { - return m_cart->read_sda(); + return m_cart->read_sda(); } diff --git a/src/devices/bus/ekara/slot.h b/src/devices/bus/ekara/slot.h index 5a619b7d800..945a5175d4b 100644 --- a/src/devices/bus/ekara/slot.h +++ b/src/devices/bus/ekara/slot.h @@ -36,7 +36,7 @@ public: virtual DECLARE_READ8_MEMBER(read_extra) { return 0xff; } virtual DECLARE_WRITE8_MEMBER(write_extra) { } - virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { } + virtual DECLARE_WRITE_LINE_MEMBER(write_sda) { } virtual DECLARE_WRITE_LINE_MEMBER(write_scl) { } //virtual DECLARE_WRITE_LINE_MEMBER( write_wc ) virtual DECLARE_READ_LINE_MEMBER( read_sda ) { return 0; } @@ -107,7 +107,7 @@ public: virtual DECLARE_READ8_MEMBER(read_extra); virtual DECLARE_WRITE8_MEMBER(write_extra); - virtual DECLARE_WRITE_LINE_MEMBER(write_sda); + virtual DECLARE_WRITE_LINE_MEMBER(write_sda); virtual DECLARE_WRITE_LINE_MEMBER(write_scl); //virtual DECLARE_WRITE_LINE_MEMBER( write_wc ); virtual DECLARE_READ_LINE_MEMBER( read_sda ); diff --git a/src/devices/bus/vsmile/vsmile_slot.cpp b/src/devices/bus/vsmile/vsmile_slot.cpp index e7b8546ea20..61d7873b63f 100644 --- a/src/devices/bus/vsmile/vsmile_slot.cpp +++ b/src/devices/bus/vsmile/vsmile_slot.cpp @@ -251,4 +251,4 @@ WRITE16_MEMBER(vsmile_cart_slot_device::bank3_w) void vsmile_cart_slot_device::set_cs2(bool cs2) { m_cart->set_cs2(cs2); -} \ No newline at end of file +} diff --git a/src/devices/cpu/i386/cpuidmsrs.hxx b/src/devices/cpu/i386/cpuidmsrs.hxx index 66a49708d86..6163dd7257f 100644 --- a/src/devices/cpu/i386/cpuidmsrs.hxx +++ b/src/devices/cpu/i386/cpuidmsrs.hxx @@ -280,15 +280,15 @@ uint64_t athlonxp_device::opcode_rdmsr(bool &valid_msr) // 39-12 PhyBase27-0 - Base address for this memory range /* Format of type field: Bits 2-0 specify the memory type with the following encoding - 0 UC Uncacheable - 1 WC Write Combining - 4 WT Write Through - 5 WP Write Protect - 6 WB Write Back - 7 UC Uncacheable used only in PAT register - Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs - Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs - Other bits are unused + 0 UC Uncacheable + 1 WC Write Combining + 4 WT Write Through + 5 WP Write Protect + 6 WB Write Back + 7 UC Uncacheable used only in PAT register + Bit 3 WrMem 1 write to memory 0 write to mmio, present only in fixed range MTRRs + Bit 4 RdMem 1 read from memory 0 read from mmio, present only in fixed range MTRRs + Other bits are unused */ break; case 0x201: // MTRRphysMask0-7 diff --git a/src/devices/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h index 62743f4c4b1..f16f1fac8cf 100644 --- a/src/devices/cpu/i86/i186.h +++ b/src/devices/cpu/i86/i186.h @@ -132,7 +132,7 @@ private: dma_state m_dma[2]; intr_state m_intr; mem_state m_mem; - bool m_last_dma; + bool m_last_dma; static const device_timer_id TIMER_INT0 = 0; static const device_timer_id TIMER_INT1 = 1; diff --git a/src/devices/machine/8042kbdc.h b/src/devices/machine/8042kbdc.h index 41ea07e71ba..38bdbe3814a 100644 --- a/src/devices/machine/8042kbdc.h +++ b/src/devices/machine/8042kbdc.h @@ -115,7 +115,7 @@ private: uint16_t m_mouse_y; uint8_t m_mouse_btn; - emu_timer * m_update_timer; + emu_timer * m_update_timer; DECLARE_WRITE_LINE_MEMBER( keyboard_w ); }; diff --git a/src/devices/machine/nscsi_cd.cpp b/src/devices/machine/nscsi_cd.cpp index 06ecb71bb04..0446c600e9f 100644 --- a/src/devices/machine/nscsi_cd.cpp +++ b/src/devices/machine/nscsi_cd.cpp @@ -607,4 +607,4 @@ bool nscsi_cdrom_sgi_device::scsi_command_done(uint8_t command, uint8_t length) default: return nscsi_full_device::scsi_command_done(command, length); } -} \ No newline at end of file +} diff --git a/src/devices/machine/spg110.cpp b/src/devices/machine/spg110.cpp index d1d4f9cfabd..df614deb314 100644 --- a/src/devices/machine/spg110.cpp +++ b/src/devices/machine/spg110.cpp @@ -5,9 +5,9 @@ SunPlus SPG110-series SoC peripheral emulation 0032xx looks like it could be the same as 003dxx on spg2xx - but the video seems to have differences, and data - is fetched from private buffers filled by DMA instead of - main space? tile attributes different? palette format different + but the video seems to have differences, and data + is fetched from private buffers filled by DMA instead of + main space? tile attributes different? palette format different **********************************************************************/ @@ -151,7 +151,7 @@ void spg110_device::blit_page(const rectangle &cliprect, uint32_t scanline, int blit(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile); else blit(cliprect, tile_scanline, xx, yy, attr, ctrl, bitmap_addr, tile); - + } } @@ -214,11 +214,11 @@ GFXDECODE_END void spg110_device::device_add_mconfig(machine_config &config) { -// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100); -// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::RGB_565, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::IRGB_4444, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::RGBI_4444, 0x100); +// PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x100); PALETTE(config, m_palette, palette_device::BLACK, 256); GFXDECODE(config, m_gfxdecode, m_palette, gfx); @@ -337,7 +337,7 @@ WRITE16_MEMBER(spg110_device::dma_len_trigger_w) uint16_t val = mem.read_word(source); this->space(0).write_word(dest * 2, val, 0xffff); - + source+=m_dma_src_step; dest+=m_dma_dst_step; } @@ -436,14 +436,14 @@ WRITE16_MEMBER(spg110_device::tmap1_regs_w) void spg110_device::map(address_map &map) { map(0x000000, 0x000fff).ram(); - - + + // vregs are at 2000? map(0x002010, 0x002015).rw(FUNC(spg110_device::tmap0_regs_r), FUNC(spg110_device::tmap0_regs_w)); map(0x002016, 0x00201b).rw(FUNC(spg110_device::tmap1_regs_r), FUNC(spg110_device::tmap1_regs_w)); map(0x00201c, 0x00201c).w(FUNC(spg110_device::spg110_201c_w)); - + map(0x002020, 0x002020).w(FUNC(spg110_device::spg110_2020_w)); map(0x002028, 0x002028).rw(FUNC(spg110_device::spg110_2028_r), FUNC(spg110_device::spg110_2028_w)); @@ -484,7 +484,7 @@ void spg110_device::map(address_map &map) map(0x00205d, 0x00205d).w(FUNC(spg110_device::spg110_205d_w)); map(0x00205e, 0x00205e).w(FUNC(spg110_device::spg110_205e_w)); map(0x00205f, 0x00205f).w(FUNC(spg110_device::spg110_205f_w)); - + //map(0x002010, 0x00205f).ram(); // everything (dma? and interrupt flag?!) @@ -498,9 +498,9 @@ void spg110_device::map(address_map &map) map(0x002068, 0x002068).w(FUNC(spg110_device::dma_src_step_w)); map(0x002200, 0x0022ff).ram(); // looks like per-pen brightness or similar? strange because palette isn't memory mapped here - + map(0x003000, 0x00307f).ram(); // sound registers? seems to be 8 long entries, only uses up to 0x7f? - map(0x003080, 0x0030ff).ram(); + map(0x003080, 0x0030ff).ram(); map(0x003100, 0x003100).w(FUNC(spg110_device::spg110_3100_w)); map(0x003101, 0x003101).w(FUNC(spg110_device::spg110_3101_w)); @@ -548,7 +548,7 @@ void spg110_device::map_video(address_map &map) map(0x04000, 0x04fff).ram(); // seems to be 3 blocks, almost certainly spritelist -// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho +// map(0x08000, 0x081ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // probably? format unknown tho map(0x08000, 0x081ff).ram().share("palram"); } diff --git a/src/devices/machine/timekpr.cpp b/src/devices/machine/timekpr.cpp index 614f071ade7..f7cfed5451c 100644 --- a/src/devices/machine/timekpr.cpp +++ b/src/devices/machine/timekpr.cpp @@ -351,7 +351,7 @@ TIMER_CALLBACK_MEMBER(timekeeper_device::watchdog_callback) m_data[m_offset_flags] |= FLAGS_WDF; // WDS (bit 7) selects callback if (m_data[m_offset_watchdog] & 0x80) - { + { // Clear watchdog register m_data[m_offset_watchdog] = 0; m_reset_cb(ASSERT_LINE); diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp index 00e9f324f87..9ee02834f67 100644 --- a/src/devices/sound/ay8910.cpp +++ b/src/devices/sound/ay8910.cpp @@ -512,54 +512,54 @@ Yamaha YMZ294: limited info: 0 I/O port OKI M5255, Winbond WF19054, JFC 95101, File KC89C72, Toshiba T7766A : differences to be listed AY8930 Expanded mode registers : - Bank Register Bits - A 0 xxxx xxxx Channel A Tone period fine tune - A 1 xxxx xxxx Channel A Tone period coarse tune - A 2 xxxx xxxx Channel B Tone period fine tune - A 3 xxxx xxxx Channel B Tone period coarse tune - A 4 xxxx xxxx Channel C Tone period fine tune - A 5 xxxx xxxx Channel C Tone period coarse tune - A 6 xxxx xxxx Noise period - A 7 x--- ---- I/O Port B input(0) / output(1) - -x-- ---- I/O Port A input(0) / output(1) - --x- ---- Channel C Noise enable(0) / disable(1) - ---x ---- Channel B Noise enable(0) / disable(1) - ---- x--- Channel A Noise enable(0) / disable(1) - ---- -x-- Channel C Tone enable(0) / disable(1) - ---- --x- Channel B Tone enable(0) / disable(1) - ---- ---x Channel A Tone enable(0) / disable(1) - A 8 --x- ---- Channel A Envelope mode - ---x xxxx Channel A Tone volume - A 9 --x- ---- Channel B Envelope mode - ---x xxxx Channel B Tone volume - A A --x- ---- Channel C Envelope mode - ---x xxxx Channel C Tone volume - A B xxxx xxxx Channel A Envelope period fine tune - A C xxxx xxxx Channel A Envelope period coarse tune - A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode - ---0 ---- 0 for Register Bank A - ---- xxxx Channel A Envelope Shape/Cycle - A E xxxx xxxx 8 bit Parallel I/O on Port A - A F xxxx xxxx 8 bit Parallel I/O on Port B + Bank Register Bits + A 0 xxxx xxxx Channel A Tone period fine tune + A 1 xxxx xxxx Channel A Tone period coarse tune + A 2 xxxx xxxx Channel B Tone period fine tune + A 3 xxxx xxxx Channel B Tone period coarse tune + A 4 xxxx xxxx Channel C Tone period fine tune + A 5 xxxx xxxx Channel C Tone period coarse tune + A 6 xxxx xxxx Noise period + A 7 x--- ---- I/O Port B input(0) / output(1) + -x-- ---- I/O Port A input(0) / output(1) + --x- ---- Channel C Noise enable(0) / disable(1) + ---x ---- Channel B Noise enable(0) / disable(1) + ---- x--- Channel A Noise enable(0) / disable(1) + ---- -x-- Channel C Tone enable(0) / disable(1) + ---- --x- Channel B Tone enable(0) / disable(1) + ---- ---x Channel A Tone enable(0) / disable(1) + A 8 --x- ---- Channel A Envelope mode + ---x xxxx Channel A Tone volume + A 9 --x- ---- Channel B Envelope mode + ---x xxxx Channel B Tone volume + A A --x- ---- Channel C Envelope mode + ---x xxxx Channel C Tone volume + A B xxxx xxxx Channel A Envelope period fine tune + A C xxxx xxxx Channel A Envelope period coarse tune + A D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode + ---0 ---- 0 for Register Bank A + ---- xxxx Channel A Envelope Shape/Cycle + A E xxxx xxxx 8 bit Parallel I/O on Port A + A F xxxx xxxx 8 bit Parallel I/O on Port B - B 0 xxxx xxxx Channel B Envelope period fine tune - B 1 xxxx xxxx Channel B Envelope period coarse tune - B 2 xxxx xxxx Channel C Envelope period fine tune - B 3 xxxx xxxx Channel C Envelope period coarse tune - B 4 ---- xxxx Channel B Envelope Shape/Cycle - B 5 ---- xxxx Channel C Envelope Shape/Cycle - B 6 ---- xxxx Channel A Duty Cycle - B 7 ---- xxxx Channel B Duty Cycle - B 8 ---- xxxx Channel C Duty Cycle - B 9 xxxx xxxx Noise "And" Mask - B A xxxx xxxx Noise "Or" Mask - B B Reserved (Read as 0) - B C Reserved (Read as 0) - B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode - ---1 ---- 1 for Register Bank B - ---- xxxx Channel A Envelope Shape - B E Reserved (Read as 0) - B F Test (Function unknown) + B 0 xxxx xxxx Channel B Envelope period fine tune + B 1 xxxx xxxx Channel B Envelope period coarse tune + B 2 xxxx xxxx Channel C Envelope period fine tune + B 3 xxxx xxxx Channel C Envelope period coarse tune + B 4 ---- xxxx Channel B Envelope Shape/Cycle + B 5 ---- xxxx Channel C Envelope Shape/Cycle + B 6 ---- xxxx Channel A Duty Cycle + B 7 ---- xxxx Channel B Duty Cycle + B 8 ---- xxxx Channel C Duty Cycle + B 9 xxxx xxxx Noise "And" Mask + B A xxxx xxxx Noise "Or" Mask + B B Reserved (Read as 0) + B C Reserved (Read as 0) + B D 101- ---- 101 = Expanded mode enable, other AY-3-8910A Compatiblity mode + ---1 ---- 1 for Register Bank B + ---- xxxx Channel A Envelope Shape + B E Reserved (Read as 0) + B F Test (Function unknown) Decaps: AY-3-8914 - http://siliconpr0n.org/map/gi/ay-3-8914/mz_mit20x/ diff --git a/src/devices/sound/ics2115.cpp b/src/devices/sound/ics2115.cpp index c5cfea8e94a..9ce19fe649f 100644 --- a/src/devices/sound/ics2115.cpp +++ b/src/devices/sound/ics2115.cpp @@ -885,8 +885,8 @@ u16 ics2115_device::word_r(offs_t offset, u16 mem_mask) break; /* case 3: - TODO : used for byte size only; - break; + TODO : used for byte size only; + break; */ default: #ifdef ICS2115_DEBUG @@ -911,8 +911,8 @@ void ics2115_device::word_w(offs_t offset, u16 data, u16 mem_mask) break; /* case 3: - TODO : used for byte size only; - break; + TODO : used for byte size only; + break; */ default: #ifdef ICS2115_DEBUG diff --git a/src/devices/video/crt9028.cpp b/src/devices/video/crt9028.cpp index 8126e5c6344..31c0c748420 100644 --- a/src/devices/video/crt9028.cpp +++ b/src/devices/video/crt9028.cpp @@ -106,7 +106,7 @@ crt9028_000_device::crt9028_000_device(const machine_config &mconfig, const char 24, 10, false, 20, 4, 8, 72, 30, 10, - 2, 8, 9, + 2, 8, 9, 0x3c0, 0x038, 0x007, 0x0f, 0x3e0, 0x020, 0x03f, 0x020, 0x10, 0xff, 0x10, 0xff) diff --git a/src/lib/netlist/analog/nlid_fourterm.h b/src/lib/netlist/analog/nlid_fourterm.h index 0b0f75d378b..5ca6a747116 100644 --- a/src/lib/netlist/analog/nlid_fourterm.h +++ b/src/lib/netlist/analog/nlid_fourterm.h @@ -44,7 +44,7 @@ namespace netlist { , m_OP(*this, "OP", &m_IP) , m_ON(*this, "ON", &m_IP) , m_IP(*this, "IP", &m_IN) // <= this should be NULL and terminal be filtered out prior to solving... - , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving... + , m_IN(*this, "IN", &m_IP) // <= this should be NULL and terminal be filtered out prior to solving... , m_OP1(*this, "_OP1", &m_IN) , m_ON1(*this, "_ON1", &m_IN) , m_gfac(1.0) diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 131504d86e4..67939f32645 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -426,7 +426,7 @@ public: } protected: - // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); } + // NETLIB_UPDATEI() { NETLIB_NAME(twoterm)::update(time); } NETLIB_RESETI() { diff --git a/src/lib/netlist/devices/nld_2102A.cpp b/src/lib/netlist/devices/nld_2102A.cpp index d256a1e244d..0ec7132b401 100644 --- a/src/lib/netlist/devices/nld_2102A.cpp +++ b/src/lib/netlist/devices/nld_2102A.cpp @@ -97,7 +97,7 @@ namespace netlist m_ram[i] = 0; } - NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") + NETLIB_DEVICE_IMPL(2102A, "RAM_2102A", "+CEQ,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+RWQ,+DI") NETLIB_DEVICE_IMPL(2102A_dip,"RAM_2102A_DIP","") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74174.cpp b/src/lib/netlist/devices/nld_74174.cpp index 13ceb370cfd..83369075db6 100644 --- a/src/lib/netlist/devices/nld_74174.cpp +++ b/src/lib/netlist/devices/nld_74174.cpp @@ -134,7 +134,7 @@ namespace netlist //m_sub.do_reset(); } - NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") + NETLIB_DEVICE_IMPL(74174, "TTL_74174", "+CLK,+D1,+D2,+D3,+D4,+D5,+D6,+CLRQ") NETLIB_DEVICE_IMPL(74174_dip,"TTL_74174_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74175.cpp b/src/lib/netlist/devices/nld_74175.cpp index 6c902df48fc..a15adb5c60f 100644 --- a/src/lib/netlist/devices/nld_74175.cpp +++ b/src/lib/netlist/devices/nld_74175.cpp @@ -111,7 +111,7 @@ namespace netlist m_data = 0xFF; } - NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ") + NETLIB_DEVICE_IMPL(74175, "TTL_74175", "+CLK,+D1,+D2,+D3,+D4,+CLRQ") NETLIB_DEVICE_IMPL(74175_dip,"TTL_74175_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74192.cpp b/src/lib/netlist/devices/nld_74192.cpp index 81edfd050be..a256f89451e 100644 --- a/src/lib/netlist/devices/nld_74192.cpp +++ b/src/lib/netlist/devices/nld_74192.cpp @@ -162,7 +162,7 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME } - NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74192, "TTL_74192", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") NETLIB_DEVICE_IMPL(74192_dip,"TTL_74192_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp index c5d46df3618..73b1d697b7b 100644 --- a/src/lib/netlist/devices/nld_74193.cpp +++ b/src/lib/netlist/devices/nld_74193.cpp @@ -139,7 +139,7 @@ namespace netlist m_CARRYQ.push(tCarry, NLTIME_FROM_NS(20)); //FIXME timing } - NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") + NETLIB_DEVICE_IMPL(74193, "TTL_74193", "+A,+B,+C,+D,+CLEAR,+LOADQ,+CU,+CD") NETLIB_DEVICE_IMPL(74193_dip, "TTL_74193_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_74194.cpp b/src/lib/netlist/devices/nld_74194.cpp index 205263c2d44..9876aa6b170 100644 --- a/src/lib/netlist/devices/nld_74194.cpp +++ b/src/lib/netlist/devices/nld_74194.cpp @@ -116,7 +116,7 @@ namespace netlist m_Q[i].push((q >> i) & 1, NLTIME_FROM_NS(26)); // FIXME: Timing } - NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") + NETLIB_DEVICE_IMPL(74194, "TTL_74194", "+CLK,+S0,+S1,+SRIN,+A,+B,+C,+D,+SLIN,+CLRQ") NETLIB_DEVICE_IMPL(74194_dip, "TTL_74194_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_ne555.cpp b/src/lib/netlist/devices/nld_ne555.cpp index d1d34835f14..ab63a58ee4c 100644 --- a/src/lib/netlist/devices/nld_ne555.cpp +++ b/src/lib/netlist/devices/nld_ne555.cpp @@ -177,7 +177,7 @@ namespace netlist m_last_out = out; } - NETLIB_DEVICE_IMPL(NE555, "NE555", "") + NETLIB_DEVICE_IMPL(NE555, "NE555", "") NETLIB_DEVICE_IMPL(NE555_dip, "NE555_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nld_tms4800.cpp b/src/lib/netlist/devices/nld_tms4800.cpp index 04d87f9201d..24729b10e72 100644 --- a/src/lib/netlist/devices/nld_tms4800.cpp +++ b/src/lib/netlist/devices/nld_tms4800.cpp @@ -97,7 +97,7 @@ namespace netlist } } - NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") + NETLIB_DEVICE_IMPL(TMS4800, "ROM_TMS4800", "+AR,+OE1,+OE2,+A0,+A1,+A2,+A3,+A4,+A5,+A6,+A7,+A8,+A9,+A10") NETLIB_DEVICE_IMPL(TMS4800_dip, "ROM_TMS4800_DIP", "") } //namespace devices diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index 8625010e92b..bc77f7ffd13 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -202,7 +202,7 @@ namespace netlist { } - NETLIB_UPDATEI() { } + NETLIB_UPDATEI() { } NETLIB_RESETI() { m_Q.initial(0.0); } NETLIB_UPDATE_PARAMI() { m_Q.push(m_IN()); } diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp index e5c59c7d43d..c2dd2c683a3 100644 --- a/src/lib/netlist/nl_base.cpp +++ b/src/lib/netlist/nl_base.cpp @@ -30,8 +30,8 @@ namespace detail //static plib::mempool *pool() //{ - // static plib::mempool s_pool(655360, 32); - // return &s_pool; + // static plib::mempool s_pool(655360, 32); + // return &s_pool; //} #if 0 @@ -49,7 +49,7 @@ namespace detail if (mem) { //if ((USE_MEMPOOL)) - // pool()->free(mem); + // pool()->free(mem); //else ::operator delete(mem); } @@ -142,7 +142,7 @@ const logic_family_desc_t *family_CD4XXX() detail::queue_t::queue_t(netlist_state_t &nl) : timed_queue, false, NL_KEEP_STATISTICS>(512) , netlist_ref(nl) -// , plib::state_manager_t::callback_t() +// , plib::state_manager_t::callback_t() , m_qsize(0) , m_times(512) , m_net_ids(512) @@ -192,7 +192,7 @@ detail::netlist_ref::netlist_ref(netlist_state_t &nl) // ---------------------------------------------------------------------------------------- detail::object_t::object_t(const pstring &aname) -// : m_name(aname) +// : m_name(aname) { name_hash().insert({this, aname}); } diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index e210bd13089..22bd9848565 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -1164,7 +1164,7 @@ namespace netlist virtual bool is_timestep() const { return false; } private: - bool m_hint_deactivate; + bool m_hint_deactivate; state_var_s32 m_active_outputs; }; @@ -1675,7 +1675,7 @@ namespace netlist { nl_assert(terminal_state() != STATE_INP_PASSIVE); //if (net().Q() != m_Q) - // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state()); + // printf("term: %s, %d %d TS %d\n", this->name().c_str(), net().Q(), m_Q, terminal_state()); #if USE_COPY_INSTEAD_OF_REFERENCE return m_Q; #else diff --git a/src/lib/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h index 2cadd3b3e1c..bf0c934a94b 100644 --- a/src/lib/netlist/nl_setup.h +++ b/src/lib/netlist/nl_setup.h @@ -278,9 +278,9 @@ namespace netlist protected: std::unordered_map m_models; std::stack m_namespace_stack; - std::unordered_map m_alias; + std::unordered_map m_alias; std::vector m_links; - std::unordered_map m_param_values; + std::unordered_map m_param_values; source_t::list_t m_sources; @@ -291,7 +291,7 @@ namespace netlist private: - plib::ppreprocessor::defines_map_type m_defines; + plib::ppreprocessor::defines_map_type m_defines; setup_t &m_setup; log_type &m_log; @@ -384,7 +384,7 @@ namespace netlist std::unordered_map m_terminals; netlist_t &m_netlist; - devices::nld_netlistparams *m_netlist_params; + devices::nld_netlistparams *m_netlist_params; std::unordered_map m_params; unsigned m_proxy_cnt; diff --git a/src/lib/netlist/plib/gmres.h b/src/lib/netlist/plib/gmres.h index 345c96b5c63..d3551897f69 100644 --- a/src/lib/netlist/plib/gmres.h +++ b/src/lib/netlist/plib/gmres.h @@ -76,12 +76,12 @@ namespace plib } PALIGNAS_VECTOROPT() - mat_type m_mat; + mat_type m_mat; PALIGNAS_VECTOROPT() - mat_type m_LU; - bool m_use_iLU_preconditioning; - std::size_t m_ILU_scale; - std::size_t m_band_width; + mat_type m_LU; + bool m_use_iLU_preconditioning; + std::size_t m_ILU_scale; + std::size_t m_band_width; }; template @@ -256,7 +256,7 @@ namespace plib m_g[0] = rho; //for (std::size_t i = 0; i < mr + 1; i++) - // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0)); + // vec_set_scalar(mr, m_ht[i], NL_FCONST(0.0)); vec_mult_scalar(n, residual, constants::one() / rho, m_v[0]); @@ -331,11 +331,11 @@ namespace plib plib::parray residual; plib::parray Ax; - plib::parray m_c; /* mr + 1 */ - plib::parray m_g; /* mr + 1 */ + plib::parray m_c; /* mr + 1 */ + plib::parray m_g; /* mr + 1 */ plib::parray, RESTART + 1> m_ht; /* (mr + 1), mr */ - plib::parray m_s; /* mr + 1 */ - plib::parray m_y; /* mr + 1 */ + plib::parray m_s; /* mr + 1 */ + plib::parray m_y; /* mr + 1 */ //plib::parray m_v[RESTART + 1]; /* mr + 1, n */ plib::parray, RESTART + 1> m_v; /* mr + 1, n */ @@ -418,10 +418,10 @@ namespace plib } else { - beta = alpha * ( c / 2.0)*( c / 2.0); - alpha = 1.0 / (d - beta); - for (std::size_t k = 0; k < size(); k++) - p[k] = residual[k] + beta * p[k]; + beta = alpha * ( c / 2.0)*( c / 2.0); + alpha = 1.0 / (d - beta); + for (std::size_t k = 0; k < size(); k++) + p[k] = residual[k] + beta * p[k]; } plib::vec_add_mult_scalar(size(), p, alpha, x); ops.calc_rhs(Ax, x); diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 6380a4cef07..44f3bdb395e 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -34,13 +34,13 @@ namespace plib { #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); #elif defined(__APPLE__) - void* p; - if (::posix_memalign(&p, alignment, size) != 0) { - p = nullptr; - } - return p; + void* p; + if (::posix_memalign(&p, alignment, size) != 0) { + p = nullptr; + } + return p; #else - return aligned_alloc(alignment, size); + return aligned_alloc(alignment, size); #endif } @@ -59,7 +59,7 @@ namespace plib { static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); //auto t = reinterpret_cast(p); //if (t & (ALIGN-1)) - // printf("alignment error!"); + // printf("alignment error!"); return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); } @@ -124,8 +124,8 @@ namespace plib { constexpr pdefault_deleter() noexcept = default; template::value>::type> - pdefault_deleter(const pdefault_deleter&) noexcept { } + std::enable_if::value>::type> + pdefault_deleter(const pdefault_deleter&) noexcept { } void operator()(T *p) const { @@ -249,62 +249,62 @@ namespace plib { class aligned_allocator { public: - using value_type = T; + using value_type = T; - static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, - "ALIGN must be greater than alignof(T) and a multiple"); + static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, + "ALIGN must be greater than alignof(T) and a multiple"); - aligned_allocator() noexcept = default; - ~aligned_allocator() noexcept = default; + aligned_allocator() noexcept = default; + ~aligned_allocator() noexcept = default; - aligned_allocator(const aligned_allocator&) noexcept = default; - aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; + aligned_allocator(const aligned_allocator&) noexcept = default; + aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; - aligned_allocator(aligned_allocator&&) noexcept = default; - aligned_allocator& operator=(aligned_allocator&&) = delete; + aligned_allocator(aligned_allocator&&) noexcept = default; + aligned_allocator& operator=(aligned_allocator&&) = delete; - template - aligned_allocator(const aligned_allocator& rhs) noexcept - { - unused_var(rhs); - } - - template struct rebind + template + aligned_allocator(const aligned_allocator& rhs) noexcept { - using other = aligned_allocator; + unused_var(rhs); + } + + template struct rebind + { + using other = aligned_allocator; }; - T* allocate(std::size_t n) - { - return reinterpret_cast(paligned_alloc(ALIGN, sizeof(T) * n)); - } + T* allocate(std::size_t n) + { + return reinterpret_cast(paligned_alloc(ALIGN, sizeof(T) * n)); + } - void deallocate(T* p, std::size_t n) noexcept - { - unused_var(n); - pfree(p); - } + void deallocate(T* p, std::size_t n) noexcept + { + unused_var(n); + pfree(p); + } - template - friend bool operator==(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept; + template + friend bool operator==(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept; - template friend class aligned_allocator; + template friend class aligned_allocator; }; - template - /*friend*/ inline bool operator==(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept - { - unused_var(lhs, rhs); - return A1 == A2; - } - template - /*friend*/ inline bool operator!=(const aligned_allocator& lhs, - const aligned_allocator& rhs) noexcept - { - return !(lhs == rhs); - } + template + /*friend*/ inline bool operator==(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept + { + unused_var(lhs, rhs); + return A1 == A2; + } + template + /*friend*/ inline bool operator!=(const aligned_allocator& lhs, + const aligned_allocator& rhs) noexcept + { + return !(lhs == rhs); + } // FIXME: needs to be somewhere else #if 0 diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 9fe4ab972eb..5ab52524a07 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -117,8 +117,8 @@ namespace plib { private: PALIGNAS_VECTOROPT() - base_type m_a; - size_type m_size; + base_type m_a; + size_type m_size; }; } // namespace plib diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index 3b4bc55fc32..1a411fe1aad 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -45,11 +45,11 @@ * Standard alignment macros */ -#define PALIGN_CACHELINE (64) -#define PALIGN_VECTOROPT (32) +#define PALIGN_CACHELINE (64) +#define PALIGN_VECTOROPT (32) -#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) -#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) +#define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) +#define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) /* Breaks mame build on windows due to -Wattribute */ #if defined(_WIN32) && defined(__GNUC__) diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h index 166c6f3d483..00e78b09fb6 100644 --- a/src/lib/netlist/plib/pmempool.h +++ b/src/lib/netlist/plib/pmempool.h @@ -29,8 +29,8 @@ namespace plib { constexpr pool_deleter() noexcept = default; template::value>::type> - pool_deleter(const pool_deleter&) noexcept { } + std::enable_if::value>::type> + pool_deleter(const pool_deleter&) noexcept { } void operator()(T *p) const { @@ -140,7 +140,7 @@ namespace plib { auto capacity(rs); ret = std::align(align, size, ret, capacity); // FIXME: if (ret == nullptr) - // printf("Oh no\n"); + // printf("Oh no\n"); sinfo().insert({ ret, info(b, b->m_cur)}); rs -= (capacity - size); b->m_cur += rs; @@ -156,7 +156,7 @@ namespace plib { auto capacity(rs); ret = std::align(align, size, ret, capacity); // FIXME: if (ret == nullptr) - // printf("Oh no\n"); + // printf("Oh no\n"); sinfo().insert({ ret, info(b, b->m_cur)}); rs -= (capacity - size); b->m_cur += rs; diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp index a751bbd2965..f9e25346493 100644 --- a/src/lib/netlist/prg/nltool.cpp +++ b/src/lib/netlist/prg/nltool.cpp @@ -17,7 +17,7 @@ #include -#define NLTOOL_VERSION 20190202 +#define NLTOOL_VERSION 20190202 class tool_app_t : public plib::app { diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 0a9f720f104..187c9f659ea 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -67,7 +67,7 @@ private: plib::parray new_V; std::array, storage_N> m_term_cr; -// std::array, storage_N> m_term_cr; +// std::array, storage_N> m_term_cr; mat_type mat; diff --git a/src/mame/drivers/c2color.cpp b/src/mame/drivers/c2color.cpp index 092a68715e9..4164553a1a2 100644 --- a/src/mame/drivers/c2color.cpp +++ b/src/mame/drivers/c2color.cpp @@ -3,24 +3,24 @@ /****************************************************************************** basic information - https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/ + https://gbatemp.net/threads/the-c2-color-game-console-an-obscure-chinese-handheld.509320/ - "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons, - and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in - 3 AA batteries if you don't want to play with it tethered to a charger. + "The C2 is a glorious console with a D-Pad, Local 2.4GHz WiFi, Cartridge slot, A, B, and C buttons, + and has micro usb power! Don't be fooled though, there is no lithium battery, so you have to put in + 3 AA batteries if you don't want to play with it tethered to a charger. It comes with a built in game based on the roco kingdom characters. In addition, there is a slot on the side of the console allowing cards to be swiped through. Those - cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use. + cards can add characters to the game. The console scans the barcode and a new character or item appears in the game for you to use. The C2 comes with 9 holographic game cards that will melt your eyes." - also includes a link to the following video - https://www.youtube.com/watch?v=D3XO4aTZEko + also includes a link to the following video + https://www.youtube.com/watch?v=D3XO4aTZEko - TODO: - identify CPU type, and if the system ROM is needed to run carts or not + TODO: + identify CPU type, and if the system ROM is needed to run carts or not *******************************************************************************/ diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index f099930d29d..b5823c8bcb9 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -32,9 +32,9 @@ motherboard and varying game boards. Sly Spy, Midnight Resistance and Boulderdash use the same graphics chips but are different pcbs. - Bandit (USA) is almost certainly a field test prototype, the software runs - on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively - not used). There is also Japanese version known to run on a DE-0321-1 top board. + Bandit (USA) is almost certainly a field test prototype, the software runs + on a Heavy Barrel board including the original Heavy Barrel MCU (which is effectively + not used). There is also Japanese version known to run on a DE-0321-1 top board. There are Secret Agent (bootleg) and Robocop (bootleg) sets to add. @@ -472,11 +472,11 @@ void dec0_state::dec0_map(address_map &map) map(0x310000, 0x3107ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); map(0x314000, 0x3147ff).ram().w(m_palette, FUNC(palette_device::write16_ext)).share("palette_ext"); - map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear - map(0x31c000, 0x31c7ff).ram().share("spriteram"); + map(0x318000, 0x31bfff).ram().share("ram"); // Bandit uses 318000/31c000 which are mirrors but exact mirror patten is unclear + map(0x31c000, 0x31c7ff).ram().share("spriteram"); map(0xff8000, 0xffbfff).ram().share("ram"); /* Main ram */ - map(0xffc000, 0xffc7ff).ram().share("spriteram"); + map(0xffc000, 0xffc7ff).ram().share("spriteram"); } void dec0_state::robocop_map(address_map &map) @@ -697,7 +697,7 @@ void dec0_state::midresb_map(address_map &map) void dec0_state::dec0_s_map(address_map &map) { map(0x0000, 0x07ff).ram(); - map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); + map(0x0800, 0x0801).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); map(0x1000, 0x1001).rw("ym2", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); map(0x3000, 0x3000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); map(0x3800, 0x3800).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); @@ -1083,94 +1083,94 @@ static INPUT_PORTS_START( bandit ) PORT_INCLUDE( dec0 ) PORT_MODIFY("INPUTS") - PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") - PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") - PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire") - PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb") - PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Fire") + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Bomb") + PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Fire") + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Bomb") + PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED ) #if 0 - PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0001, 0x0001, "UNK_0" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0002, 0x0002, "UNK_1" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0004, 0x0004, "UNK_2" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0008, 0x0008, "UNK_3" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0008, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0010, 0x0010, "UNK_4" ) // Gun + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0020, 0x0020, "UNK_5" ) // Missile + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0040, 0x0040, "UNK_6" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0080, 0x0080, "UNK_7" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) #endif PORT_MODIFY("SYSTEM") PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") - PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ? - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode - PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0001, 0x0001, "Analog controls?" ) // ? + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0002, 0x0002, "L/R control related (keep off)" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0004, 0x0004, "DSUNK_2" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0004, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0008, 0x0000, "Road select (debug)" ) // Debug mode + PORT_DIPSETTING( 0x0008, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Flip_Screen ) ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0010, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0020, 0x0020, "DSUNK_5" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0020, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0040, 0x0040, "DSUNK_6" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0040, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0080, 0x0000, "Enable enemies" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0080, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) - PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) - PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) - PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" ) - PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) - PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0100, 0x0100, "DSUNK_8" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0100, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0200, 0x0200, "DSUNK_9" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0400, 0x0400, "DSUNK_A" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0400, DEF_STR( Off ) ) + PORT_DIPNAME( 0x0800, 0x0800, "DSUNK_B" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x0800, DEF_STR( Off ) ) + PORT_DIPNAME( 0x1000, 0x1000, "DSUNK_C" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x1000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x2000, 0x2000, "DSUNK_D" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x2000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x4000, 0x4000, "DSUNK_E" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x4000, DEF_STR( Off ) ) + PORT_DIPNAME( 0x8000, 0x8000, "DSUNK_F" ) + PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) + PORT_DIPSETTING( 0x8000, DEF_STR( Off ) ) - PORT_INCLUDE( rotary_null ) + PORT_INCLUDE( rotary_null ) PORT_INCLUDE( trackball_ports ) INPUT_PORTS_END diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp index 9121d83d32f..025d9027b1a 100644 --- a/src/mame/drivers/fastfred.cpp +++ b/src/mame/drivers/fastfred.cpp @@ -918,7 +918,7 @@ ROM_END // main PCB is marked: "MC9003" and "MADE IN ITALY" on component side // main PCB is marked: "MADE IN ITALY" on solder side -// ROMs PCB is marked: "MG25157" on component side +// ROMs PCB is marked: "MG25157" on component side ROM_START( boggy84b2 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD( "boggy84-1.bin", 0x0000, 0x1000, CRC(97235e3a) SHA1(f493efd03331416a392cab7d73e39029d7e8098c) ) diff --git a/src/mame/drivers/gaelco2.cpp b/src/mame/drivers/gaelco2.cpp index 92edc4b4387..66dd20ad350 100644 --- a/src/mame/drivers/gaelco2.cpp +++ b/src/mame/drivers/gaelco2.cpp @@ -560,7 +560,7 @@ void gaelco2_state::play2000_map(address_map &map) { map(0x000000, 0x03ffff).rom(); /* ROM */ map(0x100000, 0x100001).portr("IN0"); /* Coins + other buttons? */ - map(0x110000, 0x110001).portr("IN1"); + map(0x110000, 0x110001).portr("IN1"); map(0x200000, 0x20ffff).ram().w(FUNC(gaelco2_state::gaelco2_vram_w)).share("spriteram"); /* Video RAM */ map(0x202890, 0x2028ff).rw("gaelco", FUNC(gaelco_gae1_device::gaelcosnd_r), FUNC(gaelco_gae1_device::gaelcosnd_w)); /* Sound Registers */ map(0x214000, 0x214fff).ram().w(FUNC(gaelco2_state::gaelco2_palette_w)).share("paletteram"); /* Palette */ diff --git a/src/mame/drivers/leapfrog_leappad.cpp b/src/mame/drivers/leapfrog_leappad.cpp index 6e7e4e1399d..d01fb8bbc68 100644 --- a/src/mame/drivers/leapfrog_leappad.cpp +++ b/src/mame/drivers/leapfrog_leappad.cpp @@ -2,24 +2,24 @@ // copyright-holders:David Haywood /****************************************************************************** - LEAPPAD: - Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc - The LEAPPAD is basically compareable to the SEGA PICO, but without - Screen-Output! Each "Game" consists of two parts (Book + Cartridge). - Insert the cartridge into the system and add the Book on the Top of the - "console" and you can click on each pages and hear sounds or - learning-stuff on each page... + LEAPPAD: + Example-Video: https://www.youtube.com/watch?v=LtUhENu5TKc + The LEAPPAD is basically compareable to the SEGA PICO, but without + Screen-Output! Each "Game" consists of two parts (Book + Cartridge). + Insert the cartridge into the system and add the Book on the Top of the + "console" and you can click on each pages and hear sounds or + learning-stuff on each page... - MY FIRST LEAPPAD: - Basically the same as the LEAPPAD, but for even younger kids! (Cartridge - internal PCB's are identical to LEAPPAD) - Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg + MY FIRST LEAPPAD: + Basically the same as the LEAPPAD, but for even younger kids! (Cartridge + internal PCB's are identical to LEAPPAD) + Example Video: https://www.youtube.com/watch?v=gsf8XYV1Tpg - Don't get confused by the name "LEAPPAD", as it looks like Leapfrog - also released some kind of Tablet with this name, and they even released - a new "LEAPPAD" in around 2016: - https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the - same, but is most likely techically completely different.. + Don't get confused by the name "LEAPPAD", as it looks like Leapfrog + also released some kind of Tablet with this name, and they even released + a new "LEAPPAD" in around 2016: + https://www.youtube.com/watch?v=MXFSgj6xLTU , which nearly looks like the + same, but is most likely techically completely different.. *******************************************************************************/ diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp index 1458aa9ca1b..efb064516c3 100644 --- a/src/mame/drivers/naomi.cpp +++ b/src/mame/drivers/naomi.cpp @@ -329,7 +329,7 @@ Ferrari F355 Challenge (twin/deluxe, preview) no cart 22848P* 21 (64Mb) pre \Course Edition (twin/deluxe, prototype) no cart 23399 21 (64Mb) present 315-6206 317-0287-COM content is the same as regular 171-7919A cart Inu No Osanpo / Dog Walking (Rev A) 840-0073C 22294A 16 (64Mb) present 315-6206 317-0316-JPN requires 837-13844 JVS IO with DIPSW 1 ON /Mushiking The King Of Beetle -\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS. +\(MUSHIUSA '04 1ST, Prototype) not present none 11*(64Mb) present 315-6206 not present * only first 7 flash roms contain game data, PCB have label 840-0150B-FLS. Samba de Amigo (prototype) no cart ** 21*(64Mb) present 315-6206 317-0270-COM * only first 14 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it /Shootout Pool Prize (Export) / Shootout \Pool The Medal (Japan) Version B (prototype) 840-0136C ** 21*(64Mb) present 317-6206 not present * only first 4 flash roms contain game data, ** instead of EPROM have tiny PCB with 2 flashroms on it @@ -563,9 +563,9 @@ Marvel Vs. Capcom 2 New Age of Heroes (Korea, Rev A) 841-0007C-03 23085A 14 MushiKing The King of Beetles 2K3 2ND 840-0150C 24217 6 (64Mb) present 317-0394-COM requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip Quiz Ah Megamisama 840-0030C 23227 16 (64Mb) present 317-0280-JPN Shootout Pool 840-0098C 23844 4 (64Mb) present 317-0336-COM requires regular 837-13551 and 837-13938 rotary JVS boards -/Shootout Pool Prize (Export) / +/Shootout Pool Prize (Export) / \Shootout Pool The Medal (Japan, Rev A) 840-0128C 24065A 4 (64Mb) present 317-0367-COM requires Naomi-based hopper controller -/Shootout Pool Prize (Export) / +/Shootout Pool Prize (Export) / \Shootout Pool The Medal (Japan) Version B 840-0136C 24148 4 (64Mb) present 317-0367-COM requires Naomi-based or 837-14438 hopper controller (selected by P1 BUTTON1 bit) SWP Hopper Board 840-0130C 24083 20 (64Mb) present 317-0339-COM reused VF4 Evo ROM board with all maskROMs still in place; there is an additional 837-14381 IO board Touch de Uno! 2 840-0022C 23071 6 (64Mb) present 317-0276-JPN requires 837-13844 JVS IO with DIPSW 5 On, ELO AccuTouch-compatible touch screen controller and special printer. @@ -9827,7 +9827,7 @@ ROM_START( clubk2k3 ) ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 ) /* ROM_REGION(0x200, "some_eeprom", 0) - ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */ + ROM_LOAD( "25lc040.ic13s", 0x000, 0x200, NO_DUMP ) */ // 840-0139 2003 317-0382-COM Naomi 2 ROM_PARAMETER( ":rom_board:key", "d8b0fa4c" ) diff --git a/src/mame/drivers/sega_beena.cpp b/src/mame/drivers/sega_beena.cpp index 21df51c0e72..10ceb7c14c0 100644 --- a/src/mame/drivers/sega_beena.cpp +++ b/src/mame/drivers/sega_beena.cpp @@ -4,15 +4,15 @@ Sega Beena - non-video 'book' based learning system, like LeapPad etc. + non-video 'book' based learning system, like LeapPad etc. - unknown CPU type (inside Sega custom?) + unknown CPU type (inside Sega custom?) - cartridge ROM has 'edinburgh' in the header, maybe a system codename? - ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4' - as well as .mid files for music + cartridge ROM has 'edinburgh' in the header, maybe a system codename? + ROM is also full of OGG files containing the string 'Encoded with Speex speex-1.0.4' + as well as .mid files for music - TODO: component list! + TODO: component list! *******************************************************************************/ diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp index f9a01bf8177..aaa13c3f198 100644 --- a/src/mame/drivers/segasp.cpp +++ b/src/mame/drivers/segasp.cpp @@ -628,7 +628,7 @@ ROM_START( tetgiano ) ROM_REGION( 0x08000000, "rom_board", ROMREGION_ERASEFF) // TETRIS - DEKARIS (romaji) - // / TETRIS - GIANT + // / TETRIS® - GIANT // MDA-C0076 DISK_REGION( "cflash" ) DISK_IMAGE( "mda-c0076", 0, SHA1(6987c888d2a3ada2d07f6396d47fdba507ca859d) ) diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index fa8140eaa7d..aaa044edb35 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -13,27 +13,27 @@ Justice League Dora the Explorer Mattel Classic Sports - Disney Princess (GKR) - Wheel of Fortune (GKR) - (all GameKeyReady units?) + Disney Princess (GKR) + Wheel of Fortune (GKR) + (all GameKeyReady units?) "SunPlus QL8041C" ( known as Sunplus SPG2?? ) - Clickstart ( see clickstart.cpp instead) - Wheel of Fortune 2nd Edition + Clickstart ( see clickstart.cpp instead) + Wheel of Fortune 2nd Edition "SunPlus PA7801" ( known as Sunplus SPG110? ) see spg110.cpp instead - Classic Arcade Pinball - EA Sports (NHL95 + Madden 95) - - It is unknown if the following are close to this architecture or not (no dumps yet) + Classic Arcade Pinball + EA Sports (NHL95 + Madden 95) - "SunPlus QU7073-P69A" - Mortal Kombat + It is unknown if the following are close to this architecture or not (no dumps yet) - "Sunplus QL8167" - Disney Princess (older) - Go Diego Go + "SunPlus QU7073-P69A" + Mortal Kombat + + "Sunplus QL8167" + Disney Princess (older) + Go Diego Go Disney Princess non-GKR is Sunplus QL8167. @@ -53,11 +53,11 @@ Disney Princess non-GKR is Sunplus QL8167. walle: Game seems unhappy with NVRAM, clears contents on each boot. - jak_pooh: - In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) - and the game usually softlocks when you find a friend (with or without DRC) - - vii: + jak_pooh: + In the 'Light Tag' minigame (select the rock) you can't move left with the DRC (ok with -nodrc) + and the game usually softlocks when you find a friend (with or without DRC) + + vii: When loading a cart from file manager, sometimes MAME will crash. The "MOTOR" option in the diagnostic menu does nothing when selected. The "SPEECH IC" option in the diagnostic menu does nothing when selected. @@ -71,9 +71,9 @@ Disney Princess non-GKR is Sunplus QL8167. Test Modes: Justice League : press UP, DOWN, LEFT, BT3 on the JAKKS logo in that order, quickly, to get test menu WWE : press UP, BT1, BT2 together during startup logos - - Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP, - press A, press DOWN during startup + + Disney Friends, MS Pacman, WallE, Batman (and some other HotGen GameKKeys) for test mode, hold UP, + press A, press DOWN during startup TODO: Work out how to access the hidden TEST menus for all games (most JAKKS games should have one at least) @@ -1979,7 +1979,7 @@ void spg2xx_game_state::init_crc() logerror("Calculated Byte Sum of bytes from 0x10 to 0x%08x is %08x)\n", length - 1, checksum); } - + void spg2xx_game_state::init_zeus() { uint16_t *ROM = (uint16_t*)memregion("maincpu")->base(); @@ -2052,11 +2052,11 @@ CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, emp CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available) CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released) -// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ +// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ // no keys released for the following, some were in development but cancelled // Capcom 3-in-1 CC (no game-keys released) -// Care Bears CB (no game-keys released) +// Care Bears CB (no game-keys released) // Radica TV games CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/drivers/wrlshunt.cpp b/src/mame/drivers/wrlshunt.cpp index c8ecef959ec..e2c129169c6 100644 --- a/src/mame/drivers/wrlshunt.cpp +++ b/src/mame/drivers/wrlshunt.cpp @@ -2,74 +2,74 @@ // copyright-holders:Ryan Holtz /****************************************************************************** - Wireless Hunting Video Game System skeleton driver + Wireless Hunting Video Game System skeleton driver - System: Wireless Hunting Video Game System - Publisher: Hamy / Kids Station Toys Inc - Year: 2011 - ROM: FDI MSP55LV100G - RAM: Micron Technology 48LC8M16A2 + System: Wireless Hunting Video Game System + Publisher: Hamy / Kids Station Toys Inc + Year: 2011 + ROM: FDI MSP55LV100G + RAM: Micron Technology 48LC8M16A2 - Games: - Secret Mission - Predator - Delta Force - Toy Land - Dream Forest - Trophy Season - Freedom Force - Be Careful - Net Power - Open Training - Super Archer - Ultimate Frisbee - UFO Shooting - Happy Darts - Balloon Shoot - Avatair - Angry Pirate - Penguin War - Ghost Shooter - Duck Hunt + Games: + Secret Mission + Predator + Delta Force + Toy Land + Dream Forest + Trophy Season + Freedom Force + Be Careful + Net Power + Open Training + Super Archer + Ultimate Frisbee + UFO Shooting + Happy Darts + Balloon Shoot + Avatair + Angry Pirate + Penguin War + Ghost Shooter + Duck Hunt - ROM Board: - Package: SO44 - Spacing: 1.27 mm - Width: 16.14 mm - Length: 27.78 mm - Voltage: 3V - Pinout: + ROM Board: + Package: SO44 + Spacing: 1.27 mm + Width: 16.14 mm + Length: 27.78 mm + Voltage: 3V + Pinout: - A25 A24 - | | - +--------------------------+ - A21 --|== # # `.__.' ==|-- A20 - A18 --|== ==|-- A19 - A17 --|== ==|-- A8 - A7 --|== ==|-- A9 - A6 --|== o ==|-- A10 - A5 --|== +----------------+ ==|-- A11 - A4 --|== | | ==|-- A12 - A3 --|== | MSP55LV100G | ==|-- A13 - A2 --|== | 0834 M02H | ==|-- A14 - A1 --|== | JAPAN | ==|-- A15 - A0 --|== | | ==|-- A16 - #CE --|== | | ==|-- A23 - GND --|== | | ==|-- A22 - #OE --|== | | ==|-- Q15 - Q0 --|== | | ==|-- Q7 - Q8 --|== | | ==|-- Q14 - Q1 --|== +----------------+ ==|-- Q6 - Q9 --|== ==|-- Q13 - Q2 --|== M55L100G ==|-- Q5 - Q10 --|== ==|-- Q12 - Q3 --|== ==|-- Q4 - Q11 --|== ==|-- VCC - +--------------------------+ + A25 A24 + | | + +--------------------------+ + A21 --|== # # `.__.' ==|-- A20 + A18 --|== ==|-- A19 + A17 --|== ==|-- A8 + A7 --|== ==|-- A9 + A6 --|== o ==|-- A10 + A5 --|== +----------------+ ==|-- A11 + A4 --|== | | ==|-- A12 + A3 --|== | MSP55LV100G | ==|-- A13 + A2 --|== | 0834 M02H | ==|-- A14 + A1 --|== | JAPAN | ==|-- A15 + A0 --|== | | ==|-- A16 + #CE --|== | | ==|-- A23 + GND --|== | | ==|-- A22 + #OE --|== | | ==|-- Q15 + Q0 --|== | | ==|-- Q7 + Q8 --|== | | ==|-- Q14 + Q1 --|== +----------------+ ==|-- Q6 + Q9 --|== ==|-- Q13 + Q2 --|== M55L100G ==|-- Q5 + Q10 --|== ==|-- Q12 + Q3 --|== ==|-- Q4 + Q11 --|== ==|-- VCC + +--------------------------+ - The only interesting string in this ROM is SPF2ALP, - which is also found in the Wireless Air 60 ROM. + The only interesting string in this ROM is SPF2ALP, + which is also found in the Wireless Air 60 ROM. *******************************************************************************/ diff --git a/src/mame/drivers/xavix.cpp b/src/mame/drivers/xavix.cpp index 27ba1996c21..a40f0bf3fcb 100644 --- a/src/mame/drivers/xavix.cpp +++ b/src/mame/drivers/xavix.cpp @@ -186,7 +186,7 @@ 7 PLAY TV OPUS /RADICA/USA,EU - - - - - - dumped (US version, PAL version appears to use different ROM) 8 PLAY TV Baseball 2 /EPOCH/Japan, HK - - - - - - - 9 Let's hit a homerun! Exciting baseball /EPOCH/Japan - - - - - - - Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped + Play TV Baseball /RADICA/USA,EU 8017 x8 none none SSD 98 PA7351-107 dumped 1999 1 ABC Jungle Fun Hippo /Vteck/HK, USA, France - - - - - - - Unknown 1 PLAY TV Football /RADICA/USA 74021 x8 48 4M none SSD 98 PL7351-181 dumped XaviXTennis SGM6446 x16 48 8M 24C08 SSD 2002 NEC 85054-611 dumped @@ -891,7 +891,7 @@ static INPUT_PORTS_START( popira2 ) // player 2 buttons have heavy latency, prob PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P2 Pad 1") PORT_PLAYER(2) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P2 Pad 2") PORT_PLAYER(2) - + PORT_MODIFY("AN1") // 01 PORT_DIPNAME( 0x0001, 0x0001, "AN1" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) @@ -2073,7 +2073,7 @@ ROM_END // [:] (possible DMA op SRC 00ebe2d3 DST 358a LEN 0398) // needs to come from 006be2d3 (so still from lower 8MB, not upper 8MB) -ROM_START( xavmusic ) +ROM_START( xavmusic ) ROM_REGION( 0x1000000, "bios", ROMREGION_ERASE00 ) ROM_LOAD( "xpmusicandcircuit.bin", 0x000000, 0x1000000, CRC(e06129d2) SHA1(d074d0dd85ce870f435da3c066a7f52b50999665) ) ROM_END diff --git a/src/mame/drivers/xavix2.cpp b/src/mame/drivers/xavix2.cpp index a0e6327506e..635be1be875 100644 --- a/src/mame/drivers/xavix2.cpp +++ b/src/mame/drivers/xavix2.cpp @@ -2,11 +2,11 @@ // copyright-holders:David Haywood /****************************************************************************** - XaviX 2 + XaviX 2 - unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX + unknown architecture, does not appear to be 6502 derived like XaviX / SuperXaviX - die is marked "SSD 2002-2004 NEC 800208-51" + die is marked "SSD 2002-2004 NEC 800208-51" *******************************************************************************/ diff --git a/src/mame/includes/xavix.h b/src/mame/includes/xavix.h index 4bb1084ec1a..bf2abb6ee77 100644 --- a/src/mame/includes/xavix.h +++ b/src/mame/includes/xavix.h @@ -106,10 +106,10 @@ public: void xavix(machine_config &config); void xavix_nv(machine_config &config); - + void xavixp(machine_config &config); void xavixp_nv(machine_config &config); - + void xavix2000(machine_config &config); void xavix2000_nv(machine_config &config); @@ -796,7 +796,7 @@ protected: m_cartslot->write_bus_control(space,offset,data,mem_mask); } }; - + virtual uint8_t extbus_r(offs_t offset) override { if (m_cartslot->has_cart() && m_cartslot->is_read_access_not_rom()) diff --git a/src/mame/layout/fidel_bv3.lay b/src/mame/layout/fidel_bv3.lay index 9ba7e8df705..78b9c8292f1 100644 --- a/src/mame/layout/fidel_bv3.lay +++ b/src/mame/layout/fidel_bv3.lay @@ -145,4 +145,4 @@ - \ No newline at end of file + diff --git a/src/mame/layout/fidel_vbrc.lay b/src/mame/layout/fidel_vbrc.lay index 98b43dd1ff4..5d5eba8b1b4 100644 --- a/src/mame/layout/fidel_vbrc.lay +++ b/src/mame/layout/fidel_vbrc.lay @@ -179,4 +179,4 @@ - \ No newline at end of file + diff --git a/src/mame/layout/md6802.lay b/src/mame/layout/md6802.lay old mode 100755 new mode 100644 index 2b0ccb27191..14d95bbfdf5 --- a/src/mame/layout/md6802.lay +++ b/src/mame/layout/md6802.lay @@ -5,16 +5,16 @@ copyright-holders:Joakim Larsson Edstrom Didact MD6802 layout --> - - - + + + - - + + - + @@ -53,328 +53,328 @@ Didact MD6802 layout - + - - + + - - - + + + - + - - - - - - + + + + + + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - + - + - + - - - + + + - + - - - - + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + - - - + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + - - - - + + - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + diff --git a/src/mame/layout/modulab.lay b/src/mame/layout/modulab.lay index 4dc578e65ea..b2bcac75167 100644 --- a/src/mame/layout/modulab.lay +++ b/src/mame/layout/modulab.lay @@ -52,378 +52,378 @@ Esselte Studium Modulab layout - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - + + + - - - + + + - + - - - - - - - - + + + + + + + + - - - + + + - - - + + + - - - - - - - - - + - - - - + + + + + + + + + + + + - - - - + + + + - - - - - - - + + + + + + + - + - - - - - - - + + + + + + + - + - - - - - - + + + + + + - - - + + + - - - + + + - - - - - - - + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/machine/sgi.cpp b/src/mame/machine/sgi.cpp index fd605fb03a5..629aa753a77 100644 --- a/src/mame/machine/sgi.cpp +++ b/src/mame/machine/sgi.cpp @@ -210,14 +210,14 @@ void sgi_mc_device::dma_tick() { uint32_t addr = m_dma_mem_addr; if (m_dma_control & (1 << 8)) - { // Enable virtual address translation + { // Enable virtual address translation addr = dma_translate(addr); } if (m_dma_mode & (1 << 1)) - { // Graphics to host + { // Graphics to host if (m_dma_mode & (1 << 3)) - { // Fill mode + { // Fill mode m_space->write_dword(addr, m_dma_gio64_addr); m_dma_count -= 4; } @@ -242,7 +242,7 @@ void sgi_mc_device::dma_tick() } } else - { // Host to graphics + { // Host to graphics const uint32_t remaining = m_dma_count & 0x0000ffff; uint32_t length = 8; uint64_t shift = 56; @@ -263,14 +263,14 @@ void sgi_mc_device::dma_tick() } if ((m_dma_count & 0x0000ffff) == 0) - { // If remaining byte count is 0, deduct zoom count + { // If remaining byte count is 0, deduct zoom count m_dma_count -= 0x00010000; if (m_dma_count == 0) - { // If remaining zoom count is also 0, move to next line + { // If remaining zoom count is also 0, move to next line m_dma_mem_addr += m_dma_stride & 0x0000ffff; m_dma_size -= 0x00010000; if ((m_dma_size & 0xffff0000) == 0) - { // If no remaining lines, DMA is done. + { // If no remaining lines, DMA is done. m_dma_timer->adjust(attotime::never); m_dma_run |= (1 << 3); m_dma_run &= ~(1 << 6); @@ -285,7 +285,7 @@ void sgi_mc_device::dma_tick() } } else - { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line. + { // If remaining zoom count is non-zero, reload byte count and return source address to the beginning of the line. m_dma_count |= m_dma_size & 0x0000ffff; m_dma_mem_addr -= m_dma_size & 0x0000ffff; } diff --git a/src/mame/machine/xavix.cpp b/src/mame/machine/xavix.cpp index ce8cac39de5..db535016a88 100644 --- a/src/mame/machine/xavix.cpp +++ b/src/mame/machine/xavix.cpp @@ -669,7 +669,7 @@ CUSTOM_INPUT_MEMBER(xavix_popira2_cart_state::i2c_r) { if (m_cartslot->has_cart()) return m_cartslot->read_sda(); - else + else return 0x0; } diff --git a/src/mame/video/dec0.cpp b/src/mame/video/dec0.cpp index baca9a473f6..6c94ca6d0ff 100644 --- a/src/mame/video/dec0.cpp +++ b/src/mame/video/dec0.cpp @@ -46,17 +46,17 @@ uint32_t dec0_state::screen_update_bandit(screen_device &screen, bitmap_ind16 &b if (m_pri==0) { - m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); - m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); - m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); + m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); + m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); } else { - m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); - m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); - m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); + m_tilegen[2]->deco_bac06_pf_draw(bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); + m_tilegen[1]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_tilegen[0]->deco_bac06_pf_draw(bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); + m_spritegen->draw_sprites(bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f); } return 0; } diff --git a/src/mame/video/light.cpp b/src/mame/video/light.cpp index 719113a9447..ff47c95c7e3 100644 --- a/src/mame/video/light.cpp +++ b/src/mame/video/light.cpp @@ -1,16 +1,16 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, Tyson Smith /* - Silicon Graphics LG1 "Light" graphics board used as - entry level graphics in the Indigo and IRIS Crimson. + Silicon Graphics LG1 "Light" graphics board used as + entry level graphics in the Indigo and IRIS Crimson. */ #include "emu.h" #include "video/light.h" #include "screen.h" -#define LOG_REX (1 << 0) -#define LOG_ALL (LOG_REX) +#define LOG_REX (1 << 0) +#define LOG_ALL (LOG_REX) #define VERBOSE (0) #include "logmacro.h" diff --git a/src/mame/video/light.h b/src/mame/video/light.h index ffc9932d02e..82799fc906b 100644 --- a/src/mame/video/light.h +++ b/src/mame/video/light.h @@ -1,8 +1,8 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, Tyson Smith /* - Silicon Graphics LG1 "Light" graphics board used as - entry level graphics in the Indigo and IRIS Crimson. + Silicon Graphics LG1 "Light" graphics board used as + entry level graphics in the Indigo and IRIS Crimson. */ #ifndef MAME_VIDEO_LIGHT_H diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp index 0b46c6a0314..f1dd9cb004b 100644 --- a/src/mame/video/newport.cpp +++ b/src/mame/video/newport.cpp @@ -37,7 +37,7 @@ #define LOG_XMAP1 (1 << 5) #define LOG_REX3 (1 << 6) #define LOG_COMMANDS (1 << 7) -#define LOG_REJECTS (1 << 8) +#define LOG_REJECTS (1 << 8) #define LOG_ALL (LOG_UNKNOWN | LOG_VC2 | LOG_CMAP0 | LOG_CMAP1 | LOG_XMAP0 | LOG_XMAP1 | LOG_REX3) #define VERBOSE (0)//(LOG_UNKNOWN | LOG_VC2 | LOG_XMAP0 | LOG_CMAP0 | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS) @@ -360,9 +360,9 @@ uint32_t newport_video_device::screen_update(screen_device &device, bitmap_rgb32 case 3: { const uint8_t pix_in = *src_ci; - const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0)); - const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3)); - const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6)); + const uint8_t r = (0x92 * BIT(pix_in, 2)) | (0x49 * BIT(pix_in, 1)) | (0x24 * BIT(pix_in, 0)); + const uint8_t g = (0x92 * BIT(pix_in, 5)) | (0x49 * BIT(pix_in, 4)) | (0x24 * BIT(pix_in, 3)); + const uint8_t b = (0xaa * BIT(pix_in, 7)) | (0x55 * BIT(pix_in, 6)); *dest++ = (r << 16) | (g << 8) | b; break; } @@ -1392,22 +1392,22 @@ void newport_video_device::store_pixel(uint8_t *dest_buf, uint8_t src) switch ((m_rex3.m_draw_mode1 >> 28) & 15) { - case 0: break; - case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break; - case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break; - case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break; - case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break; - case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break; - case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break; - case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break; - case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break; - case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break; - case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break; - case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break; - case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break; - case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break; - case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break; - case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break; + case 0: break; + case 1: *dest_buf |= (src & dst) & m_rex3.m_write_mask; break; + case 2: *dest_buf |= (src & ~dst) & m_rex3.m_write_mask; break; + case 3: *dest_buf |= (src) & m_rex3.m_write_mask; break; + case 4: *dest_buf |= (~src & dst) & m_rex3.m_write_mask; break; + case 5: *dest_buf |= (dst) & m_rex3.m_write_mask; break; + case 6: *dest_buf |= (src ^ dst) & m_rex3.m_write_mask; break; + case 7: *dest_buf |= (src | dst) & m_rex3.m_write_mask; break; + case 8: *dest_buf |= ~(src | dst) & m_rex3.m_write_mask; break; + case 9: *dest_buf |= ~(src ^ dst) & m_rex3.m_write_mask; break; + case 10: *dest_buf |= ~(dst) & m_rex3.m_write_mask; break; + case 11: *dest_buf |= (src | ~dst) & m_rex3.m_write_mask; break; + case 12: *dest_buf |= ~(src) & m_rex3.m_write_mask; break; + case 13: *dest_buf |= (~src | dst) & m_rex3.m_write_mask; break; + case 14: *dest_buf |= ~(src & dst) & m_rex3.m_write_mask; break; + case 15: *dest_buf |= 0xff & m_rex3.m_write_mask; break; } } @@ -1452,26 +1452,26 @@ void newport_video_device::do_v_iline(uint8_t color, bool skip_last, bool shade) do { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); - y1 += incy; + y1 += incy; if (shade) m_rex3.m_color_red += m_rex3.m_slope_red; } while (y1 != y2); - if (!skip_last) - { + if (!skip_last) + { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); - } + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); + } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade) @@ -1495,15 +1495,15 @@ void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade) m_rex3.m_color_red += m_rex3.m_slope_red; } while (x1 != x2); - if (!skip_last) { + if (!skip_last) { if (shade) - write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); - else - write_pixel(x1, y1, color); - } + write_pixel(x1, y1, (uint8_t)(m_rex3.m_color_red >> 11)); + else + write_pixel(x1, y1, color); + } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) @@ -1621,8 +1621,8 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) } } - write_x_start(x1 << 11); - write_y_start(y1 << 11); + write_x_start(x1 << 11); + write_y_start(y1 << 11); } uint8_t newport_video_device::do_pixel_read() @@ -1763,8 +1763,8 @@ void newport_video_device::do_rex3_command() { //if (shade) //{ - // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); - // m_rex3.m_color_red += m_rex3.m_slope_red; + // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); + // m_rex3.m_color_red += m_rex3.m_slope_red; //} //else //{ diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h index 65ebbaa58a4..4d87237d0e2 100644 --- a/src/mame/video/newport.h +++ b/src/mame/video/newport.h @@ -11,7 +11,7 @@ #include "machine/hpc3.h" -#define ENABLE_NEWVIEW_LOG (0) +#define ENABLE_NEWVIEW_LOG (0) class newport_video_device : public device_t { diff --git a/src/osd/modules/input/input_sdl.cpp b/src/osd/modules/input/input_sdl.cpp index 7c86b4bd837..40fe037f8c7 100644 --- a/src/osd/modules/input/input_sdl.cpp +++ b/src/osd/modules/input/input_sdl.cpp @@ -63,263 +63,263 @@ struct key_lookup_table static key_lookup_table sdl_lookup_table[] = { - KE(UNKNOWN) + KE(UNKNOWN) - KE(A) - KE(B) - KE(C) - KE(D) - KE(E) - KE(F) - KE(G) - KE(H) - KE(I) - KE(J) - KE(K) - KE(L) - KE(M) - KE(N) - KE(O) - KE(P) - KE(Q) - KE(R) - KE(S) - KE(T) - KE(U) - KE(V) - KE(W) - KE(X) - KE(Y) - KE(Z) + KE(A) + KE(B) + KE(C) + KE(D) + KE(E) + KE(F) + KE(G) + KE(H) + KE(I) + KE(J) + KE(K) + KE(L) + KE(M) + KE(N) + KE(O) + KE(P) + KE(Q) + KE(R) + KE(S) + KE(T) + KE(U) + KE(V) + KE(W) + KE(X) + KE(Y) + KE(Z) - KE(1) - KE(2) - KE(3) - KE(4) - KE(5) - KE(6) - KE(7) - KE(8) - KE(9) - KE(0) + KE(1) + KE(2) + KE(3) + KE(4) + KE(5) + KE(6) + KE(7) + KE(8) + KE(9) + KE(0) - KE(RETURN) - KE(ESCAPE) - KE(BACKSPACE) - KE(TAB) - KE(SPACE) + KE(RETURN) + KE(ESCAPE) + KE(BACKSPACE) + KE(TAB) + KE(SPACE) - KE(MINUS) - KE(EQUALS) - KE(LEFTBRACKET) - KE(RIGHTBRACKET) - KE(BACKSLASH) - KE(NONUSHASH) - KE(SEMICOLON) - KE(APOSTROPHE) - KE(GRAVE) - KE(COMMA) - KE(PERIOD) - KE(SLASH) + KE(MINUS) + KE(EQUALS) + KE(LEFTBRACKET) + KE(RIGHTBRACKET) + KE(BACKSLASH) + KE(NONUSHASH) + KE(SEMICOLON) + KE(APOSTROPHE) + KE(GRAVE) + KE(COMMA) + KE(PERIOD) + KE(SLASH) - KE(CAPSLOCK) + KE(CAPSLOCK) - KE(F1) - KE(F2) - KE(F3) - KE(F4) - KE(F5) - KE(F6) - KE(F7) - KE(F8) - KE(F9) - KE(F10) - KE(F11) - KE(F12) + KE(F1) + KE(F2) + KE(F3) + KE(F4) + KE(F5) + KE(F6) + KE(F7) + KE(F8) + KE(F9) + KE(F10) + KE(F11) + KE(F12) - KE(PRINTSCREEN) - KE(SCROLLLOCK) - KE(PAUSE) - KE(INSERT) - KE(HOME) - KE(PAGEUP) - KE(DELETE) - KE(END) - KE(PAGEDOWN) - KE(RIGHT) - KE(LEFT) - KE(DOWN) - KE(UP) + KE(PRINTSCREEN) + KE(SCROLLLOCK) + KE(PAUSE) + KE(INSERT) + KE(HOME) + KE(PAGEUP) + KE(DELETE) + KE(END) + KE(PAGEDOWN) + KE(RIGHT) + KE(LEFT) + KE(DOWN) + KE(UP) - KE(NUMLOCKCLEAR) - KE(KP_DIVIDE) - KE(KP_MULTIPLY) - KE(KP_MINUS) - KE(KP_PLUS) - KE(KP_ENTER) - KE(KP_1) - KE(KP_2) - KE(KP_3) - KE(KP_4) - KE(KP_5) - KE(KP_6) - KE(KP_7) - KE(KP_8) - KE(KP_9) - KE(KP_0) - KE(KP_PERIOD) + KE(NUMLOCKCLEAR) + KE(KP_DIVIDE) + KE(KP_MULTIPLY) + KE(KP_MINUS) + KE(KP_PLUS) + KE(KP_ENTER) + KE(KP_1) + KE(KP_2) + KE(KP_3) + KE(KP_4) + KE(KP_5) + KE(KP_6) + KE(KP_7) + KE(KP_8) + KE(KP_9) + KE(KP_0) + KE(KP_PERIOD) - KE(NONUSBACKSLASH) - KE(APPLICATION) - KE(POWER) - KE(KP_EQUALS) - KE(F13) - KE(F14) - KE(F15) - KE(F16) - KE(F17) - KE(F18) - KE(F19) - KE(F20) - KE(F21) - KE(F22) - KE(F23) - KE(F24) - KE(EXECUTE) - KE(HELP) - KE(MENU) - KE(SELECT) - KE(STOP) - KE(AGAIN) - KE(UNDO) - KE(CUT) - KE(COPY) - KE(PASTE) - KE(FIND) - KE(MUTE) - KE(VOLUMEUP) - KE(VOLUMEDOWN) - KE(KP_COMMA) - KE(KP_EQUALSAS400) + KE(NONUSBACKSLASH) + KE(APPLICATION) + KE(POWER) + KE(KP_EQUALS) + KE(F13) + KE(F14) + KE(F15) + KE(F16) + KE(F17) + KE(F18) + KE(F19) + KE(F20) + KE(F21) + KE(F22) + KE(F23) + KE(F24) + KE(EXECUTE) + KE(HELP) + KE(MENU) + KE(SELECT) + KE(STOP) + KE(AGAIN) + KE(UNDO) + KE(CUT) + KE(COPY) + KE(PASTE) + KE(FIND) + KE(MUTE) + KE(VOLUMEUP) + KE(VOLUMEDOWN) + KE(KP_COMMA) + KE(KP_EQUALSAS400) - KE(INTERNATIONAL1) - KE(INTERNATIONAL2) - KE(INTERNATIONAL3) - KE(INTERNATIONAL4) - KE(INTERNATIONAL5) - KE(INTERNATIONAL6) - KE(INTERNATIONAL7) - KE(INTERNATIONAL8) - KE(INTERNATIONAL9) - KE(LANG1) - KE(LANG2) - KE(LANG3) - KE(LANG4) - KE(LANG5) - KE(LANG6) - KE(LANG7) - KE(LANG8) - KE(LANG9) + KE(INTERNATIONAL1) + KE(INTERNATIONAL2) + KE(INTERNATIONAL3) + KE(INTERNATIONAL4) + KE(INTERNATIONAL5) + KE(INTERNATIONAL6) + KE(INTERNATIONAL7) + KE(INTERNATIONAL8) + KE(INTERNATIONAL9) + KE(LANG1) + KE(LANG2) + KE(LANG3) + KE(LANG4) + KE(LANG5) + KE(LANG6) + KE(LANG7) + KE(LANG8) + KE(LANG9) - KE(ALTERASE) - KE(SYSREQ) - KE(CANCEL) - KE(CLEAR) - KE(PRIOR) - KE(RETURN2) - KE(SEPARATOR) - KE(OUT) - KE(OPER) - KE(CLEARAGAIN) - KE(CRSEL) - KE(EXSEL) + KE(ALTERASE) + KE(SYSREQ) + KE(CANCEL) + KE(CLEAR) + KE(PRIOR) + KE(RETURN2) + KE(SEPARATOR) + KE(OUT) + KE(OPER) + KE(CLEARAGAIN) + KE(CRSEL) + KE(EXSEL) - KE(KP_00) - KE(KP_000) - KE(THOUSANDSSEPARATOR) - KE(DECIMALSEPARATOR) - KE(CURRENCYUNIT) - KE(CURRENCYSUBUNIT) - KE(KP_LEFTPAREN) - KE(KP_RIGHTPAREN) - KE(KP_LEFTBRACE) - KE(KP_RIGHTBRACE) - KE(KP_TAB) - KE(KP_BACKSPACE) - KE(KP_A) - KE(KP_B) - KE(KP_C) - KE(KP_D) - KE(KP_E) - KE(KP_F) - KE(KP_XOR) - KE(KP_POWER) - KE(KP_PERCENT) - KE(KP_LESS) - KE(KP_GREATER) - KE(KP_AMPERSAND) - KE(KP_DBLAMPERSAND) - KE(KP_VERTICALBAR) - KE(KP_DBLVERTICALBAR) - KE(KP_COLON) - KE(KP_HASH) - KE(KP_SPACE) - KE(KP_AT) - KE(KP_EXCLAM) - KE(KP_MEMSTORE) - KE(KP_MEMRECALL) - KE(KP_MEMCLEAR) - KE(KP_MEMADD) - KE(KP_MEMSUBTRACT) - KE(KP_MEMMULTIPLY) - KE(KP_MEMDIVIDE) - KE(KP_PLUSMINUS) - KE(KP_CLEAR) - KE(KP_CLEARENTRY) - KE(KP_BINARY) - KE(KP_OCTAL) - KE(KP_DECIMAL) - KE(KP_HEXADECIMAL) + KE(KP_00) + KE(KP_000) + KE(THOUSANDSSEPARATOR) + KE(DECIMALSEPARATOR) + KE(CURRENCYUNIT) + KE(CURRENCYSUBUNIT) + KE(KP_LEFTPAREN) + KE(KP_RIGHTPAREN) + KE(KP_LEFTBRACE) + KE(KP_RIGHTBRACE) + KE(KP_TAB) + KE(KP_BACKSPACE) + KE(KP_A) + KE(KP_B) + KE(KP_C) + KE(KP_D) + KE(KP_E) + KE(KP_F) + KE(KP_XOR) + KE(KP_POWER) + KE(KP_PERCENT) + KE(KP_LESS) + KE(KP_GREATER) + KE(KP_AMPERSAND) + KE(KP_DBLAMPERSAND) + KE(KP_VERTICALBAR) + KE(KP_DBLVERTICALBAR) + KE(KP_COLON) + KE(KP_HASH) + KE(KP_SPACE) + KE(KP_AT) + KE(KP_EXCLAM) + KE(KP_MEMSTORE) + KE(KP_MEMRECALL) + KE(KP_MEMCLEAR) + KE(KP_MEMADD) + KE(KP_MEMSUBTRACT) + KE(KP_MEMMULTIPLY) + KE(KP_MEMDIVIDE) + KE(KP_PLUSMINUS) + KE(KP_CLEAR) + KE(KP_CLEARENTRY) + KE(KP_BINARY) + KE(KP_OCTAL) + KE(KP_DECIMAL) + KE(KP_HEXADECIMAL) - KE(LCTRL) - KE(LSHIFT) - KE(LALT) - KE(LGUI) - KE(RCTRL) - KE(RSHIFT) - KE(RALT) - KE(RGUI) + KE(LCTRL) + KE(LSHIFT) + KE(LALT) + KE(LGUI) + KE(RCTRL) + KE(RSHIFT) + KE(RALT) + KE(RGUI) - KE(MODE) - KE(AUDIONEXT) - KE(AUDIOPREV) - KE(AUDIOSTOP) - KE(AUDIOPLAY) - KE(AUDIOMUTE) - KE(MEDIASELECT) - KE(WWW) - KE(MAIL) - KE(CALCULATOR) - KE(COMPUTER) - KE(AC_SEARCH) - KE(AC_HOME) - KE(AC_BACK) - KE(AC_FORWARD) - KE(AC_STOP) - KE(AC_REFRESH) - KE(AC_BOOKMARKS) + KE(MODE) + KE(AUDIONEXT) + KE(AUDIOPREV) + KE(AUDIOSTOP) + KE(AUDIOPLAY) + KE(AUDIOMUTE) + KE(MEDIASELECT) + KE(WWW) + KE(MAIL) + KE(CALCULATOR) + KE(COMPUTER) + KE(AC_SEARCH) + KE(AC_HOME) + KE(AC_BACK) + KE(AC_FORWARD) + KE(AC_STOP) + KE(AC_REFRESH) + KE(AC_BOOKMARKS) - KE(BRIGHTNESSDOWN) - KE(BRIGHTNESSUP) - KE(DISPLAYSWITCH) - KE(KBDILLUMTOGGLE) - KE(KBDILLUMDOWN) - KE(KBDILLUMUP) - KE(EJECT) - KE(SLEEP) + KE(BRIGHTNESSDOWN) + KE(BRIGHTNESSUP) + KE(DISPLAYSWITCH) + KE(KBDILLUMTOGGLE) + KE(KBDILLUMDOWN) + KE(KBDILLUMUP) + KE(EJECT) + KE(SLEEP) - KE(APP1) - KE(APP2) + KE(APP1) + KE(APP2) { diff --git a/src/tools/imgtool/modules/rt11.cpp b/src/tools/imgtool/modules/rt11.cpp index 3cce60a050f..f7f5a515f2c 100644 --- a/src/tools/imgtool/modules/rt11.cpp +++ b/src/tools/imgtool/modules/rt11.cpp @@ -6,68 +6,68 @@ DEC RT-11 disk images - References: + References: - VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf - DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf - SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf - TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf - PUTR -- http://www.dbit.com/pub/putr/putr.asm + VaFFM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf + DHM -- bitsavers://pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PE7VA-TC_RT-11_Device_Handlers_Manual_Aug91.pdf + SSM -- bitsavers://pdf/dec/pdp11/rt11/v5.0_Mar83/AA-H379B-TC_5.0_SWsuppMar83.pdf + TSX+ -- bitsavers://pdf/dec/pdp11/tsxPlus/manuals_6.31/TSX-Plus_UsersRef_Jan88.pdf + PUTR -- http://www.dbit.com/pub/putr/putr.asm - To do: - - filter for text files - - read-write support - - report empty 'last modified' time if date field is all zeros - - report free space - - arbitrary sized images - - don't crash when strings in home block have non-ascii chars (charconverter does not apply) - - do something about bootblock bug in imgtool (commit aca90520) + To do: + - filter for text files + - read-write support + - report empty 'last modified' time if date field is all zeros + - report free space + - arbitrary sized images + - don't crash when strings in home block have non-ascii chars (charconverter does not apply) + - do something about bootblock bug in imgtool (commit aca90520) - LBN Contents - --- -------- - 0 Reserved (primary bootstrap) - 1 Reserved (home block) - 2-5 Reserved (secondary bootstrap) - 6-7 Directory segment 1 - ... Directory segment 2-n - ... Data + LBN Contents + --- -------- + 0 Reserved (primary bootstrap) + 1 Reserved (home block) + 2-5 Reserved (secondary bootstrap) + 6-7 Directory segment 1 + ... Directory segment 2-n + ... Data - Home block - ---------- - 000-201 Bad block replacement table - 202-203 ? - 204-251 INITIALIZE/RESTORE data area - 252-273 BUP information area - 274-677 ? - 700-701 (Reserved for Digital, must be zero) - 702-703 (Reserved for Digital, must be zero) - 704-721 ? - 722-723 Pack cluster size (= 1) - 724-725 Block number of first directory segment - 726-727 System version (RAD50) - 730-742 Volume Identification - 744-757 Owner name - 760-773 System Identification - 776-777 Checksum + Home block + ---------- + 000-201 Bad block replacement table + 202-203 ? + 204-251 INITIALIZE/RESTORE data area + 252-273 BUP information area + 274-677 ? + 700-701 (Reserved for Digital, must be zero) + 702-703 (Reserved for Digital, must be zero) + 704-721 ? + 722-723 Pack cluster size (= 1) + 724-725 Block number of first directory segment + 726-727 System version (RAD50) + 730-742 Volume Identification + 744-757 Owner name + 760-773 System Identification + 776-777 Checksum - Directory segment header - ------------------------ - 0 The total number of segments in this directory. - 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list. - 2 The number of the highest segment currently in use. Valid only in the first directory segment. - 3 The number of extra bytes per directory entry, always an unsigned, even octal number. - 4 The block number on the volume where the actual stored data identified by this segment begins. + Directory segment header + ------------------------ + 0 The total number of segments in this directory. + 1 The segment number of the next logical directory segment. If this word is 0, there are no more segments in the list. + 2 The number of the highest segment currently in use. Valid only in the first directory segment. + 3 The number of extra bytes per directory entry, always an unsigned, even octal number. + 4 The block number on the volume where the actual stored data identified by this segment begins. - Directory entry - --------------- - 0 Status word - 1 File name 1-3 (RAD50) - 2 File name 4-6 (RAD50) - 3 File type 1-3 (RAD50) - 4 Total file length (blocks) - 5 Job#, Channel# (RT-11 uses this information only for tentative files) - 6 Creation date - 7- Optional extra words + Directory entry + --------------- + 0 Status word + 1 File name 1-3 (RAD50) + 2 File name 4-6 (RAD50) + 3 File type 1-3 (RAD50) + 4 Total file length (blocks) + 5 Job#, Channel# (RT-11 uses this information only for tentative files) + 6 Creation date + 7- Optional extra words ****************************************************************************/ diff --git a/src/tools/testkeys.cpp b/src/tools/testkeys.cpp index a536e4ac272..9ee08808c19 100644 --- a/src/tools/testkeys.cpp +++ b/src/tools/testkeys.cpp @@ -26,263 +26,263 @@ struct key_lookup_table { int code; const char *name; }; static constexpr key_lookup_table sdl_lookup[] = { - KE(UNKNOWN) + KE(UNKNOWN) - KE(A) - KE(B) - KE(C) - KE(D) - KE(E) - KE(F) - KE(G) - KE(H) - KE(I) - KE(J) - KE(K) - KE(L) - KE(M) - KE(N) - KE(O) - KE(P) - KE(Q) - KE(R) - KE(S) - KE(T) - KE(U) - KE(V) - KE(W) - KE(X) - KE(Y) - KE(Z) + KE(A) + KE(B) + KE(C) + KE(D) + KE(E) + KE(F) + KE(G) + KE(H) + KE(I) + KE(J) + KE(K) + KE(L) + KE(M) + KE(N) + KE(O) + KE(P) + KE(Q) + KE(R) + KE(S) + KE(T) + KE(U) + KE(V) + KE(W) + KE(X) + KE(Y) + KE(Z) - KE(1) - KE(2) - KE(3) - KE(4) - KE(5) - KE(6) - KE(7) - KE(8) - KE(9) - KE(0) + KE(1) + KE(2) + KE(3) + KE(4) + KE(5) + KE(6) + KE(7) + KE(8) + KE(9) + KE(0) - KE(RETURN) - KE(ESCAPE) - KE(BACKSPACE) - KE(TAB) - KE(SPACE) + KE(RETURN) + KE(ESCAPE) + KE(BACKSPACE) + KE(TAB) + KE(SPACE) - KE(MINUS) - KE(EQUALS) - KE(LEFTBRACKET) - KE(RIGHTBRACKET) - KE(BACKSLASH) - KE(NONUSHASH) - KE(SEMICOLON) - KE(APOSTROPHE) - KE(GRAVE) - KE(COMMA) - KE(PERIOD) - KE(SLASH) + KE(MINUS) + KE(EQUALS) + KE(LEFTBRACKET) + KE(RIGHTBRACKET) + KE(BACKSLASH) + KE(NONUSHASH) + KE(SEMICOLON) + KE(APOSTROPHE) + KE(GRAVE) + KE(COMMA) + KE(PERIOD) + KE(SLASH) - KE(CAPSLOCK) + KE(CAPSLOCK) - KE(F1) - KE(F2) - KE(F3) - KE(F4) - KE(F5) - KE(F6) - KE(F7) - KE(F8) - KE(F9) - KE(F10) - KE(F11) - KE(F12) + KE(F1) + KE(F2) + KE(F3) + KE(F4) + KE(F5) + KE(F6) + KE(F7) + KE(F8) + KE(F9) + KE(F10) + KE(F11) + KE(F12) - KE(PRINTSCREEN) - KE(SCROLLLOCK) - KE(PAUSE) - KE(INSERT) - KE(HOME) - KE(PAGEUP) - KE(DELETE) - KE(END) - KE(PAGEDOWN) - KE(RIGHT) - KE(LEFT) - KE(DOWN) - KE(UP) + KE(PRINTSCREEN) + KE(SCROLLLOCK) + KE(PAUSE) + KE(INSERT) + KE(HOME) + KE(PAGEUP) + KE(DELETE) + KE(END) + KE(PAGEDOWN) + KE(RIGHT) + KE(LEFT) + KE(DOWN) + KE(UP) - KE(NUMLOCKCLEAR) - KE(KP_DIVIDE) - KE(KP_MULTIPLY) - KE(KP_MINUS) - KE(KP_PLUS) - KE(KP_ENTER) - KE(KP_1) - KE(KP_2) - KE(KP_3) - KE(KP_4) - KE(KP_5) - KE(KP_6) - KE(KP_7) - KE(KP_8) - KE(KP_9) - KE(KP_0) - KE(KP_PERIOD) + KE(NUMLOCKCLEAR) + KE(KP_DIVIDE) + KE(KP_MULTIPLY) + KE(KP_MINUS) + KE(KP_PLUS) + KE(KP_ENTER) + KE(KP_1) + KE(KP_2) + KE(KP_3) + KE(KP_4) + KE(KP_5) + KE(KP_6) + KE(KP_7) + KE(KP_8) + KE(KP_9) + KE(KP_0) + KE(KP_PERIOD) - KE(NONUSBACKSLASH) - KE(APPLICATION) - KE(POWER) - KE(KP_EQUALS) - KE(F13) - KE(F14) - KE(F15) - KE(F16) - KE(F17) - KE(F18) - KE(F19) - KE(F20) - KE(F21) - KE(F22) - KE(F23) - KE(F24) - KE(EXECUTE) - KE(HELP) - KE(MENU) - KE(SELECT) - KE(STOP) - KE(AGAIN) - KE(UNDO) - KE(CUT) - KE(COPY) - KE(PASTE) - KE(FIND) - KE(MUTE) - KE(VOLUMEUP) - KE(VOLUMEDOWN) - KE(KP_COMMA) - KE(KP_EQUALSAS400) + KE(NONUSBACKSLASH) + KE(APPLICATION) + KE(POWER) + KE(KP_EQUALS) + KE(F13) + KE(F14) + KE(F15) + KE(F16) + KE(F17) + KE(F18) + KE(F19) + KE(F20) + KE(F21) + KE(F22) + KE(F23) + KE(F24) + KE(EXECUTE) + KE(HELP) + KE(MENU) + KE(SELECT) + KE(STOP) + KE(AGAIN) + KE(UNDO) + KE(CUT) + KE(COPY) + KE(PASTE) + KE(FIND) + KE(MUTE) + KE(VOLUMEUP) + KE(VOLUMEDOWN) + KE(KP_COMMA) + KE(KP_EQUALSAS400) - KE(INTERNATIONAL1) - KE(INTERNATIONAL2) - KE(INTERNATIONAL3) - KE(INTERNATIONAL4) - KE(INTERNATIONAL5) - KE(INTERNATIONAL6) - KE(INTERNATIONAL7) - KE(INTERNATIONAL8) - KE(INTERNATIONAL9) - KE(LANG1) - KE(LANG2) - KE(LANG3) - KE(LANG4) - KE(LANG5) - KE(LANG6) - KE(LANG7) - KE(LANG8) - KE(LANG9) + KE(INTERNATIONAL1) + KE(INTERNATIONAL2) + KE(INTERNATIONAL3) + KE(INTERNATIONAL4) + KE(INTERNATIONAL5) + KE(INTERNATIONAL6) + KE(INTERNATIONAL7) + KE(INTERNATIONAL8) + KE(INTERNATIONAL9) + KE(LANG1) + KE(LANG2) + KE(LANG3) + KE(LANG4) + KE(LANG5) + KE(LANG6) + KE(LANG7) + KE(LANG8) + KE(LANG9) - KE(ALTERASE) - KE(SYSREQ) - KE(CANCEL) - KE(CLEAR) - KE(PRIOR) - KE(RETURN2) - KE(SEPARATOR) - KE(OUT) - KE(OPER) - KE(CLEARAGAIN) - KE(CRSEL) - KE(EXSEL) + KE(ALTERASE) + KE(SYSREQ) + KE(CANCEL) + KE(CLEAR) + KE(PRIOR) + KE(RETURN2) + KE(SEPARATOR) + KE(OUT) + KE(OPER) + KE(CLEARAGAIN) + KE(CRSEL) + KE(EXSEL) - KE(KP_00) - KE(KP_000) - KE(THOUSANDSSEPARATOR) - KE(DECIMALSEPARATOR) - KE(CURRENCYUNIT) - KE(CURRENCYSUBUNIT) - KE(KP_LEFTPAREN) - KE(KP_RIGHTPAREN) - KE(KP_LEFTBRACE) - KE(KP_RIGHTBRACE) - KE(KP_TAB) - KE(KP_BACKSPACE) - KE(KP_A) - KE(KP_B) - KE(KP_C) - KE(KP_D) - KE(KP_E) - KE(KP_F) - KE(KP_XOR) - KE(KP_POWER) - KE(KP_PERCENT) - KE(KP_LESS) - KE(KP_GREATER) - KE(KP_AMPERSAND) - KE(KP_DBLAMPERSAND) - KE(KP_VERTICALBAR) - KE(KP_DBLVERTICALBAR) - KE(KP_COLON) - KE(KP_HASH) - KE(KP_SPACE) - KE(KP_AT) - KE(KP_EXCLAM) - KE(KP_MEMSTORE) - KE(KP_MEMRECALL) - KE(KP_MEMCLEAR) - KE(KP_MEMADD) - KE(KP_MEMSUBTRACT) - KE(KP_MEMMULTIPLY) - KE(KP_MEMDIVIDE) - KE(KP_PLUSMINUS) - KE(KP_CLEAR) - KE(KP_CLEARENTRY) - KE(KP_BINARY) - KE(KP_OCTAL) - KE(KP_DECIMAL) - KE(KP_HEXADECIMAL) + KE(KP_00) + KE(KP_000) + KE(THOUSANDSSEPARATOR) + KE(DECIMALSEPARATOR) + KE(CURRENCYUNIT) + KE(CURRENCYSUBUNIT) + KE(KP_LEFTPAREN) + KE(KP_RIGHTPAREN) + KE(KP_LEFTBRACE) + KE(KP_RIGHTBRACE) + KE(KP_TAB) + KE(KP_BACKSPACE) + KE(KP_A) + KE(KP_B) + KE(KP_C) + KE(KP_D) + KE(KP_E) + KE(KP_F) + KE(KP_XOR) + KE(KP_POWER) + KE(KP_PERCENT) + KE(KP_LESS) + KE(KP_GREATER) + KE(KP_AMPERSAND) + KE(KP_DBLAMPERSAND) + KE(KP_VERTICALBAR) + KE(KP_DBLVERTICALBAR) + KE(KP_COLON) + KE(KP_HASH) + KE(KP_SPACE) + KE(KP_AT) + KE(KP_EXCLAM) + KE(KP_MEMSTORE) + KE(KP_MEMRECALL) + KE(KP_MEMCLEAR) + KE(KP_MEMADD) + KE(KP_MEMSUBTRACT) + KE(KP_MEMMULTIPLY) + KE(KP_MEMDIVIDE) + KE(KP_PLUSMINUS) + KE(KP_CLEAR) + KE(KP_CLEARENTRY) + KE(KP_BINARY) + KE(KP_OCTAL) + KE(KP_DECIMAL) + KE(KP_HEXADECIMAL) - KE(LCTRL) - KE(LSHIFT) - KE(LALT) - KE(LGUI) - KE(RCTRL) - KE(RSHIFT) - KE(RALT) - KE(RGUI) + KE(LCTRL) + KE(LSHIFT) + KE(LALT) + KE(LGUI) + KE(RCTRL) + KE(RSHIFT) + KE(RALT) + KE(RGUI) - KE(MODE) - KE(AUDIONEXT) - KE(AUDIOPREV) - KE(AUDIOSTOP) - KE(AUDIOPLAY) - KE(AUDIOMUTE) - KE(MEDIASELECT) - KE(WWW) - KE(MAIL) - KE(CALCULATOR) - KE(COMPUTER) - KE(AC_SEARCH) - KE(AC_HOME) - KE(AC_BACK) - KE(AC_FORWARD) - KE(AC_STOP) - KE(AC_REFRESH) - KE(AC_BOOKMARKS) + KE(MODE) + KE(AUDIONEXT) + KE(AUDIOPREV) + KE(AUDIOSTOP) + KE(AUDIOPLAY) + KE(AUDIOMUTE) + KE(MEDIASELECT) + KE(WWW) + KE(MAIL) + KE(CALCULATOR) + KE(COMPUTER) + KE(AC_SEARCH) + KE(AC_HOME) + KE(AC_BACK) + KE(AC_FORWARD) + KE(AC_STOP) + KE(AC_REFRESH) + KE(AC_BOOKMARKS) - KE(BRIGHTNESSDOWN) - KE(BRIGHTNESSUP) - KE(DISPLAYSWITCH) - KE(KBDILLUMTOGGLE) - KE(KBDILLUMDOWN) - KE(KBDILLUMUP) - KE(EJECT) - KE(SLEEP) + KE(BRIGHTNESSDOWN) + KE(BRIGHTNESSUP) + KE(DISPLAYSWITCH) + KE(KBDILLUMTOGGLE) + KE(KBDILLUMDOWN) + KE(KBDILLUMUP) + KE(EJECT) + KE(SLEEP) - KE(APP1) - KE(APP2) + KE(APP1) + KE(APP2) }; static char const *lookup_key_name(int kc) From e043fb16f1cd988b3bc15d6008445fcecf7ac648 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 24 Feb 2019 00:16:40 -0500 Subject: [PATCH 04/42] 3b1: Add HDC device and some interrupts (nw) --- src/mame/drivers/unixpc.cpp | 39 +++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index 19620a6949c..bf481f5c176 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -20,13 +20,15 @@ #include "bus/centronics/ctronics.h" #include "bus/rs232/rs232.h" #include "imagedev/floppy.h" +#include "imagedev/harddriv.h" #include "machine/6850acia.h" #include "machine/74259.h" #include "machine/bankdev.h" +#include "machine/input_merger.h" #include "machine/output_latch.h" #include "machine/ram.h" //#include "machine/tc8250.h" -//#include "machine/wd1010.h" +#include "machine/wd1010.h" #include "machine/wd_fdc.h" #include "machine/z80sio.h" #include "emupal.h" @@ -47,6 +49,7 @@ public: m_maincpu(*this, "maincpu"), m_gcr(*this, "gcr"), m_tcr(*this, "tcr"), + m_int02(*this, "int02"), m_ram(*this, RAM_TAG), m_wd2797(*this, "wd2797"), m_floppy(*this, "wd2797:0:525dd"), @@ -84,6 +87,8 @@ private: DECLARE_WRITE_LINE_MEMBER(wd2797_intrq_w); DECLARE_WRITE_LINE_MEMBER(wd2797_drq_w); + DECLARE_WRITE_LINE_MEMBER(wd1010_intrq_w); + void ramrombank_map(address_map &map); void unixpc_mem(address_map &map); @@ -91,6 +96,7 @@ private: required_device m_maincpu; required_device m_gcr; required_device m_tcr; + required_device m_int02; required_device m_ram; required_device m_wd2797; required_device m_floppy; @@ -104,6 +110,7 @@ private: uint16_t m_diskdmasize; uint32_t m_diskdmaptr; bool m_fdc_intrq; + bool m_hdc_intrq; }; @@ -205,7 +212,7 @@ READ16_MEMBER(unixpc_state::line_printer_r) data |= 1; // no dial tone detected data |= 1 << 1; // no parity error - data |= 0 << 2; // hdc intrq + data |= m_hdc_intrq ? 1<<2 : 0<<2; data |= m_fdc_intrq ? 1<<3 : 0<<3; //logerror("line_printer_r: %04x\n", data); @@ -266,6 +273,7 @@ WRITE_LINE_MEMBER(unixpc_state::wd2797_intrq_w) { logerror("wd2797_intrq_w: %d\n", state); m_fdc_intrq = state; + m_int02->in_w<1>(state); } WRITE_LINE_MEMBER(unixpc_state::wd2797_drq_w) @@ -273,6 +281,15 @@ WRITE_LINE_MEMBER(unixpc_state::wd2797_drq_w) logerror("wd2797_drq_w: %d\n", state); } +/*************************************************************************** + HARD DISK +***************************************************************************/ + +WRITE_LINE_MEMBER(unixpc_state::wd1010_intrq_w) +{ + m_hdc_intrq = state; + m_int02->in_w<0>(state); +} /*************************************************************************** VIDEO @@ -308,7 +325,7 @@ void unixpc_state::unixpc_mem(address_map &map) map(0x4d0000, 0x4d7fff).w(FUNC(unixpc_state::diskdma_ptr_w)); map(0x4e0000, 0x4e0001).w(FUNC(unixpc_state::disk_control_w)); map(0x4f0001, 0x4f0001).w("printlatch", FUNC(output_latch_device::bus_w)); - //map(0xe00000, 0xe0000f).rw("hdc", FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff); + map(0xe00000, 0xe0000f).rw("hdc", FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff); map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff); map(0xe30000, 0xe30001).r(FUNC(unixpc_state::rtc_r)); map(0xe40000, 0xe40001).select(0x7000).w(FUNC(unixpc_state::gcr_w)); @@ -354,6 +371,9 @@ void unixpc_state::unixpc(machine_config &config) LS259(config, m_tcr); // 10K + INPUT_MERGER_ANY_HIGH(config, m_int02); // 26H pins 3-6 + m_int02->output_handler().set_inputline(m_maincpu, M68K_IRQ_2); + output_latch_device &mreg(OUTPUT_LATCH(config, "mreg")); mreg.bit_handler<0>().set_output("led_0").invert(); mreg.bit_handler<1>().set_output("led_1").invert(); @@ -387,15 +407,18 @@ void unixpc_state::unixpc(machine_config &config) m_wd2797->drq_wr_callback().set(FUNC(unixpc_state::wd2797_drq_w)); FLOPPY_CONNECTOR(config, "wd2797:0", unixpc_floppies, "525dd", floppy_image_device::default_floppy_formats); - upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8)); + wd1010_device &hdc(WD1010(config, "hdc", 40_MHz_XTAL / 8)); + hdc.out_intrq_callback().set(FUNC(unixpc_state::wd1010_intrq_w)); + HARDDISK(config, "hdc:0", 0); + + upd7201_new_device &mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8)); mpsc.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + mpsc.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4); - ACIA6850(config, "kbc", 0); - - // TODO: HDC - //WD1010(config, "hdc", 40_MHz_XTAL / 8); + acia6850_device &kbc(ACIA6850(config, "kbc", 0)); + kbc.irq_handler().set_inputline(m_maincpu, M68K_IRQ_3); // TODO: RTC //TC8250(config, "rtc", 32.768_kHz_XTAL); From 246019d13ee216ac1bc5fa5c8341a8406c9132f6 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 24 Feb 2019 00:44:07 -0500 Subject: [PATCH 05/42] 3b1: More HDC stuff (nw) --- src/mame/drivers/unixpc.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index bf481f5c176..0f95c0417cf 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -53,6 +53,8 @@ public: m_ram(*this, RAM_TAG), m_wd2797(*this, "wd2797"), m_floppy(*this, "wd2797:0:525dd"), + m_hdc(*this, "hdc"), + m_hdr0(*this, "hdc:0"), m_ramrombank(*this, "ramrombank"), m_mapram(*this, "mapram"), m_videoram(*this, "videoram") @@ -100,6 +102,8 @@ private: required_device m_ram; required_device m_wd2797; required_device m_floppy; + required_device m_hdc; + required_device m_hdr0; required_device m_ramrombank; required_shared_ptr m_mapram; @@ -260,6 +264,13 @@ WRITE16_MEMBER(unixpc_state::disk_control_w) { logerror("disk_control_w: %04x\n", data); + // TODO: bits 0-2 = head select + + m_hdc->drdy_w(BIT(data, 3) && m_hdr0->exists()); + + if (!BIT(data, 4)) + m_hdc->reset(); + m_floppy->mon_w(!BIT(data, 5)); // bit 6 = floppy selected / not selected @@ -325,7 +336,7 @@ void unixpc_state::unixpc_mem(address_map &map) map(0x4d0000, 0x4d7fff).w(FUNC(unixpc_state::diskdma_ptr_w)); map(0x4e0000, 0x4e0001).w(FUNC(unixpc_state::disk_control_w)); map(0x4f0001, 0x4f0001).w("printlatch", FUNC(output_latch_device::bus_w)); - map(0xe00000, 0xe0000f).rw("hdc", FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff); + map(0xe00000, 0xe0000f).rw(m_hdc, FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff); map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff); map(0xe30000, 0xe30001).r(FUNC(unixpc_state::rtc_r)); map(0xe40000, 0xe40001).select(0x7000).w(FUNC(unixpc_state::gcr_w)); @@ -407,9 +418,9 @@ void unixpc_state::unixpc(machine_config &config) m_wd2797->drq_wr_callback().set(FUNC(unixpc_state::wd2797_drq_w)); FLOPPY_CONNECTOR(config, "wd2797:0", unixpc_floppies, "525dd", floppy_image_device::default_floppy_formats); - wd1010_device &hdc(WD1010(config, "hdc", 40_MHz_XTAL / 8)); - hdc.out_intrq_callback().set(FUNC(unixpc_state::wd1010_intrq_w)); - HARDDISK(config, "hdc:0", 0); + WD1010(config, m_hdc, 40_MHz_XTAL / 8); + m_hdc->out_intrq_callback().set(FUNC(unixpc_state::wd1010_intrq_w)); + HARDDISK(config, m_hdr0, 0); upd7201_new_device &mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8)); mpsc.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); From 65d51ffd4c36ca22a5d8a4b8c64bfb4ea582492a Mon Sep 17 00:00:00 2001 From: MooglyGuy Date: Sun, 24 Feb 2019 10:56:21 +0100 Subject: [PATCH 06/42] -newport: Added a few more command configs, nw --- src/mame/video/newport.cpp | 54 +++++++++++++++++++++----------------- src/mame/video/newport.h | 16 +++++------ 2 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/mame/video/newport.cpp b/src/mame/video/newport.cpp index f1dd9cb004b..72715b628db 100644 --- a/src/mame/video/newport.cpp +++ b/src/mame/video/newport.cpp @@ -40,7 +40,7 @@ #define LOG_REJECTS (1 << 8) #define LOG_ALL (LOG_UNKNOWN | LOG_VC2 | LOG_CMAP0 | LOG_CMAP1 | LOG_XMAP0 | LOG_XMAP1 | LOG_REX3) -#define VERBOSE (0)//(LOG_UNKNOWN | LOG_VC2 | LOG_XMAP0 | LOG_CMAP0 | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS) +#define VERBOSE (0)//(LOG_UNKNOWN | LOG_REX3 | LOG_COMMANDS | LOG_REJECTS) #include "logmacro.h" DEFINE_DEVICE_TYPE(NEWPORT_VIDEO, newport_video_device, "newport_video", "SGI Newport graphics board") @@ -1459,7 +1459,7 @@ void newport_video_device::do_v_iline(uint8_t color, bool skip_last, bool shade) y1 += incy; if (shade) - m_rex3.m_color_red += m_rex3.m_slope_red; + m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8; } while (y1 != y2); if (!skip_last) @@ -1492,7 +1492,7 @@ void newport_video_device::do_h_iline(uint8_t color, bool skip_last, bool shade) x1 += incx; if (shade) - m_rex3.m_color_red += m_rex3.m_slope_red; + m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8; } while (x1 != x2); if (!skip_last) { @@ -1577,7 +1577,7 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) x1++; if (shade) - m_rex3.m_color_red += m_rex3.m_slope_red; + m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8; } while (x1 != x2); if (!skip_last) @@ -1609,7 +1609,7 @@ void newport_video_device::do_iline(uint8_t color, bool skip_last, bool shade) x1++; if (shade) - m_rex3.m_color_red += m_rex3.m_slope_red; + m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8; } while (x1 != x2); if (!skip_last) @@ -1743,33 +1743,38 @@ void newport_video_device::do_rex3_command() m_rex3.m_read_active = true; break; } + case 0x00000022: // DoSetup, Span, Draw case 0x00000102: // StopOnX, Span, Draw case 0x00000122: // StopOnX, DoSetup, Span, Draw case 0x00022102: // LSOpaque, EnLSPattern, StopOnX, Span, Draw case 0x00080122: // LROnly, StopOnX, DoSetup, Span, Draw - case 0x000c0122: // Shade, LROnly, StopOnX, DoSetup, Span, Draw + case 0x000c0122: // LROnly, Shade, StopOnX, DoSetup, Span, Draw + case 0x000c9102: // LROnly, Shade, Length32, EnZPattern, StopOnX, Span, Draw { if (BIT(mode0, 19) && dx < 0) // LROnly break; + if (!BIT(mode0, 8)) + end_x = start_x; + end_x += dx; end_y += dy; - //bool shade = BIT(mode0, 18); + bool shade = BIT(mode0, 18); uint32_t color = m_rex3.m_color_i & 0xff; LOGMASKED(LOG_COMMANDS, "%04x, %04x to %04x, %04x = %08x\n", start_x, start_y, end_x, end_y, color); for (; start_x != end_x; start_x += dx) { - //if (shade) - //{ - // write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); - // m_rex3.m_color_red += m_rex3.m_slope_red; - //} - //else - //{ + if (shade) + { + write_pixel(start_x, start_y, (uint8_t)(m_rex3.m_color_red >> 11)); + m_rex3.m_color_red += (m_rex3.m_slope_red << 8) >> 8; + } + else + { write_pixel(start_x, start_y, color); - //} + } } start_y++; @@ -1823,6 +1828,7 @@ void newport_video_device::do_rex3_command() case 0x00000b2a: // SkipLast, StopOnX, StopOnY, DoSetup, I_Line, Draw case 0x0000232e: // EnLSPattern, StopOnX, StopOnY, DoSetup, F_Line, Draw case 0x0004232e: // Shade, EnLSPattern, StopOnX, StopOnY, DoSetup, F_Line, Draw + case 0x00442332: // EndFilter, Shade, EnLSPattern, StopOnX, StopOnY, DoSetp, A_Line, Draw { const bool skip_last = BIT(mode0, 11); const bool shade = BIT(mode0, 18); @@ -2427,25 +2433,25 @@ WRITE64_MEMBER(newport_video_device::rex3_w) if (ACCESSING_BITS_32_63) { LOGMASKED(LOG_REX3, "REX3 Red/CI Full State Write: %08x\n", (uint32_t)(data >> 32)); - m_rex3.m_color_red = (uint32_t)((data >> 32) & 0xffffff); - m_rex3.m_color_i = (m_rex3.m_color_red >> 11) & 0x000000ff; + m_rex3.m_color_red = (int32_t)((data >> 32) & 0xffffff); + m_rex3.m_color_i = (uint32_t)(m_rex3.m_color_red >> 11) & 0x000000ff; } if (ACCESSING_BITS_0_31) { LOGMASKED(LOG_REX3, "REX3 Alpha Full State Write: %08x\n", (uint32_t)data); - m_rex3.m_color_alpha = data & 0xfffff; + m_rex3.m_color_alpha = (int32_t)(data & 0xfffff); } break; case 0x0208/8: if (ACCESSING_BITS_32_63) { LOGMASKED(LOG_REX3, "REX3 Green Full State Write: %08x\n", (uint32_t)(data >> 32)); - m_rex3.m_color_green = (uint32_t)((data >> 32) & 0xfffff); + m_rex3.m_color_green = (int32_t)((data >> 32) & 0xfffff); } if (ACCESSING_BITS_0_31) { LOGMASKED(LOG_REX3, "REX3 Blue Full State Write: %08x\n", (uint32_t)data); - m_rex3.m_color_blue = data & 0xfffff; + m_rex3.m_color_blue = (int32_t)(data & 0xfffff); } break; case 0x0210/8: @@ -2455,7 +2461,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w) uint32_t data32 = (uint32_t)(data >> 32); LOGMASKED(LOG_REX3, "REX3 Red/CI Slope Write: %08x\n", data32); data32 &= 0x807fffff; - uint32_t temp = 0; + int32_t temp = 0; if (BIT(data32, 31)) { temp = 0x00800000 - (data32 & 0x7fffff); @@ -2471,7 +2477,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w) { LOGMASKED(LOG_REX3, "REX3 Alpha Slope Write: %08x\n", (uint32_t)data); data &= 0x8007ffff; - uint32_t temp = 0; + int32_t temp = 0; if (BIT(data, 31)) { temp = 0x00080000 - (data & 0x7ffff); @@ -2492,7 +2498,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w) uint32_t data32 = (uint32_t)(data >> 32); LOGMASKED(LOG_REX3, "REX3 Green Slope Write: %08x\n", data32); data32 &= 0x8007ffff; - uint32_t temp = 0; + int32_t temp = 0; if (BIT(data32, 31)) { temp = 0x00080000 - (data32 & 0x7ffff); @@ -2508,7 +2514,7 @@ WRITE64_MEMBER(newport_video_device::rex3_w) { LOGMASKED(LOG_REX3, "REX3 Blue Slope Write: %08x\n", (uint32_t)data); data &= 0x8007ffff; - uint32_t temp = 0; + int32_t temp = 0; if (BIT(data, 31)) { temp = 0x00080000 - (data & 0x7ffff); diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h index 4d87237d0e2..8e050eeff5b 100644 --- a/src/mame/video/newport.h +++ b/src/mame/video/newport.h @@ -131,14 +131,14 @@ private: int16_t m_x_end_i; int16_t m_y_end_i; uint32_t m_x_start_end_i; - uint32_t m_color_red; - uint32_t m_color_alpha; - uint32_t m_color_green; - uint32_t m_color_blue; - uint32_t m_slope_red; - uint32_t m_slope_alpha; - uint32_t m_slope_green; - uint32_t m_slope_blue; + int32_t m_color_red; + int32_t m_color_alpha; + int32_t m_color_green; + int32_t m_color_blue; + int32_t m_slope_red; + int32_t m_slope_alpha; + int32_t m_slope_green; + int32_t m_slope_blue; uint32_t m_write_mask; uint32_t m_color_i; uint32_t m_zero_overflow; From b473b89c767318067836259d9c5d34e48ea0bbaf Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 24 Feb 2019 13:27:55 +0100 Subject: [PATCH 07/42] internal layout for fepriv (nw) --- src/mame/layout/fidel_eas_priv.lay | 440 +++++++++++++++-------------- 1 file changed, 227 insertions(+), 213 deletions(-) diff --git a/src/mame/layout/fidel_eas_priv.lay b/src/mame/layout/fidel_eas_priv.lay index 57bc6dc6f89..bef26febedf 100644 --- a/src/mame/layout/fidel_eas_priv.lay +++ b/src/mame/layout/fidel_eas_priv.lay @@ -31,76 +31,29 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + @@ -122,39 +75,16 @@ - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - + @@ -199,81 +129,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -347,77 +203,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - + + - - + + - - - - - - + + + + + + + + + - - - + + + + + + - - - - - - + + + - - - - - - - - + + + + + + + + + - - - - - - - - + + - + - + - + - + - + - + From 697177a0b46395f98402330ff41276bea453e244 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 24 Feb 2019 17:35:05 +0100 Subject: [PATCH 08/42] fidel*: speech language is now bios rom (nw) --- src/mame/drivers/fidel_csc.cpp | 117 +++----- src/mame/drivers/fidel_elite.cpp | 469 +++++++++---------------------- src/mame/drivers/fidel_excel.cpp | 2 +- src/mame/drivers/fidel_vcc.cpp | 103 +++---- src/mame/drivers/fidel_vsc.cpp | 55 ++-- src/mame/includes/fidelbase.h | 7 +- src/mame/mame.lst | 52 +--- 7 files changed, 235 insertions(+), 570 deletions(-) diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index 0a6eccc8066..64168f01645 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -368,7 +368,7 @@ READ8_MEMBER(csc_state::pia1_pb_r) // d5: button row 8 (active low) // d6,d7: language switches(hardwired with 2 resistors/jumpers) - data |= (~read_inputs(9) >> 3 & 0x20) | (~m_language << 6 & 0xc0); + data |= (~read_inputs(9) >> 3 & 0x20) | (*m_language << 6 & 0xc0); return data; } @@ -580,45 +580,25 @@ ROM_START( csc ) ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) ) ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( cscg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) ) - ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) ) - ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) ) - ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( cscsp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) ) - ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) ) - ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) ) - ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( cscfr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("1025a03", 0xa000, 0x2000, CRC(63982c07) SHA1(5ed4356323d5c80df216da55994abe94ba4aa94c) ) - ROM_LOAD("1025a02", 0xc000, 0x2000, CRC(9e6e7c69) SHA1(4f1ed9141b6596f4d2b1217d7a4ba48229f3f1b0) ) - ROM_LOAD("1025a01", 0xe000, 0x2000, CRC(57f068c3) SHA1(7d2ac4b9a2fba19556782863bdd89e2d2d94e97b) ) - ROM_LOAD("74s474", 0xfe00, 0x0200, CRC(4511ba31) SHA1(e275b1739f8c3aa445cccb6a2b597475f507e456) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END @@ -629,42 +609,25 @@ ROM_START( super9cc ) ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) ) ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( super9ccg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) ) - ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) ) - ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) ) - ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( super9ccsp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) ) - ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) ) - ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) ) - ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( super9ccfr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) ) - ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) ) - ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) ) - ROM_LOAD("101-1024c01", 0xe000, 0x2000, CRC(03904e86) SHA1(bfa0dd9d8541e3ec359a247a3eba543501f727bc) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END @@ -681,15 +644,9 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1981, csc, 0, 0, csc, csc, csc_state, init_language<0>, "Fidelity Electronics", "Champion Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1981, cscg, csc, 0, csc, csc, csc_state, init_language<1>, "Fidelity Electronics", "Champion Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1981, cscsp, csc, 0, csc, csc, csc_state, init_language<2>, "Fidelity Electronics", "Champion Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1981, cscfr, csc, 0, csc, csc, csc_state, init_language<3>, "Fidelity Electronics", "Champion Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1981, csc, 0, 0, csc, csc, csc_state, empty_init, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, init_language<0>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, super9ccg, super9cc, 0, su9, su9, su9_state, init_language<1>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, super9ccsp, super9cc, 0, su9, su9, su9_state, init_language<2>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, super9ccfr, super9cc, 0, su9, su9, su9_state, init_language<3>, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, empty_init, "Fidelity Electronics", "Super 9 Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index d1ebaa6506d..a1aa53531dd 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -8,9 +8,6 @@ Fidelity Elite A/S series hardware (EAS, EAG, PC) see fidel_eag68k.cpp for 68000-based EAG hardware -TODO: -- make separate internal artwork for fepriv? - ******************************************************************************* Elite A/S Challenger (EAS) @@ -82,7 +79,7 @@ public: void eag(machine_config &config); void eag2100(machine_config &config); - template void init_eag(); + void init_eag2100(); private: // devices/pointers @@ -105,10 +102,8 @@ private: DECLARE_WRITE8_MEMBER(ppi_portc_w); }; -template -void elite_state::init_eag() +void elite_state::init_eag2100() { - m_language = Language; m_rombank->configure_entries(0, 4, memregion("rombank")->base(), 0x2000); } @@ -197,7 +192,7 @@ READ8_MEMBER(elite_state::ppi_portb_r) data |= (m_speech->busy_r()) ? 2 : 0; // d2,d3: language switches(hardwired) - data |= ~m_language << 2 & 0x0c; + data |= *m_language << 2 & 0x0c; // d5: multiplexed inputs highest bit data |= (read_inputs(9) & 0x100) ? 0 : 0x20; @@ -423,48 +418,25 @@ ROM_START( feasbu ) ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) // Mostek MK36C63N-5 ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) // Mostek MK36C63N-5 - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC D2332C - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( feasbug ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) - ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( feasbusp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) - ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( feasbufr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) - ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END ROM_START( feasgla ) @@ -482,66 +454,25 @@ ROM_START( feasgla ) ROM_CONTINUE( 0xe800, 0x0800 ) ROM_CONTINUE( 0xf800, 0x0800 ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC D2332C - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( feasglag ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( feasglasp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( feasglafr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC D2332C + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END ROM_START( fepriv ) @@ -559,66 +490,25 @@ ROM_START( fepriv ) ROM_CONTINUE( 0xe800, 0x0800 ) ROM_CONTINUE( 0xf800, 0x0800 ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("de") // default to German + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( feprivg ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) -ROM_END - -ROM_START( feprivsp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( feprivfr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) ) - ROM_CONTINUE( 0x9000, 0x0800 ) - ROM_CONTINUE( 0x8800, 0x0800 ) - ROM_CONTINUE( 0x9800, 0x0800 ) - ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) ) - ROM_CONTINUE( 0xd000, 0x0800 ) - ROM_CONTINUE( 0xc800, 0x0800 ) - ROM_CONTINUE( 0xd800, 0x0800 ) - ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) ) - ROM_CONTINUE( 0xf000, 0x0800 ) - ROM_CONTINUE( 0xe800, 0x0800 ) - ROM_CONTINUE( 0xf800, 0x0800 ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END @@ -630,45 +520,25 @@ ROM_START( fpres ) ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( fpresg ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( fpressp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( fpresfr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END ROM_START( fpresbu ) @@ -679,48 +549,55 @@ ROM_START( fpresbu ) ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) ) ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) ) + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") + + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) + ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END -ROM_START( fpresbug ) + +ROM_START( feag ) // model 6081, aka "Mobile Master" ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) ) + ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker + ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker + ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker + + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") + + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END -ROM_START( fpresbusp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( fpresbufr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct -ROM_END - - ROM_START( feag2100 ) ROM_REGION( 0x10000, "mainmap", 0 ) ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) ) @@ -729,86 +606,25 @@ ROM_START( feag2100 ) ROM_REGION( 0x8000, "rombank", 0 ) ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( feag2100g ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) ) - ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) ) - - ROM_REGION( 0x8000, "rombank", 0 ) - ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( feag2100sp ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) ) - ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) ) - - ROM_REGION( 0x8000, "rombank", 0 ) - ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( feag2100fr ) - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("el2100.2", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) ) - ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) ) - - ROM_REGION( 0x8000, "rombank", 0 ) - ROM_LOAD("el2100.1", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( feag ) // model 6081, aka "Mobile Master" - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker - ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker - ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END - -ROM_START( feagg ) // model 6081, aka "Mobile Master" - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker - ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker - ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( feagsp ) // model 6081, aka "Mobile Master" - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker - ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker - ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( feagfr ) // model 6081, aka "Mobile Master" - ROM_REGION( 0x10000, "mainmap", 0 ) - ROM_LOAD("eg_orange.ic9", 0xa000, 0x2000, CRC(df9e7e74) SHA1(db76750eba5515213ecce07402c4d974c14e1a23) ) // M5L2764K, orange sticker - ROM_LOAD("eg_black.ic5", 0xc000, 0x2000, CRC(a5f6f295) SHA1(319f00d4b7a1704a3ca722c40f4096004b4b89d2) ) // M5L2764K, black sticker - ROM_LOAD("eg_green.ic4", 0xe000, 0x2000, CRC(1dc6508a) SHA1(6f2e730b216bfb900074d1d786124fc3cb038a8d) ) // M5L2764K, green sticker - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END } // anonymous namespace @@ -819,34 +635,13 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, feasbug, feasbu, 0, eas, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, feasbusp, feasbu, 0, eas, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, feasbufr, feasbu, 0, eas, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasglag, feasbu, 0, eas, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasglasp, feasbu, 0, eas, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasglafr, feasbu, 0, eas, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, init_language<0>, "Fidelity Electronics", "Elite Private Line (red version, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany -CONS( 1984, feprivg, feasbu, 0, eas_priv, eas, elite_state, init_language<1>, "Fidelity Electronics", "Elite Private Line (red version, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // " -CONS( 1984, feprivsp, feasbu, 0, eas_priv, eas, elite_state, init_language<2>, "Fidelity Electronics", "Elite Private Line (red version, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // " -CONS( 1984, feprivfr, feasbu, 0, eas_priv, eas, elite_state, init_language<3>, "Fidelity Electronics", "Elite Private Line (red version, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // " +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, empty_init, "Fidelity Electronics", "Elite Private Line (red version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany -CONS( 1982, fpres, 0, 0, pc, eas, elite_state, init_language<0>, "Fidelity Electronics", "Prestige Challenger (original program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1982, fpresg, fpres, 0, pc, eas, elite_state, init_language<1>, "Fidelity Electronics", "Prestige Challenger (original program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1982, fpressp, fpres, 0, pc, eas, elite_state, init_language<2>, "Fidelity Electronics", "Prestige Challenger (original program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1982, fpresfr, fpres, 0, pc, eas, elite_state, init_language<3>, "Fidelity Electronics", "Prestige Challenger (original program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, init_language<0>, "Fidelity Electronics", "Prestige Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, fpresbug, fpres, 0, pc, eas, elite_state, init_language<1>, "Fidelity Electronics", "Prestige Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, fpresbusp, fpres, 0, pc, eas, elite_state, init_language<2>, "Fidelity Electronics", "Prestige Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, fpresbufr, fpres, 0, pc, eas, elite_state, init_language<3>, "Fidelity Electronics", "Prestige Challenger (Budapest program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1982, fpres, 0, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (original program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag2100, 0, 0, eag2100, eag, elite_state, init_eag<0>, "Fidelity Electronics", "Elite Avant Garde 2100 (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag2100g, feag2100, 0, eag2100, eag, elite_state, init_eag<1>, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag2100sp, feag2100, 0, eag2100, eag, elite_state, init_eag<2>, "Fidelity Electronics", "Elite Avant Garde 2100 (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag2100fr, feag2100, 0, eag2100, eag, elite_state, init_eag<3>, "Fidelity Electronics", "Elite Avant Garde 2100 (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag, feag2100, 0, eag, eag, elite_state, init_language<0>, "Fidelity Electronics", "Elite Avant Garde (model 6081, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feagg, feag2100, 0, eag, eag, elite_state, init_language<1>, "Fidelity Electronics", "Elite Avant Garde (model 6081, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feagsp, feag2100, 0, eag, eag, elite_state, init_language<2>, "Fidelity Electronics", "Elite Avant Garde (model 6081, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feagfr, feag2100, 0, eag, eag, elite_state, init_language<3>, "Fidelity Electronics", "Elite Avant Garde (model 6081, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1986, feag, 0, 0, eag, eag, elite_state, empty_init, "Fidelity Electronics", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1986, feag2100, feag, 0, eag2100, eag, elite_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp index c8826877f3d..3caf3443073 100644 --- a/src/mame/drivers/fidel_excel.cpp +++ b/src/mame/drivers/fidel_excel.cpp @@ -388,7 +388,7 @@ void excel_state::granits(machine_config &config) fexcelp(config); /* basic machine hardware */ - m_maincpu->set_clock(8_MHz_XTAL); // overclocked + m_maincpu->set_clock(8_MHz_XTAL/2); } void excel_state::fdes2100(machine_config &config) diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index b73f64e9db0..6e4e5f9429c 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -218,7 +218,7 @@ READ8_MEMBER(vcc_state::ppi_portc_r) // d0-d3: multiplexed inputs (active low) // also language switches, hardwired with 4 jumpers // 0(none wired): English, 1: German, 2: French, 4: Spanish, 8:Special(unused) - u8 lan = (~m_led_select & 0x40) ? m_language : 0; + u8 lan = (~m_led_select & 0x40) ? *m_language : 0; return ~(lan | read_inputs(4)) & 0xf; } @@ -326,39 +326,25 @@ ROM_START( vcc ) ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) ) ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( vccg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) ) - ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) ) - ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 0, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 4, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( vccsp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) ) - ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) ) - ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // dumped from Spanish VCC, is same as data in fexcelv -ROM_END - -ROM_START( vccfr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("cn19256n_101-32013", 0x0000, 0x1000, CRC(257bb5ab) SHA1(f7589225bb8e5f3eac55f23e2bd526be780b38b5) ) - ROM_LOAD("cn19174n_vcc2", 0x1000, 0x1000, CRC(f33095e7) SHA1(692fcab1b88c910b74d04fe4d0660367aee3f4f0) ) - ROM_LOAD("cn19175n_vcc3", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END ROM_START( uvc ) @@ -366,36 +352,25 @@ ROM_START( uvc ) ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) // MOS // 101-64017 // 3880 ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) // NEC P9Z021 // D2332C 228 // 101-32010, == cn19175n_vcc3 on vcc - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // NEC P9Y019 // D2332C 229 // 101-32107 - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( uvcg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) - ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 0, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 4, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( uvcsp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) - ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) -ROM_END - -ROM_START( uvcfr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64017", 0x0000, 0x2000, CRC(f1133abf) SHA1(09dd85051c4e7d364d43507c1cfea5c2d08d37f4) ) - ROM_LOAD("101-32010", 0x2000, 0x1000, CRC(624f0cd5) SHA1(7c1a4f4497fe5882904de1d6fecf510c07ee6fc6) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) // NEC P9Y019 // D2332C 229 // 101-32107 + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END } // anonymous namespace @@ -406,12 +381,6 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, init_language<0>, "Fidelity Electronics", "Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccg, vcc, 0, vcc, vcc, vcc_state, init_language<1>, "Fidelity Electronics", "Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccsp, vcc, 0, vcc, vcc, vcc_state, init_language<2>, "Fidelity Electronics", "Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1979, vccfr, vcc, 0, vcc, vcc, vcc_state, init_language<4>, "Fidelity Electronics", "Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, init_language<0>, "Fidelity Electronics", "Advanced Voice Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcg, vcc, 0, vcc, vcc, vcc_state, init_language<1>, "Fidelity Electronics", "Advanced Voice Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcsp, vcc, 0, vcc, vcc, vcc_state, init_language<2>, "Fidelity Electronics", "Advanced Voice Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvcfr, vcc, 0, vcc, vcc, vcc_state, init_language<4>, "Fidelity Electronics", "Advanced Voice Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index 335b1e7cc8c..12c4e061b70 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -247,7 +247,7 @@ READ8_MEMBER(vsc_state::pio_porta_r) { // d0-d7: multiplexed inputs // also language switches(hardwired with 2 diodes) - u8 lan = (m_inp_mux & 0x400) ? m_language : 0; + u8 lan = (m_inp_mux & 0x400) ? *m_language : 0; return read_inputs(10) | lan; } @@ -397,39 +397,25 @@ ROM_START( vsc ) ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) - ROM_RELOAD( 0x1000, 0x1000) -ROM_END + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") -ROM_START( vscg ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 0, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 3, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64101", 0x0000, 0x2000, BAD_DUMP CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff) ) // taken from fexcelv, assume correct -ROM_END - -ROM_START( vscsp ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64106", 0x0000, 0x2000, BAD_DUMP CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9) ) // taken from vcc/fexcelv, assume correct -ROM_END - -ROM_START( vscfr ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("101-64018", 0x0000, 0x2000, CRC(c9c98490) SHA1(e6db883df088d60463e75db51433a4b01a3e7626) ) - ROM_LOAD("101-64019", 0x2000, 0x2000, CRC(08a3577c) SHA1(69fe379d21a9d4b57c84c3832d7b3e7431eec341) ) - ROM_LOAD("101-32024", 0x4000, 0x1000, CRC(2a078676) SHA1(db2f0aba7e8ac0f84a17bae7155210cdf0813afb) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-64105", 0x0000, 0x2000, BAD_DUMP CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3) ) // taken from fexcelv, assume correct + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END } // anonymous namespace @@ -440,8 +426,5 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, init_language<0>, "Fidelity Electronics", "Voice Sensory Chess Challenger (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1980, vscg, vsc, 0, vsc, vsc, vsc_state, init_language<1>, "Fidelity Electronics", "Voice Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1980, vscsp, vsc, 0, vsc, vsc, vsc_state, init_language<2>, "Fidelity Electronics", "Voice Sensory Chess Challenger (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1980, vscfr, vsc, 0, vsc, vsc, vsc_state, init_language<3>, "Fidelity Electronics", "Voice Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, empty_init, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h index 94c60572b14..1a232d9bab5 100644 --- a/src/mame/includes/fidelbase.h +++ b/src/mame/includes/fidelbase.h @@ -34,6 +34,7 @@ public: m_div_config(*this, "div_config"), m_speech(*this, "speech"), m_speech_rom(*this, "speech"), + m_language(*this, "language"), m_dac(*this, "dac"), m_cart(*this, "cartslot") { } @@ -41,9 +42,6 @@ public: // in case reset button is directly tied to maincpu reset pin virtual DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } - // speech rom language, normally 0=English, 1=German, 2=French, 3=Spanish - template void init_language() { m_language = Language; } - protected: // devices/pointers required_device m_maincpu; @@ -53,11 +51,10 @@ protected: optional_ioport m_div_config; optional_device m_speech; optional_region_ptr m_speech_rom; + optional_region_ptr m_language; optional_device m_dac; optional_device m_cart; - int m_language; - u8 m_speech_data; u8 m_speech_bank; // speech rom higher address bits diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 50f33b5401e..a6cc11f3a67 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12874,15 +12874,9 @@ chesstera // kishon // @source:fidel_csc.cpp -csc // CSC: Champion Sensory Chess Challenger (English) -cscfr // * French -cscg // * German -cscsp // * Spanish +csc // reversic // -super9cc // SU9: Super 9 Sensory Chess Challenger (English) -super9ccfr // * French -super9ccg // * German -super9ccsp // * Spanish +super9cc // @source:fidel_dames.cpp damesc // @@ -12909,34 +12903,13 @@ fex68km2 // fex68km3 // @source:fidel_elite.cpp -feasbu // EAS: Elite A/S Challenger (Budapest program, English) -feasbufr // * French -feasbug // * German -feasbusp // * Spanish -feasgla // EAS: Elite A/S Challenger (Glasgow program, English) -feasglafr // * French -feasglag // * German -feasglasp // * Spanish +feasbu // +feasgla // feag // -feagfr // -feagg // -feagsp // -feag2100 // EAG: Elite Avant Garde 2100 (English) -feag2100fr // * French -feag2100g // * German -feag2100sp // * Spanish +feag2100 // fepriv // -feprivfr // -feprivg // -feprivsp // fpres // -fpressp // -fpresg // -fpresfr // fpresbu // -fpresbusp // -fpresbug // -fpresbufr // @source:fidel_excel.cpp fdes2000 // @@ -12971,20 +12944,11 @@ fscc9c // fscc9ps // @source:fidel_vcc.cpp -uvc // UVC: Advanced Voice Chess Challenger (English) -uvcfr // * French -uvcg // * German -uvcsp // * Spanish -vcc // VCC: Voice Chess Challenger (English) -vccfr // * German -vccg // * Spanish -vccsp // * French +uvc // +vcc // @source:fidel_vsc.cpp -vsc // VSC: Voice Sensory Chess Challenger (English) -vscfr // * French -vscg // * German -vscsp // * Spanish +vsc // @source:finalizr.cpp finalizr // GX523 (c) 1985 From f711032064f7c778bd72fd8566d1e54298086645 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Sun, 24 Feb 2019 16:45:00 +0000 Subject: [PATCH 09/42] new working machines (JAKKS Spongebob Fry Cook) + e-kara cartridges (#4684) * new software list entries --- ekara_japan:ec0050 Artist Selection Volume 12 (The Beatles) (Japan) (EC0050-ATS) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0053 J-Pop Mix Volume 22 (Japan) (EC0053-JPM) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0055 Artist Selection Volume 13 (Tube) (Japan) (EC0055-ATS) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0056 J-Pop Mix Volume 24 (Japan) (EC0056-JPM) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0057 Artist Selection Volume 14 (SMAP) (Japan) (EC0057-ATS) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0059 J-Pop Mix Volume 25 (Japan) (EC0059-JPM) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0016 ENK Volume 2 (Japan) (EC0016-ENK) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0017 1973-75 Volume 1 (Japan) (EC0017-G73) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0019 Graduation Encouragement Volume 1 (Japan) (EC0019-BSC) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0020 Kid's Mix Volume 2 (Japan) (EC0020-KID) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0028 J-Pop Mix Volume 16 (Japan) (EC0028-JPM) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0038 Graduation Encouragement Volume 2 (Japan) (EC0038-BSC) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0039 Artist Selection Volume 7 (B's) (Japan) (EC0039-ATS) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0040 J-Pop Mix Volume 18 (Japan) (EC0040-JPM) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] ekara_japan:ec0043 ENK Volume 5 (Japan) (EC0043-ENK) [Sean Riddle, Peter Wilhelmsen. David Haywood, ShouTime] * improved filenames (nw) * new WORKING machines --- SpongeBob SquarePants - The Fry Cook Games (JAKKS Pacific TV Game, Game-Key Ready) [Sean Riddle, 24 external donators] * year (nw) * notes (nw) * notes (nw) --- hash/ekara_japan.xml | 272 ++++++++++++++++++++++++++++----------- src/mame/drivers/vii.cpp | 12 +- src/mame/mame.lst | 1 + 3 files changed, 208 insertions(+), 77 deletions(-) diff --git a/hash/ekara_japan.xml b/hash/ekara_japan.xml index 97e45dd3337..cd796e9d39e 100644 --- a/hash/ekara_japan.xml +++ b/hash/ekara_japan.xml @@ -30,17 +30,22 @@ Some Japanese carts have a number starting with S (S-x on case, SCxxxx-xxx part numbers) (see ekara_japan_s.xml) (for e-kara - custom presentation) M (M-x on case, MCxxxx-xxx part numbers) (see ekara_japan_m.xml) (for e-kara - custom presentation) - EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation) (check other compatibility) + EN (EN-X on case, no part numbers) (see ekara_japan_en.xml) (for e-kara - custom presentation) + BH (BG-XX on case, BH-xxxx on PCB) (see ekara_japan_bh.xml) (for e-kara - custom presentation) + GK (GK-X on case) (see ekara_japan_gk.xml) (for e-kara / e-pitch - custom presentation) G (G-x on case, GCxxxx-xxx part numbers) (see ekara_japan_g.xml) (for e-kara, Popira / 2) P (P-x on case, PCxxxx-xxx part numbers) (see ekara_japan_p.xml) (for e-kara, Popira / 2, DDR Family Mat) D (D-x on case, DCxxxx-xxx part numbers) (see ekara_japan_d.xml) (for e-kara, Popira / 2, Taiko De Popira) SP (SP-x on case, no part numbers) (see ekara_japan_sp.xml) (for e-kara, Popira / 2, Taiko de Popira, Jumping Popira) - + A (A-x on case, Pichi Pichi Pitch series)(see ekara_japan_a.xml) (for e-kara / e-pitch) + JP (JP-x on case) (see ekara_japan_jp.xml) (for Jumping Popira Only) + these exist but haven't got any - Some Japanese carts have a number starting with JP (for Jumping Popira Only?) - A (for Pichi Pichi Pitch Only?) + Some Japanese carts have a number starting with KE (for Kids Lyric book device Only?) KD (for e-kara?) + PR (seen a PR-02 AYY) (what is it?) + KR (seen a KR-1) (bundled with later units?) (there are others, need to document them) @@ -59,6 +64,7 @@ The EC number is printed on the left side of the cart label, as well as in the serial code early carts don't have a number printed on the box, only the title, after a certain point a number was added (when?) + Only known undumped carts in main series are 58, 64, 81, 83, 84, 85 (assuming highest number is 85) .. *EC0001-JPM J-Pop Mix Volume 1 .. *EC0002-JPM J-Pop Mix Volume 2 @@ -76,12 +82,12 @@ .. *EC0013-JPM J-Pop Mix Volume 8 .. *EC0014-ATS Artist Selection Volume 1 - untranslated artist .. *EC0015-ATS Artist Selection Volume 2 - untranslated artist - .. EC0016-ENK ENK Volume 2 - .. EC0017-G73 1973-75 Volume 1 + .. *EC0016-ENK ENK Volume 2 + .. *EC0017-G73 1973-75 Volume 1 .. *EC0018-G82 1982-84 Volume 1 - .. EC0019-BSC Graduation Encouragement Volume 1 + .. *EC0019-BSC Graduation Encouragement Volume 1 - .. EC0020-KID Kid's Mix Volume 2 + .. *EC0020-KID Kid's Mix Volume 2 .. *EC0021-JPM J-Pop Mix Volume 9 .. *EC0022-JPM J-Pop Mix Volume 10 23 *EC0023-JPM J-Pop Mix Volume 11 @@ -89,7 +95,7 @@ 25 *EC0025-JPM J-Pop Mix Volume 13 26 *EC0026-JPM J-Pop Mix Volume 14 27 *EC0027-JPM J-Pop Mix Volume 15 - 28 EC0028-JPM J-Pop Mix Volume 16 + 28 *EC0028-JPM J-Pop Mix Volume 16 29 *EC0029-ATS Artist Selection Volume 3 - Dreams Come True 30 *EC0030-ENK ENK Volume 3 @@ -100,13 +106,13 @@ 35 *EC0035-ATS Artist Selection Volume 5 - Matsuda Seiko 36 *EC0036-ATS Artist Selection Volume 6 - KinKi Kids 37 *EC0037-ENK ENK Volume 4 - 38 EC0038-BSC Graduation Encouragement Volume 2 - 39 EC0039-ATS Artist Selection Volume 7 - B'z + 38 *EC0038-BSC Graduation Encouragement Volume 2 + 39 *EC0039-ATS Artist Selection Volume 7 - B'z - 40 EC0040-JPM J-Pop Mix Volume 18 + 40 *EC0040-JPM J-Pop Mix Volume 18 41 *EC0041-ATS Artist Selection Volume 8 - untranslated artist 42 *EC0042-JPM J-Pop Mix Volume 19 - 43 EC0043-ENK ENK Volume 5 + 43 *EC0043-ENK ENK Volume 5 44 *EC0044-ATS Artist Selection Volume 9 - Every Little Thing 45 *EC0045-ATS Artist Selection Volume 10 - Mr. Children 46 *EC0046-JPM J-Pop Mix Volume 20 @@ -114,16 +120,16 @@ 48 *EC0048-ENK ENK Volume 6 49 *EC0049-ATS Artist Selection Volume 11 - Judy and Mary - 50 EC0050-ATS Artist Selection Volume 12 - The Beatles + 50 *EC0050-ATS Artist Selection Volume 12 - The Beatles 51 *EC0051-JPM J-Pop Mix Volume 21 52 *EC0052-ENK ENK Volume 7 - 53 EC0053-JPM J-Pop Mix Volume 22 + 53 *EC0053-JPM J-Pop Mix Volume 22 54 *EC0054-JPM J-Pop Mix Volume 23 - 55 EC0055-ATS Artist Selection Volume 13 - Tube - 56 EC0056-JPM J-Pop Mix Volume 24 - 57 EC0057-ATS Artist Selection Volume 14 - SMAP (should be Vol 14? sales sheet still lists 13 tho) + 55 *EC0055-ATS Artist Selection Volume 13 - Tube + 56 *EC0056-JPM J-Pop Mix Volume 24 + 57 *EC0057-ATS Artist Selection Volume 14 - SMAP (should be Vol 14? sales sheet still lists 13 tho) 58 EC0058-ENK ENK Volume 8 - 59 EC0059-JPM J-Pop Mix Volume 25 + 59 *EC0059-JPM J-Pop Mix Volume 25 60 *EC0060-JPM J-Pop Mix Volume 26 61 *EC0061-JPM J-Pop Mix Volume 27 @@ -181,24 +187,6 @@ *********************************************************************************** - Japanese cart listing (by A code) - - These are for Pichi Pichi Pitch - (not e-kara compatible?) - - https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10109392860 - - A-1 (unknown) - A-2 (unknown) - A-3 (unknown) - A-4 (unknown) - A-5 (unknown) - A-6 (unknown) - A-7 (unknown) - A-8 (unknown) - - *********************************************************************************** - --> @@ -258,17 +246,6 @@ - - J-Pop Mix Volume 6 (Japan) (EC0011-JPM) - 2000 - Takara - - - - - - - ENK Volume 1 (Japan) (EC0006-ENK) 2000 @@ -324,6 +301,17 @@ + + J-Pop Mix Volume 6 (Japan) (EC0011-JPM) + 2000 + Takara + + + + + + + J-Pop Mix Volume 7 (Japan) (EC0012-JPM) 2000 @@ -368,10 +356,28 @@ - - - - + + ENK Volume 2 (Japan) (EC0016-ENK) + 2000 + Takara + + + + + + + + + 1973-75 Volume 1 (Japan) (EC0017-G73) + 2000 + Takara + + + + + + + 1982-84 Volume 1 (Japan) (EC0018-G82) 2000 @@ -383,10 +389,28 @@ - - - - + + Graduation Encouragement Volume 1 (Japan) (EC0019-BSC) + 2000 + Takara + + + + + + + + + Kid's Mix Volume 2 (Japan) (EC0020-KID) + 2000 + Takara + + + + + + + J-Pop Mix Volume 9 (Japan) (EC0021-JPM) 2000 @@ -464,7 +488,16 @@ - + + J-Pop Mix Volume 16 (Japan) (EC0028-JPM) + 2000 + Takara + + + + + + Artist Selection Volume 3 (Dreams Come True) (Japan) (EC0029-ATS) @@ -565,11 +598,38 @@ - - - - - + + Graduation Encouragement Volume 2 (Japan) (EC0038-BSC) + 2000 + Takara + + + + + + + + + Artist Selection Volume 7 (B'z) (Japan) (EC0039-ATS) + 2000 + Takara + + + + + + + + + J-Pop Mix Volume 18 (Japan) (EC0040-JPM) + 2000 + Takara + + + + + + Artist Selection Volume 8 (unknown) (Japan) (EC0041-ATS) @@ -593,7 +653,16 @@ - + + ENK Volume 5 (Japan) (EC0043-ENK) + 2001 + Takara + + + + + + Artist Selection Volume 9 (Every Little Thing) (Japan) (EC0044-ATS) @@ -664,8 +733,18 @@ - - + + Artist Selection Volume 12 (The Beatles) (Japan) (EC0050-ATS) + 2001 + Takara + + + + + + + + J-Pop Mix Volume 21 (Japan) (EC0051-JPM) 2001 @@ -688,7 +767,16 @@ - + + J-Pop Mix Volume 22 (Japan) (EC0053-JPM) + 2001 + Takara + + + + + + J-Pop Mix Volume 23 (Japan) (EC0054-JPM) @@ -701,16 +789,52 @@ - - - - - - + + Artist Selection Volume 13 (Tube) (Japan) (EC0055-ATS) + 2001 + Takara + + + + + + + + + J-Pop Mix Volume 24 (Japan) (EC0056-JPM) + 2001 + Takara + + + + + + + + + Artist Selection Volume 14 (SMAP) (Japan) (EC0057-ATS) + 2001 + Takara + + + + + + + - - + + J-Pop Mix Volume 25 (Japan) (EC0059-JPM) + 2001 + Takara + + + + + + + J-Pop Mix Volume 26 (Japan) (EC0060-JPM) 2001 diff --git a/src/mame/drivers/vii.cpp b/src/mame/drivers/vii.cpp index aaa044edb35..0e45470cb93 100644 --- a/src/mame/drivers/vii.cpp +++ b/src/mame/drivers/vii.cpp @@ -1733,6 +1733,11 @@ ROM_START( jak_nick ) ROM_LOAD16_WORD_SWAP( "jakksnicktoonsgkr.bin", 0x000000, 0x200000, CRC(4dec1656) SHA1(b3002ab15e75068102f4955a3f0c52fb6d5cda56) ) ROM_END +ROM_START( jak_sbfc ) + ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) + ROM_LOAD16_WORD_SWAP( "jakksspongebobgkr.bin", 0x000000, 0x200000, CRC(9871303c) SHA1(78bc2687e1514094db8bb875e1117df3fcb3d201) ) +ROM_END + ROM_START( jak_dorr ) ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) ROM_LOAD16_WORD_SWAP( "jakksdora2gkr.bin", 0x000000, 0x200000, CRC(6c09bcd9) SHA1(4bcad79658832f319d16b4f63257e127f6862d79) ) @@ -2040,7 +2045,8 @@ CONS( 2005, jak_just, 0, 0, jakks_gkr_1m_i2c, jak_gkr_i2c, jakks_gkr_state, emp CONS( 2005, jak_dora, 0, 0, jakks_gkr_nk, jak_gkr, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Nursery Rhyme Adventure (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is pink/purple. CONS( 2005, jak_dorr, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Dora the Explorer - Race to Play Park (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys (same as Nicktoons & Spongebob) (3 released) - The upper part of this one is blue CONS( 2004, jak_nick, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Handheld Games", "Nicktoons (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys -CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) +CONS( 2005, jak_sbfc, 0, 0, jakks_gkr_nk_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "SpongeBob SquarePants - The Fry Cook Games (JAKKS Pacific TV Game, Game-Key Ready) (AUG 18 2005 21:31:56)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses NK keys +CONS( 2005, jak_sdoo, 0, 0, jakks_gkr_2m_i2c, jak_sdoo_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Jolliford Management", "Scooby-Doo! and the Mystery of the Castle (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // SD (no game-keys released) (was dumped from a later unit with GameKey port missing, but internal PCB still supported it, code likely the same) CONS( 2005, jak_disf, 0, 0, jakks_gkr_dy_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / HotGen Ltd", "Disney Friends (JAKKS Pacific TV Game, Game-Key Ready) (17 MAY 2005 A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DY keys (3 released) CONS( 2005, jak_disp, 0, 0, jakks_gkr_dp_i2c, jak_disp_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / 5000ft, Inc", "Disney Princess (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // uses DP keys (1 key released) // There seems to be a second game called 'Disney Princesses' with a 'board game' style front end as well as the minigames, also GKR, see https://www.youtube.com/watch?v=w9p5TI029bQ The one we have is https://www.youtube.com/watch?v=9ppPKVbpoMs the physical package seems identical. @@ -2052,12 +2058,12 @@ CONS( 2005, jak_wof, 0, 0, jakks_gkr_wf_i2c, jak_wf_i2c, jakks_gkr_state, emp CONS( 2004, jak_spdm, 0, 0, jakks_gkr_mv_i2c, jak_gkr_i2c, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Digital Eclipse", "Spider-Man (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // MV (1 key available) CONS( 2005, jak_pooh, 0, 0, jakks_gkr_wp, jak_pooh, jakks_gkr_state, empty_init, "JAKKS Pacific Inc / Backbone Entertainment", "Winnie the Pooh - Piglet's Special Day (JAKKS Pacific TV Game, Game-Key Ready)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // WP (no game-keys released) -// SpongeBob SquarePants: The Fry Cook Games NK (3 keys available) ^^ - // no keys released for the following, some were in development but cancelled // Capcom 3-in-1 CC (no game-keys released) // Care Bears CB (no game-keys released) +// Some versions of the Shrek - Over the Hedge unit show the GameKey logo on startup (others don't) there is no evidence to suggest it was ever released with a GameKey port tho, and the internal PCB has no place for one on the versions we've seen (which show the logo) + // Radica TV games CONS( 2006, rad_skat, 0, 0, rad_skat, rad_skat, spg2xx_game_state, init_crc, "Radica", "Play TV Skateboarder (NTSC)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) CONS( 2006, rad_skatp, rad_skat, 0, rad_skatp,rad_skatp, spg2xx_game_state, init_crc, "Radica", "Connectv Skateboarder (PAL)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index a6cc11f3a67..d9a3e59ee9a 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38713,6 +38713,7 @@ jak_wof // jak_spdm // jak_pooh // jak_nick // +jak_sbfc // lexizeus // Lexibook vii // KenSingTon / Jungle Soft / Siatronics Vii wrlshunt // Wireless: Hunting Video Game System From 89e0f698b666ad446a03da86db051769690b3837 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 23 Feb 2019 19:58:49 +0100 Subject: [PATCH 10/42] Prepare further optimization. (nw) --- src/lib/netlist/solver/nld_matrix_solver.cpp | 14 +++++++------- src/lib/netlist/solver/nld_matrix_solver.h | 19 +++++++------------ src/lib/netlist/solver/nld_ms_gcr.h | 2 +- src/lib/netlist/solver/nld_ms_gmres.h | 2 +- src/lib/netlist/solver/nld_ms_sor.h | 12 ++++++------ 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index 68cad1422ea..cb905251df3 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -237,7 +237,7 @@ namespace devices /* rebuild */ for (auto &term : m_terms) { - int *other = term->connected_net_idx(); + int *other = term->m_connected_net_idx.data(); for (std::size_t i = 0; i < term->count(); i++) //FIXME: this is weird if (other[i] != -1) @@ -253,7 +253,7 @@ namespace devices { m_terms[k]->m_railstart = m_terms[k]->count(); for (std::size_t i = 0; i < m_rails_temp[k]->count(); i++) - this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->connected_net_idx()[i], false); + this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->m_connected_net_idx.data()[i], false); m_terms[k]->set_pointers(); } @@ -268,7 +268,7 @@ namespace devices { terms_for_net_t * t = m_terms[k].get(); /* pretty brutal */ - int *other = t->connected_net_idx(); + int *other = t->m_connected_net_idx.data(); t->m_nz.clear(); @@ -290,7 +290,7 @@ namespace devices { terms_for_net_t * t = m_terms[k].get(); /* pretty brutal */ - int *other = t->connected_net_idx(); + int *other = t->m_connected_net_idx.data(); if (k==0) t->m_nzrd.clear(); @@ -371,9 +371,9 @@ namespace devices state().save(*this, m_terms[k]->m_h_n_m_1, this->name(), "m_h_n_m_1." + num); // FIXME: This shouldn't be necessary, recalculate on each entry ... - state().save(*this, m_terms[k]->go(),"GO" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->gt(),"GT" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->Idr(),"IDR" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_terms[k]->m_go.data(),"GO" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_terms[k]->m_gt.data(),"GT" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_terms[k]->m_Idr.data(),"IDR" + num, this->name(), m_terms[k]->count()); } } diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 71c28236c67..cd5a4f3bd0c 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -50,11 +50,6 @@ namespace devices std::size_t count() const { return m_terms.size(); } terminal_t **terms() { return m_terms.data(); } - int *connected_net_idx() { return m_connected_net_idx.data(); } - nl_double *gt() { return m_gt.data(); } - nl_double *go() { return m_go.data(); } - nl_double *Idr() { return m_Idr.data(); } - nl_double * const *connected_net_V() const { return m_connected_net_V.data(); } void set_pointers(); @@ -105,12 +100,12 @@ namespace devices nl_double m_DD_n_m_1; nl_double m_h_n_m_1; - private: std::vector m_connected_net_idx; plib::aligned_vector m_go; plib::aligned_vector m_gt; plib::aligned_vector m_Idr; plib::aligned_vector m_connected_net_V; + private: std::vector m_terms; }; @@ -284,7 +279,7 @@ namespace devices const std::size_t terms_count = terms->count(); const std::size_t railstart = terms->m_railstart; - const float_type * const gt = terms->gt(); + const float_type * const gt = terms->m_gt.data(); { float_type akk = 0.0; @@ -294,8 +289,8 @@ namespace devices Ak[k] = akk; } - const float_type * const go = terms->go(); - int * net_other = terms->connected_net_idx(); + const float_type * const go = terms->m_go.data(); + int * net_other = terms->m_connected_net_idx.data(); for (std::size_t i = 0; i < railstart; i++) Ak[net_other[i]] -= go[i]; @@ -315,9 +310,9 @@ namespace devices float_type rhsk_b = 0.0; const std::size_t terms_count = m_terms[k]->count(); - const float_type * const go = m_terms[k]->go(); - const float_type * const Idr = m_terms[k]->Idr(); - const float_type * const * other_cur_analog = m_terms[k]->connected_net_V(); + const float_type * const go = m_terms[k]->m_go.data(); + const float_type * const Idr = m_terms[k]->m_Idr.data(); + const float_type * const * other_cur_analog = m_terms[k]->m_connected_net_V.data(); for (std::size_t i = 0; i < terms_count; i++) rhsk_a = rhsk_a + Idr[i]; diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 187c9f659ea..481d82a0e6b 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -167,7 +167,7 @@ void matrix_solver_GCR_t::vsetup(analog_net_t::list_t &nets) /* build pointers into the compressed row format matrix for each terminal */ for (std::size_t j=0; j< this->m_terms[k]->m_railstart;j++) { - int other = this->m_terms[k]->connected_net_idx()[j]; + int other = this->m_terms[k]->m_connected_net_idx[j]; for (auto i = mat.row_idx[k]; i < mat.row_idx[k+1]; i++) if (other == static_cast(mat.col_idx[i])) { diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index bee5c25e3d5..59c6259aafe 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -89,7 +89,7 @@ namespace devices for (std::size_t j=0; j< this->m_terms[k]->m_railstart;j++) { for (std::size_t i = m_ops.m_mat.row_idx[k]; im_terms[k]->connected_net_idx()[j] == static_cast(m_ops.m_mat.col_idx[i])) + if (this->m_terms[k]->m_connected_net_idx[j] == static_cast(m_ops.m_mat.col_idx[i])) { m_term_cr[k].push_back(&m_ops.m_mat.A[i]); break; diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index a1893644084..450803e25d8 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -85,10 +85,10 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap float_type RHS_t = 0.0; const std::size_t term_count = this->m_terms[k]->count(); - const float_type * const gt = this->m_terms[k]->gt(); - const float_type * const go = this->m_terms[k]->go(); - const float_type * const Idr = this->m_terms[k]->Idr(); - auto other_cur_analog = this->m_terms[k]->connected_net_V(); + const float_type * const gt = this->m_terms[k]->m_gt.data(); + const float_type * const go = this->m_terms[k]->m_go.data(); + const float_type * const Idr = this->m_terms[k]->m_Idr.data(); + auto other_cur_analog = this->m_terms[k]->m_connected_net_V.data(); this->m_new_V[k] = this->m_nets[k]->Q_Analog(); @@ -134,9 +134,9 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap float_type err = 0; for (std::size_t k = 0; k < iN; k++) { - const int * net_other = this->m_terms[k]->connected_net_idx(); + const int * net_other = this->m_terms[k]->m_connected_net_idx.data(); const std::size_t railstart = this->m_terms[k]->m_railstart; - const float_type * go = this->m_terms[k]->go(); + const float_type * go = this->m_terms[k]->m_go.data(); float_type Idrive = 0.0; for (std::size_t i = 0; i < railstart; i++) From a7a81862837cf8df3bc19c601b9d06ffb16262c9 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 23 Feb 2019 20:34:03 +0100 Subject: [PATCH 11/42] Move fillmatrix to to matrix solver base class. (nw) --- src/lib/netlist/plib/mat_cr.h | 13 +++- src/lib/netlist/plib/parray.h | 1 + src/lib/netlist/solver/nld_matrix_solver.h | 76 ++++++++++++---------- src/lib/netlist/solver/nld_ms_gcr.h | 6 +- src/lib/netlist/solver/nld_ms_gmres.h | 3 +- 5 files changed, 56 insertions(+), 43 deletions(-) diff --git a/src/lib/netlist/plib/mat_cr.h b/src/lib/netlist/plib/mat_cr.h index 3cf2570b725..7fc5d46b85d 100644 --- a/src/lib/netlist/plib/mat_cr.h +++ b/src/lib/netlist/plib/mat_cr.h @@ -67,13 +67,20 @@ namespace plib , m_size(n) { for (index_type i=0; i((N>0) ? N : m_size); } + void clear() + { + nz_num = 0; + for (index_type i=0; i < size() + 1; i++) + row_idx[i] = 0; + } + void set_scalar(const T scalar) { for (index_type i=0, e=nz_num; i 0 && col_idx[ri] == c) + if (ri < row_idx[r+1] && col_idx[ri] == c) A[ri] = val; else { @@ -97,7 +104,7 @@ namespace plib } A[ri] = val; col_idx[ri] = c; - for (C i = row_idx[r]; i < size()+1;i++) + for (C i = r + 1; i < size() + 1; i++) row_idx[i]++; nz_num++; if (c==r) diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 5ab52524a07..9b64f5343d2 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -60,6 +60,7 @@ namespace plib { using size_type = typename base_type::size_type; using reference = typename base_type::reference; using const_reference = typename base_type::const_reference; + using value_type = typename base_type::value_type; template parray(size_type size, typename std::enable_if::type = 0) diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index cd5a4f3bd0c..903c39257d0 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -53,42 +53,6 @@ namespace devices void set_pointers(); - /* FIXME: this works a bit better for larger matrices */ - template - void fill_matrix/*_larger*/(AP &tcr, FT &RHS) - { - - const std::size_t term_count = this->count(); - const std::size_t railstart = this->m_railstart; - - for (std::size_t i = 0; i < railstart; i++) - *tcr[i] -= m_go[i]; - - #if 1 - FT gtot_t = 0.0; - FT RHS_t = 0.0; - - for (std::size_t i = 0; i < term_count; i++) - { - gtot_t += m_gt[i]; - RHS_t += m_Idr[i]; - } - // FIXME: Code above is faster than vec_sum - Check this - #else - auto gtot_t = plib::vec_sum(term_count, m_gt); - auto RHS_t = plib::vec_sum(term_count, m_Idr); - #endif - - for (std::size_t i = railstart; i < term_count; i++) - { - RHS_t += (/*m_Idr[i]*/ + m_go[i] * *m_connected_net_V[i]); - } - - RHS = RHS_t; - // update diagonal element ... - *tcr[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t; - } - std::size_t m_railstart; std::vector m_nz; /* all non zero for multiplication */ @@ -207,6 +171,46 @@ namespace devices template void build_LE_RHS(T &child); + template + void fill_matrix(std::size_t N, AP &tcr, FT &RHS) + { + for (std::size_t k = 0; k < N; k++) + { + auto *net = m_terms[k].get(); + auto **tcr_r = tcr[k].data(); + + const std::size_t term_count = net->count(); + const std::size_t railstart = net->m_railstart; + + for (std::size_t i = 0; i < railstart; i++) + *tcr_r[i] -= net->m_go[i]; + + typename FT::value_type gtot_t = 0.0; + typename FT::value_type RHS_t = 0.0; + + for (std::size_t i = 0; i < term_count; i++) + { + gtot_t += net->m_gt[i]; + RHS_t += net->m_Idr[i]; + } + // FIXME: Code above is faster than vec_sum - Check this + #if 0 + auto gtot_t = plib::vec_sum(term_count, m_gt); + auto RHS_t = plib::vec_sum(term_count, m_Idr); + #endif + + for (std::size_t i = railstart; i < term_count; i++) + { + RHS_t += (/*m_Idr[i]*/ + net->m_go[i] * *net->m_connected_net_V[i]); + } + + RHS[k] = RHS_t; + // update diagonal element ... + *tcr_r[railstart] += gtot_t; //mat.A[mat.diag[k]] += gtot_t; + } + + } + std::vector> m_terms; std::vector m_nets; std::vector> m_inps; diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index 481d82a0e6b..fce7b5bae2c 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -67,7 +67,7 @@ private: plib::parray new_V; std::array, storage_N> m_term_cr; -// std::array, storage_N> m_term_cr; + // std::array, storage_N> m_term_cr; mat_type mat; @@ -296,8 +296,8 @@ unsigned matrix_solver_GCR_t::vsolve_non_dynamic(const bool newton_rap mat.set_scalar(0.0); /* populate matrix */ - for (std::size_t k = 0; k < iN; k++) - this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]); + + this->fill_matrix(iN, m_term_cr, RHS); /* now solve it */ diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index 59c6259aafe..95de1bbae31 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -111,9 +111,10 @@ namespace devices m_ops.m_mat.set_scalar(0.0); /* populate matrix and V for first estimate */ + this->fill_matrix(iN, m_term_cr, RHS); + for (std::size_t k = 0; k < iN; k++) { - this->m_terms[k]->fill_matrix(m_term_cr[k], RHS[k]); this->m_new_V[k] = this->m_nets[k]->Q_Analog(); } From 0e07f9ac34ec82066792fb9fdaaf04546b582fab Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 24 Feb 2019 13:58:47 +0100 Subject: [PATCH 12/42] netlist: more alignment related refactoring. (nw) --- src/lib/netlist/build/makefile | 2 +- src/lib/netlist/devices/nlid_system.h | 5 +- src/lib/netlist/nl_config.h | 2 +- src/lib/netlist/plib/palloc.h | 126 +++++++++++++------ src/lib/netlist/plib/parray.h | 2 +- src/lib/netlist/plib/pconfig.h | 2 + src/lib/netlist/plib/pfmtlog.h | 1 + src/lib/netlist/plib/pmatrix2d.h | 82 ++++++++++++ src/lib/netlist/plib/ptypes.h | 41 ++---- src/lib/netlist/plib/putil.h | 31 +++++ src/lib/netlist/solver/nld_matrix_solver.cpp | 24 +--- src/lib/netlist/solver/nld_matrix_solver.h | 72 ++++++++--- src/lib/netlist/solver/nld_ms_sor.h | 10 +- src/lib/netlist/solver/nld_solver.cpp | 2 +- 14 files changed, 283 insertions(+), 119 deletions(-) create mode 100644 src/lib/netlist/plib/pmatrix2d.h diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index f628e9eaed6..17dfe2f8edc 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -232,7 +232,7 @@ maketree: $(sort $(OBJDIRS)) .PHONY: clang clang-5 mingw doc native native: - $(MAKE) CEXTRAFLAGS="-march=native -Wall -Wpedantic -Wsign-compare -Wextra " + $(MAKE) CEXTRAFLAGS="-march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra " clang: $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-unused-template -Wno-non-virtual-dtor -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wweak-template-vtables -Wno-exit-time-destructors" diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index bc77f7ffd13..b5febc6ae3b 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -139,12 +139,13 @@ namespace netlist total += pati[i]; } netlist_time ttotal = netlist_time::zero(); - for (unsigned i=0; i(m_size - 1); + for (unsigned i=0; i < sm1; i++) { m_inc[i] = base * pati[i]; ttotal += m_inc[i]; } - m_inc[m_size - 1] = base * total - ttotal; + m_inc[sm1] = base * total - ttotal; } } NETLIB_UPDATEI(); diff --git a/src/lib/netlist/nl_config.h b/src/lib/netlist/nl_config.h index d5d195367ec..faa5008ff56 100644 --- a/src/lib/netlist/nl_config.h +++ b/src/lib/netlist/nl_config.h @@ -28,7 +28,7 @@ * Your mileage may vary. * */ -#define USE_MEMPOOL (0) +#define USE_MEMPOOL (1) /*! Store input values in logic_terminal_t. * diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index 44f3bdb395e..c7aad9372d3 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -28,19 +28,21 @@ namespace plib { // Memory allocation //============================================================ -#if (USE_ALIGNED_OPTIMIZATIONS) + static constexpr bool is_pow2(std::size_t v) noexcept { return !(v & (v-1)); } + +#if (USE_ALIGNED_ALLOCATION) static inline void *paligned_alloc( size_t alignment, size_t size ) { #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); #elif defined(__APPLE__) - void* p; - if (::posix_memalign(&p, alignment, size) != 0) { - p = nullptr; - } - return p; + void* p; + if (::posix_memalign(&p, alignment, size) != 0) { + p = nullptr; + } + return p; #else - return aligned_alloc(alignment, size); + return aligned_alloc(alignment, size); #endif } @@ -79,19 +81,35 @@ namespace plib { { ::operator delete(ptr); } +#endif template inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept { + static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); + static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); + //auto t = reinterpret_cast(p); + //if (t & (ALIGN-1)) + // printf("alignment error!"); +#if (USE_ALIGNED_HINTS) + return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); +#else return p; +#endif } template inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept { + static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); + static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); +#if (USE_ALIGNED_HINTS) + return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); +#else return p; - } #endif + } + template inline T *pnew(Args&&... args) { @@ -124,8 +142,8 @@ namespace plib { constexpr pdefault_deleter() noexcept = default; template::value>::type> - pdefault_deleter(const pdefault_deleter&) noexcept { } + std::enable_if::value>::type> + pdefault_deleter(const pdefault_deleter&) noexcept { } void operator()(T *p) const { @@ -245,33 +263,38 @@ namespace plib { return std::move(a); } + //============================================================ + // Aligned allocator for use with containers + //============================================================ + template class aligned_allocator { public: - using value_type = T; + using value_type = T; + static constexpr const std::size_t align_size = (USE_ALIGNED_ALLOCATION) ? ALIGN : alignof(std::max_align_t); - static_assert(ALIGN >= alignof(T) && (ALIGN % alignof(T)) == 0, - "ALIGN must be greater than alignof(T) and a multiple"); + static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, + "ALIGN must be greater than alignof(T) and a multiple"); - aligned_allocator() noexcept = default; - ~aligned_allocator() noexcept = default; + aligned_allocator() noexcept = default; + ~aligned_allocator() noexcept = default; - aligned_allocator(const aligned_allocator&) noexcept = default; - aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; + aligned_allocator(const aligned_allocator&) noexcept = default; + aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; - aligned_allocator(aligned_allocator&&) noexcept = default; - aligned_allocator& operator=(aligned_allocator&&) = delete; + aligned_allocator(aligned_allocator&&) noexcept = default; + aligned_allocator& operator=(aligned_allocator&&) = delete; - template - aligned_allocator(const aligned_allocator& rhs) noexcept + template + aligned_allocator(const aligned_allocator& rhs) noexcept + { + unused_var(rhs); + } + + template struct rebind { - unused_var(rhs); - } - - template struct rebind - { - using other = aligned_allocator; + using other = aligned_allocator; }; T* allocate(std::size_t n) @@ -306,12 +329,38 @@ namespace plib { return !(lhs == rhs); } - // FIXME: needs to be somewhere else -#if 0 - template - using aligned_vector = std::vector>; - //using aligned_vector = std::vector>; -#else + //============================================================ + // traits to determine alignment size and stride size + // from types supporting alignment + //============================================================ + + PDEFINE_HAS_MEMBER(has_align, align_size); + + template + struct align_traits + { + static constexpr const std::size_t align_size = alignof(std::max_align_t); + static constexpr const std::size_t stride_size = + (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size + : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T + : align_size / sizeof(T))); + }; + + template + struct align_traits::value, void>::type> + { + static constexpr const std::size_t align_size = T::align_size; + static constexpr const std::size_t stride_size = + (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size + : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T + : align_size / sizeof(T))); + }; + + //============================================================ + // Aligned vector + //============================================================ + + // FIXME: needs a separate file template class aligned_vector : public std::vector> { @@ -326,13 +375,13 @@ namespace plib { using base::base; - reference operator[](size_type i) noexcept + C14CONSTEXPR reference operator[](size_type i) noexcept { - return assume_aligned_ptr(this->data())[i]; + return assume_aligned_ptr(&((*this)[0]))[i]; } constexpr const_reference operator[](size_type i) const noexcept { - return assume_aligned_ptr(this->data())[i]; + return assume_aligned_ptr(&((*this)[0]))[i]; } pointer data() noexcept { return assume_aligned_ptr(base::data()); } @@ -340,11 +389,6 @@ namespace plib { }; - -#endif - - - } // namespace plib #endif /* PALLOC_H_ */ diff --git a/src/lib/netlist/plib/parray.h b/src/lib/netlist/plib/parray.h index 9b64f5343d2..1be37b908cd 100644 --- a/src/lib/netlist/plib/parray.h +++ b/src/lib/netlist/plib/parray.h @@ -104,7 +104,7 @@ namespace plib { return m_a[i]; } #else - reference operator[](size_type i) noexcept + C14CONSTEXPR reference operator[](size_type i) noexcept { return assume_aligned_ptr(&m_a[0])[i]; } diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index 1a411fe1aad..ecb9cc3511b 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -41,6 +41,8 @@ #define USE_ALIGNED_OPTIMIZATIONS (0) #endif +#define USE_ALIGNED_ALLOCATION (USE_ALIGNED_OPTIMIZATIONS) +#define USE_ALIGNED_HINTS (USE_ALIGNED_OPTIMIZATIONS) /* * Standard alignment macros */ diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h index 4c01f96dba7..50acf457114 100644 --- a/src/lib/netlist/plib/pfmtlog.h +++ b/src/lib/netlist/plib/pfmtlog.h @@ -9,6 +9,7 @@ #include "pstring.h" #include "ptypes.h" +#include "putil.h" #include diff --git a/src/lib/netlist/plib/pmatrix2d.h b/src/lib/netlist/plib/pmatrix2d.h new file mode 100644 index 00000000000..f0439105e5c --- /dev/null +++ b/src/lib/netlist/plib/pmatrix2d.h @@ -0,0 +1,82 @@ +// license:GPL-2.0+ +// copyright-holders:Couriersud +/* + * pmatrix2d.h + * + * NxM regular matrix + * + */ + +#ifndef PMATRIX2D_H_ +#define PMATRIX2D_H_ + +#include "palloc.h" + +#include +#include +#include +#include +#include + +namespace plib +{ + + + template> + class pmatrix2d + { + public: + using value_type = T; + + static constexpr const std::size_t align_size = align_traits::align_size; + static constexpr const std::size_t stride_size = align_traits::stride_size; + pmatrix2d() + : m_N(0), m_M(0), m_stride(8) + { + } + + pmatrix2d(std::size_t N, std::size_t M) + : m_N(N), m_M(M), m_stride((M+stride_size-1) & ~(stride_size-1)), m_v(N * m_stride) + { + } + + void resize(std::size_t N, std::size_t M) + { + m_N = N; + m_M = M; + m_stride = (M+stride_size-1) & ~(stride_size-1); + m_v.resize(N * m_stride); + } + + C14CONSTEXPR T * operator[] (std::size_t row) noexcept + { + return assume_aligned_ptr(&m_v[m_stride * row]); + } + + constexpr const T * operator[] (std::size_t row) const noexcept + { + return assume_aligned_ptr(&m_v[m_stride * row]); + } + + T & operator()(std::size_t r, std::size_t c) noexcept + { + return (*this)[r][c]; + } + + const T & operator()(std::size_t r, std::size_t c) const noexcept + { + return (*this)[r][c]; + } + + private: + + std::size_t m_N; + std::size_t m_M; + std::size_t m_stride; + + std::vector m_v; + }; + +} // namespace plib + +#endif /* MAT_CR_H_ */ diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index a3b11b65e74..84f6453e8f2 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -81,38 +81,19 @@ namespace plib template inline void unused_var(Ts&&...) {} - - - //============================================================ - // penum - strongly typed enumeration - //============================================================ - - struct penum_base - { - protected: - static int from_string_int(const char *str, const char *x); - static std::string nthstr(int n, const char *str); - }; - } // namespace plib -#define P_ENUM(ename, ...) \ - struct ename : public plib::penum_base { \ - enum E { __VA_ARGS__ }; \ - ename (E v) : m_v(v) { } \ - bool set_from_string (const std::string &s) { \ - static char const *const strings = # __VA_ARGS__; \ - int f = from_string_int(strings, s.c_str()); \ - if (f>=0) { m_v = static_cast(f); return true; } else { return false; } \ - } \ - operator E() const {return m_v;} \ - bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \ - bool operator==(const E &rhs) const {return m_v == rhs;} \ - std::string name() const { \ - static char const *const strings = # __VA_ARGS__; \ - return nthstr(static_cast(m_v), strings); \ - } \ - private: E m_v; }; +//============================================================ +// Define a "has member" trait. +//============================================================ +#define PDEFINE_HAS_MEMBER(name, member) \ + template class name \ + { \ + template static long test(decltype(&U:: member)); \ + template static char test(...); \ + public: \ + static constexpr const bool value = sizeof(test(nullptr)) == sizeof(long); \ + } #endif /* PTYPES_H_ */ diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index cd55be63185..fbf6f2af26d 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -93,6 +93,37 @@ namespace plib const std::string &token, const std::size_t maxsplit); + + //============================================================ + // penum - strongly typed enumeration + //============================================================ + + struct penum_base + { + protected: + static int from_string_int(const char *str, const char *x); + static std::string nthstr(int n, const char *str); + }; + } // namespace plib +#define P_ENUM(ename, ...) \ + struct ename : public plib::penum_base { \ + enum E { __VA_ARGS__ }; \ + ename (E v) : m_v(v) { } \ + bool set_from_string (const std::string &s) { \ + static char const *const strings = # __VA_ARGS__; \ + int f = from_string_int(strings, s.c_str()); \ + if (f>=0) { m_v = static_cast(f); return true; } else { return false; } \ + } \ + operator E() const {return m_v;} \ + bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \ + bool operator==(const E &rhs) const {return m_v == rhs;} \ + std::string name() const { \ + static char const *const strings = # __VA_ARGS__; \ + return nthstr(static_cast(m_v), strings); \ + } \ + private: E m_v; }; + + #endif /* PUTIL_H_ */ diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index cb905251df3..3fcdd591e83 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -39,20 +39,6 @@ namespace devices m_connected_net_idx.push_back(net_other); } - void terms_for_net_t::set_pointers() - { - m_gt.resize(count(), 0.0); - m_go.resize(count(), 0.0); - m_Idr.resize(count(), 0.0); - m_connected_net_V.resize(count(), nullptr); - - for (std::size_t i = 0; i < count(); i++) - { - m_terms[i]->set_ptrs(&m_gt[i], &m_go[i], &m_Idr[i]); - m_connected_net_V[i] = m_terms[i]->otherterm()->net().Q_Analog_state_ptr(); - } - } - // ---------------------------------------------------------------------------------------- // matrix_solver // ---------------------------------------------------------------------------------------- @@ -254,8 +240,6 @@ namespace devices m_terms[k]->m_railstart = m_terms[k]->count(); for (std::size_t i = 0; i < m_rails_temp[k]->count(); i++) this->m_terms[k]->add(m_rails_temp[k]->terms()[i], m_rails_temp[k]->m_connected_net_idx.data()[i], false); - - m_terms[k]->set_pointers(); } // free all - no longer needed @@ -263,6 +247,8 @@ namespace devices sort_terms(m_sort); + this->set_pointers(); + /* create a list of non zero elements. */ for (unsigned k = 0; k < iN; k++) { @@ -371,9 +357,9 @@ namespace devices state().save(*this, m_terms[k]->m_h_n_m_1, this->name(), "m_h_n_m_1." + num); // FIXME: This shouldn't be necessary, recalculate on each entry ... - state().save(*this, m_terms[k]->m_go.data(),"GO" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->m_gt.data(),"GT" + num, this->name(), m_terms[k]->count()); - state().save(*this, m_terms[k]->m_Idr.data(),"IDR" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_gon[k],"GO" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_gtn[k],"GT" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_Idrn[k],"IDR" + num, this->name(), m_terms[k]->count()); } } diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 903c39257d0..ac5a2a464f7 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -10,9 +10,12 @@ #include "netlist/nl_base.h" #include "netlist/nl_errstr.h" -#include "netlist/plib/palloc.h" -#include "netlist/plib/putil.h" -#include "netlist/plib/vector_ops.h" +#include "plib/palloc.h" +#include "plib/putil.h" +#include "plib/vector_ops.h" +#include "plib/pmatrix2d.h" + +#include namespace netlist { @@ -51,8 +54,6 @@ namespace devices terminal_t **terms() { return m_terms.data(); } - void set_pointers(); - std::size_t m_railstart; std::vector m_nz; /* all non zero for multiplication */ @@ -65,10 +66,6 @@ namespace devices nl_double m_h_n_m_1; std::vector m_connected_net_idx; - plib::aligned_vector m_go; - plib::aligned_vector m_gt; - plib::aligned_vector m_Idr; - plib::aligned_vector m_connected_net_V; private: std::vector m_terms; @@ -171,6 +168,31 @@ namespace devices template void build_LE_RHS(T &child); + void set_pointers() + { + const std::size_t iN = this->m_nets.size(); + + std::size_t max_col = 0; + for (std::size_t k = 0; k < iN; k++) + max_col = std::max(max_col, m_terms[k]->count()); + + m_gtn.resize(iN, max_col); + m_gon.resize(iN, max_col); + m_Idrn.resize(iN, max_col); + m_connected_net_Vn.resize(iN, max_col); + + for (std::size_t k = 0; k < iN; k++) + { + auto count = m_terms[k]->count(); + + for (std::size_t i = 0; i < count; i++) + { + m_terms[k]->terms()[i]->set_ptrs(&m_gtn[k][i], &m_gon[k][i], &m_Idrn[k][i]); + m_connected_net_Vn[k][i] = m_terms[k]->terms()[i]->otherterm()->net().Q_Analog_state_ptr(); + } + } + } + template void fill_matrix(std::size_t N, AP &tcr, FT &RHS) { @@ -181,17 +203,21 @@ namespace devices const std::size_t term_count = net->count(); const std::size_t railstart = net->m_railstart; + const auto &go = m_gon[k]; + const auto > = m_gtn[k]; + const auto &Idr = m_Idrn[k]; + const auto &cnV = m_connected_net_Vn[k]; for (std::size_t i = 0; i < railstart; i++) - *tcr_r[i] -= net->m_go[i]; + *tcr_r[i] -= go[i]; typename FT::value_type gtot_t = 0.0; typename FT::value_type RHS_t = 0.0; for (std::size_t i = 0; i < term_count; i++) { - gtot_t += net->m_gt[i]; - RHS_t += net->m_Idr[i]; + gtot_t += gt[i]; + RHS_t += Idr[i]; } // FIXME: Code above is faster than vec_sum - Check this #if 0 @@ -201,7 +227,7 @@ namespace devices for (std::size_t i = railstart; i < term_count; i++) { - RHS_t += (/*m_Idr[i]*/ + net->m_go[i] * *net->m_connected_net_V[i]); + RHS_t += (/*m_Idr[i]*/ + go[i] * *cnV[i]); } RHS[k] = RHS_t; @@ -211,6 +237,16 @@ namespace devices } + template + using aligned_alloc = plib::aligned_allocator; + + plib::pmatrix2d> m_gon; + plib::pmatrix2d> m_gtn; + plib::pmatrix2d> m_Idrn; + plib::pmatrix2d> m_connected_net_Vn; + + plib::pmatrix2d m_test; + std::vector> m_terms; std::vector m_nets; std::vector> m_inps; @@ -283,7 +319,7 @@ namespace devices const std::size_t terms_count = terms->count(); const std::size_t railstart = terms->m_railstart; - const float_type * const gt = terms->m_gt.data(); + const float_type * const gt = m_gtn[k]; { float_type akk = 0.0; @@ -293,7 +329,7 @@ namespace devices Ak[k] = akk; } - const float_type * const go = terms->m_go.data(); + const float_type * const go = m_gon[k]; int * net_other = terms->m_connected_net_idx.data(); for (std::size_t i = 0; i < railstart; i++) @@ -314,9 +350,9 @@ namespace devices float_type rhsk_b = 0.0; const std::size_t terms_count = m_terms[k]->count(); - const float_type * const go = m_terms[k]->m_go.data(); - const float_type * const Idr = m_terms[k]->m_Idr.data(); - const float_type * const * other_cur_analog = m_terms[k]->m_connected_net_V.data(); + const float_type * const go = m_gon[k]; + const float_type * const Idr = m_Idrn[k]; + const float_type * const * other_cur_analog = m_connected_net_Vn[k]; for (std::size_t i = 0; i < terms_count; i++) rhsk_a = rhsk_a + Idr[i]; diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index 450803e25d8..9e11cb67d75 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -85,10 +85,10 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap float_type RHS_t = 0.0; const std::size_t term_count = this->m_terms[k]->count(); - const float_type * const gt = this->m_terms[k]->m_gt.data(); - const float_type * const go = this->m_terms[k]->m_go.data(); - const float_type * const Idr = this->m_terms[k]->m_Idr.data(); - auto other_cur_analog = this->m_terms[k]->m_connected_net_V.data(); + const float_type * const gt = this->m_gtn[k]; + const float_type * const go = this->m_gon[k]; + const float_type * const Idr = this->m_Idrn[k]; + auto other_cur_analog = this->m_connected_net_Vn[k]; this->m_new_V[k] = this->m_nets[k]->Q_Analog(); @@ -136,7 +136,7 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap { const int * net_other = this->m_terms[k]->m_connected_net_idx.data(); const std::size_t railstart = this->m_terms[k]->m_railstart; - const float_type * go = this->m_terms[k]->m_go.data(); + const float_type * go = this->m_gon[k]; float_type Idrive = 0.0; for (std::size_t i = 0; i < railstart; i++) diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index 77bf710c9c9..d9685f24ae0 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -192,7 +192,7 @@ poolptr NETLIB_NAME(solver)::create_solver_x(std::size_t size, else return this->create_solver_x(size, solvername); } -}; +} struct net_splitter { From 2e055aa97b9b60c79985f8b5c5d16cbf5391f887 Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 24 Feb 2019 17:55:28 +0100 Subject: [PATCH 13/42] netlist: tidy changes and better constexpr support for ptime class. (nw) --- src/lib/netlist/analog/nlid_twoterm.h | 2 +- src/lib/netlist/build/makefile | 8 ++- src/lib/netlist/devices/nld_4020.cpp | 2 +- src/lib/netlist/devices/nld_74107.cpp | 4 +- src/lib/netlist/devices/nld_74161.cpp | 2 +- src/lib/netlist/devices/nld_74192.cpp | 2 +- src/lib/netlist/devices/nld_74193.cpp | 2 +- src/lib/netlist/devices/nld_7448.cpp | 2 +- src/lib/netlist/devices/nld_7490.cpp | 2 +- src/lib/netlist/devices/nld_7497.cpp | 4 +- src/lib/netlist/devices/nld_log.cpp | 2 +- src/lib/netlist/devices/nlid_truthtable.cpp | 4 +- src/lib/netlist/nl_base.h | 12 +++- src/lib/netlist/nltypes.h | 10 ++-- src/lib/netlist/plib/palloc.h | 66 ++++++++++----------- src/lib/netlist/plib/pconfig.h | 4 +- src/lib/netlist/plib/pfmtlog.h | 1 - src/lib/netlist/plib/plists.h | 4 +- src/lib/netlist/plib/pstream.h | 2 +- src/lib/netlist/plib/ptime.h | 12 ++-- src/lib/netlist/plib/ptypes.h | 16 ++--- src/lib/netlist/plib/putil.h | 2 +- src/lib/netlist/solver/nld_matrix_solver.h | 12 ++-- src/lib/netlist/solver/nld_ms_direct.h | 4 +- src/lib/netlist/solver/nld_ms_gcr.h | 6 +- src/lib/netlist/solver/nld_ms_gmres.h | 4 +- src/lib/netlist/solver/nld_ms_sm.h | 2 +- src/lib/netlist/solver/nld_ms_w.h | 2 +- src/lib/netlist/solver/nld_solver.h | 2 +- src/lib/netlist/tools/nl_convert.cpp | 2 +- 30 files changed, 104 insertions(+), 95 deletions(-) diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 67939f32645..06c278d58a3 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -33,9 +33,9 @@ #ifndef NLID_TWOTERM_H_ #define NLID_TWOTERM_H_ -#include "plib/pfunction.h" #include "netlist/nl_base.h" #include "netlist/nl_setup.h" +#include "plib/pfunction.h" // ----------------------------------------------------------------------------- // Implementation diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile index 17dfe2f8edc..79c51b54bec 100644 --- a/src/lib/netlist/build/makefile +++ b/src/lib/netlist/build/makefile @@ -14,7 +14,7 @@ VSBUILD = $(SRC)/buildVS DOC = $(SRC)/documentation TIDY_DB = ../compile_commands.json -TIDY_FLAGSX = -checks=*,google*,-hicpp*,-readability*,-fuchsia*,cert-*,-android-*, +TIDY_FLAGSX = -checks=*,-google*,-hicpp*,-readability*,-fuchsia*,cert-*,-android-*, TIDY_FLAGSX += -llvm-header-guard,-cppcoreguidelines-pro-type-reinterpret-cast, TIDY_FLAGSX += -cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory, TIDY_FLAGSX += -modernize-use-default-member-init,-cppcoreguidelines-pro-bounds-constant-array-index, @@ -235,7 +235,7 @@ native: $(MAKE) CEXTRAFLAGS="-march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra " clang: - $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-unused-template -Wno-non-virtual-dtor -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wweak-template-vtables -Wno-exit-time-destructors" + $(MAKE) CC=clang++-9 LD=clang++-9 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-padded -Wno-weak-vtables -Wno-unused-template -Wno-missing-variable-declarations -Wno-float-equal -Wconversion -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-exit-time-destructors" clang-5: $(MAKE) CC=clang++-5.0 LD=clang++-5.0 CEXTRAFLAGS="-march=native -Weverything -Werror -Wno-inconsistent-missing-destructor-override -Wno-unreachable-code -Wno-padded -Wno-weak-vtables -Wno-missing-variable-declarations -Wconversion -Wno-c++98-compat -Wno-float-equal -Wno-global-constructors -Wno-c++98-compat-pedantic -Wno-format-nonliteral -Wno-weak-template-vtables -Wno-exit-time-destructors" @@ -252,6 +252,10 @@ tidy_db: compile_commands_prefix $(ALL_TIDY_FILES) compile_commands_postfix # FIXME: -Wno-weak-vtables -Wno-missing-variable-declarations -Wno-conversion -Wno-exit-time-destructors # FIXME: -Winconsistent-missing-destructor-override : c++ community has diverging opinions on this https://github.com/isocpp/CppCoreGuidelines/issues/721 # FIXME: -Wunreachable-code : False warnings, this a documented clang bug: https://llvm.org/bugs/show_bug.cgi?id=28994 +# -Wweak-template-vtables +# +# These have to be given: +# -Wno-missing-variable-declarations : Device factory code, on purpose mingw: $(MAKE) CEXTRAFLAGS="-DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501 -DWIN32_LEAN_AND_MEAN" \ diff --git a/src/lib/netlist/devices/nld_4020.cpp b/src/lib/netlist/devices/nld_4020.cpp index 88cc05ada8f..13518f9d3cb 100644 --- a/src/lib/netlist/devices/nld_4020.cpp +++ b/src/lib/netlist/devices/nld_4020.cpp @@ -98,7 +98,7 @@ namespace netlist NETLIB_FUNC_VOID(CD4020_sub, update_outputs, (const unsigned cnt)) { - static const std::array out_delayQn = { + static constexpr const std::array out_delayQn = { NLTIME_FROM_NS(180), NLTIME_FROM_NS(280), NLTIME_FROM_NS(380), NLTIME_FROM_NS(480), NLTIME_FROM_NS(580), NLTIME_FROM_NS(680), diff --git a/src/lib/netlist/devices/nld_74107.cpp b/src/lib/netlist/devices/nld_74107.cpp index 6939a5d6db6..763760e2c6a 100644 --- a/src/lib/netlist/devices/nld_74107.cpp +++ b/src/lib/netlist/devices/nld_74107.cpp @@ -13,8 +13,8 @@ namespace netlist namespace devices { - static constexpr netlist_time delay_107[2] = { NLTIME_FROM_NS(16), NLTIME_FROM_NS(25) }; - static constexpr netlist_time delay_107A[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(15) }; + static constexpr const netlist_time delay_107[2] = { NLTIME_FROM_NS(16), NLTIME_FROM_NS(25) }; + static constexpr const netlist_time delay_107A[2] = { NLTIME_FROM_NS(15), NLTIME_FROM_NS(15) }; NETLIB_OBJECT(74107A) { diff --git a/src/lib/netlist/devices/nld_74161.cpp b/src/lib/netlist/devices/nld_74161.cpp index e75eaf10c88..7a3b54d6368 100644 --- a/src/lib/netlist/devices/nld_74161.cpp +++ b/src/lib/netlist/devices/nld_74161.cpp @@ -85,7 +85,7 @@ namespace netlist } // FIXME: Timing - static constexpr netlist_time delay[4] = + static constexpr const netlist_time delay[4] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(40), diff --git a/src/lib/netlist/devices/nld_74192.cpp b/src/lib/netlist/devices/nld_74192.cpp index a256f89451e..954fc351179 100644 --- a/src/lib/netlist/devices/nld_74192.cpp +++ b/src/lib/netlist/devices/nld_74192.cpp @@ -110,7 +110,7 @@ namespace netlist } // FIXME: Timing - static constexpr netlist_time delay[4] = + static constexpr const netlist_time delay[4] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(40), diff --git a/src/lib/netlist/devices/nld_74193.cpp b/src/lib/netlist/devices/nld_74193.cpp index 73b1d697b7b..16d7438d799 100644 --- a/src/lib/netlist/devices/nld_74193.cpp +++ b/src/lib/netlist/devices/nld_74193.cpp @@ -87,7 +87,7 @@ namespace netlist } // FIXME: Timing - static constexpr netlist_time delay[4] = + static constexpr const netlist_time delay[4] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(40), diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp index 25d3ba5d108..4500229a1c5 100644 --- a/src/lib/netlist/devices/nld_7448.cpp +++ b/src/lib/netlist/devices/nld_7448.cpp @@ -137,7 +137,7 @@ namespace netlist #define BITS7(b6,b5,b4,b3,b2,b1,b0) ((b6)<<6) | ((b5)<<5) | ((b4)<<4) | ((b3)<<3) | ((b2)<<2) | ((b1)<<1) | ((b0)<<0) - static constexpr std::array tab7448 = + static constexpr const std::array tab7448 = { BITS7( 1, 1, 1, 1, 1, 1, 0 ), /* 00 - not blanked ! */ BITS7( 0, 1, 1, 0, 0, 0, 0 ), /* 01 */ diff --git a/src/lib/netlist/devices/nld_7490.cpp b/src/lib/netlist/devices/nld_7490.cpp index 3dabd026cd7..bde02e25edb 100644 --- a/src/lib/netlist/devices/nld_7490.cpp +++ b/src/lib/netlist/devices/nld_7490.cpp @@ -78,7 +78,7 @@ namespace netlist m_last_B = 0; } - static C14CONSTEXPR const netlist_time delay[4] = + static constexpr const netlist_time delay[4] = { NLTIME_FROM_NS(18), NLTIME_FROM_NS(36) - NLTIME_FROM_NS(18), diff --git a/src/lib/netlist/devices/nld_7497.cpp b/src/lib/netlist/devices/nld_7497.cpp index f74e386faac..1432884b8dd 100644 --- a/src/lib/netlist/devices/nld_7497.cpp +++ b/src/lib/netlist/devices/nld_7497.cpp @@ -17,8 +17,8 @@ namespace netlist namespace devices { - static constexpr netlist_time out_delay_CLK_Y[2] = { NLTIME_FROM_NS(20), NLTIME_FROM_NS(26) }; // tPHL, tPLH - static constexpr netlist_time out_delay_CLK_Z[2] = { NLTIME_FROM_NS(17), NLTIME_FROM_NS(12) }; + static constexpr const netlist_time out_delay_CLK_Y[2] = { NLTIME_FROM_NS(20), NLTIME_FROM_NS(26) }; // tPHL, tPLH + static constexpr const netlist_time out_delay_CLK_Z[2] = { NLTIME_FROM_NS(17), NLTIME_FROM_NS(12) }; NETLIB_OBJECT(7497) { diff --git a/src/lib/netlist/devices/nld_log.cpp b/src/lib/netlist/devices/nld_log.cpp index 3ecfe65f40c..6b1b3d8efc1 100644 --- a/src/lib/netlist/devices/nld_log.cpp +++ b/src/lib/netlist/devices/nld_log.cpp @@ -6,9 +6,9 @@ */ #include "netlist/nl_base.h" +#include "nld_log.h" #include "plib/pfmtlog.h" #include "plib/pstream.h" -#include "nld_log.h" //#include "sound/wavwrite.h" namespace netlist diff --git a/src/lib/netlist/devices/nlid_truthtable.cpp b/src/lib/netlist/devices/nlid_truthtable.cpp index 1e9cc8b1ec1..622aee0e0c7 100644 --- a/src/lib/netlist/devices/nlid_truthtable.cpp +++ b/src/lib/netlist/devices/nlid_truthtable.cpp @@ -77,8 +77,8 @@ namespace netlist return ret; } - static constexpr sbitset all_bits() { return sbitset(~static_cast(0)); } - static constexpr sbitset no_bits() { return sbitset(static_cast(0)); } + static constexpr const sbitset all_bits() noexcept { return sbitset(~static_cast(0)); } + static constexpr const sbitset no_bits() noexcept{ return sbitset(static_cast(0)); } private: T m_bs; }; diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index 22bd9848565..e54d3b1abae 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -24,9 +24,9 @@ #include "plib/pstate.h" #include "plib/pstream.h" -#include "nltypes.h" #include "nl_errstr.h" #include "nl_lists.h" +#include "nltypes.h" #include "plib/ptime.h" //============================================================ @@ -1034,8 +1034,8 @@ namespace netlist : m_value(param.model_value(name)) { } - const double &operator()() const NL_NOEXCEPT { return m_value; } - operator const double&() const NL_NOEXCEPT { return m_value; } + const double &operator()() const noexcept { return m_value; } + operator const double&() const noexcept { return m_value; } private: const double m_value; }; @@ -1248,6 +1248,12 @@ namespace netlist public: using entry_t = pqentry_t; explicit queue_t(netlist_state_t &nl); + virtual ~queue_t() noexcept = default; + + queue_t(const queue_t &) = delete; + queue_t(queue_t &&) = delete; + queue_t &operator=(const queue_t &) = delete; + queue_t &operator=(queue_t &&) = delete; protected: diff --git a/src/lib/netlist/nltypes.h b/src/lib/netlist/nltypes.h index ca1972ee527..1ddc29adfae 100644 --- a/src/lib/netlist/nltypes.h +++ b/src/lib/netlist/nltypes.h @@ -14,12 +14,12 @@ #define NLTYPES_H_ #include "nl_config.h" -#include "plib/ptime.h" #include "plib/pchrono.h" #include "plib/pfmtlog.h" #include "plib/pmempool.h" -#include "plib/pstring.h" #include "plib/pstate.h" +#include "plib/pstring.h" +#include "plib/ptime.h" #include #include @@ -126,9 +126,9 @@ namespace netlist // MACROS //============================================================ - template inline constexpr netlist_time NLTIME_FROM_NS(T &&t) noexcept { return netlist_time::from_nsec(t); } - template inline constexpr netlist_time NLTIME_FROM_US(T &&t) noexcept { return netlist_time::from_usec(t); } - template inline constexpr netlist_time NLTIME_FROM_MS(T &&t) noexcept { return netlist_time::from_msec(t); } + template inline constexpr const netlist_time NLTIME_FROM_NS(T &&t) noexcept { return netlist_time::from_nsec(t); } + template inline constexpr const netlist_time NLTIME_FROM_US(T &&t) noexcept { return netlist_time::from_usec(t); } + template inline constexpr const netlist_time NLTIME_FROM_MS(T &&t) noexcept { return netlist_time::from_msec(t); } } // namespace netlist diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index c7aad9372d3..d8e4ffbb5d7 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -36,13 +36,13 @@ namespace plib { #if defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) return _aligned_malloc(size, alignment); #elif defined(__APPLE__) - void* p; - if (::posix_memalign(&p, alignment, size) != 0) { - p = nullptr; - } - return p; + void* p; + if (::posix_memalign(&p, alignment, size) != 0) { + p = nullptr; + } + return p; #else - return aligned_alloc(alignment, size); + return aligned_alloc(alignment, size); #endif } @@ -90,7 +90,7 @@ namespace plib { static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); //auto t = reinterpret_cast(p); //if (t & (ALIGN-1)) - // printf("alignment error!"); + // printf("alignment error!"); #if (USE_ALIGNED_HINTS) return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); #else @@ -142,8 +142,8 @@ namespace plib { constexpr pdefault_deleter() noexcept = default; template::value>::type> - pdefault_deleter(const pdefault_deleter&) noexcept { } + std::enable_if::value>::type> + pdefault_deleter(const pdefault_deleter&) noexcept { } void operator()(T *p) const { @@ -271,30 +271,30 @@ namespace plib { class aligned_allocator { public: - using value_type = T; - static constexpr const std::size_t align_size = (USE_ALIGNED_ALLOCATION) ? ALIGN : alignof(std::max_align_t); + using value_type = T; + static constexpr const std::size_t align_size = (USE_ALIGNED_ALLOCATION) ? ALIGN : alignof(std::max_align_t); - static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, - "ALIGN must be greater than alignof(T) and a multiple"); + static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, + "ALIGN must be greater than alignof(T) and a multiple"); - aligned_allocator() noexcept = default; - ~aligned_allocator() noexcept = default; + aligned_allocator() noexcept = default; + ~aligned_allocator() noexcept = default; - aligned_allocator(const aligned_allocator&) noexcept = default; - aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; + aligned_allocator(const aligned_allocator&) noexcept = default; + aligned_allocator& operator=(const aligned_allocator&) noexcept = delete; - aligned_allocator(aligned_allocator&&) noexcept = default; - aligned_allocator& operator=(aligned_allocator&&) = delete; + aligned_allocator(aligned_allocator&&) noexcept = default; + aligned_allocator& operator=(aligned_allocator&&) = delete; - template - aligned_allocator(const aligned_allocator& rhs) noexcept - { - unused_var(rhs); - } - - template struct rebind + template + aligned_allocator(const aligned_allocator& rhs) noexcept { - using other = aligned_allocator; + unused_var(rhs); + } + + template struct rebind + { + using other = aligned_allocator; }; T* allocate(std::size_t n) @@ -331,22 +331,22 @@ namespace plib { //============================================================ // traits to determine alignment size and stride size - // from types supporting alignment + // from types supporting alignment //============================================================ PDEFINE_HAS_MEMBER(has_align, align_size); - template - struct align_traits + template + struct align_traits { - static constexpr const std::size_t align_size = alignof(std::max_align_t); + static constexpr const std::size_t align_size = alignof(std::max_align_t); static constexpr const std::size_t stride_size = (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T : align_size / sizeof(T))); }; - template + template struct align_traits::value, void>::type> { static constexpr const std::size_t align_size = T::align_size; @@ -360,7 +360,7 @@ namespace plib { // Aligned vector //============================================================ - // FIXME: needs a separate file + // FIXME: needs a separate file template class aligned_vector : public std::vector> { diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index ecb9cc3511b..158fb3faae7 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -42,13 +42,13 @@ #endif #define USE_ALIGNED_ALLOCATION (USE_ALIGNED_OPTIMIZATIONS) -#define USE_ALIGNED_HINTS (USE_ALIGNED_OPTIMIZATIONS) +#define USE_ALIGNED_HINTS (USE_ALIGNED_OPTIMIZATIONS) /* * Standard alignment macros */ #define PALIGN_CACHELINE (64) -#define PALIGN_VECTOROPT (32) +#define PALIGN_VECTOROPT (8) #define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) #define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h index 50acf457114..4d13fa3424b 100644 --- a/src/lib/netlist/plib/pfmtlog.h +++ b/src/lib/netlist/plib/pfmtlog.h @@ -35,7 +35,6 @@ struct ptype_traits_base template <> struct ptype_traits_base { - static unsigned int cast(bool &x) { return static_cast(x); } static unsigned int cast(const bool &x) { return static_cast(x); } static const bool is_signed = std::numeric_limits::is_signed; static const char *size_spec() { return ""; } diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h index 0a1345d5e1f..2a0fd3a6c3c 100644 --- a/src/lib/netlist/plib/plists.h +++ b/src/lib/netlist/plib/plists.h @@ -200,9 +200,9 @@ public: LC* p; public: explicit constexpr iter_t(LC* x) noexcept : p(x) { } - explicit constexpr iter_t(iter_t &rhs) noexcept : p(rhs.p) { } + constexpr iter_t(iter_t &rhs) noexcept : p(rhs.p) { } iter_t(iter_t &&rhs) noexcept { std::swap(*this, rhs); } - iter_t& operator=(const iter_t &rhs) { iter_t t(rhs); std::swap(*this, t); return *this; } + iter_t& operator=(const iter_t &rhs) noexcept { iter_t t(rhs); std::swap(*this, t); return *this; } iter_t& operator=(iter_t &&rhs) noexcept { std::swap(*this, rhs); return *this; } iter_t& operator++() noexcept {p = p->next();return *this;} // NOLINTNEXTLINE(cert-dcl21-cpp) diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h index 29f79e0dd4a..aaccf577c4d 100644 --- a/src/lib/netlist/plib/pstream.h +++ b/src/lib/netlist/plib/pstream.h @@ -658,7 +658,7 @@ inline void copystream(postream &dest, pistream &src) struct perrlogger { template - perrlogger(Args&& ... args) + explicit perrlogger(Args&& ... args) { h()(std::forward(args)...); } diff --git a/src/lib/netlist/plib/ptime.h b/src/lib/netlist/plib/ptime.h index 4767a197342..32ccc4f7b0d 100644 --- a/src/lib/netlist/plib/ptime.h +++ b/src/lib/netlist/plib/ptime.h @@ -47,19 +47,19 @@ namespace plib C14CONSTEXPR ptime &operator-=(const ptime rhs) noexcept { m_time -= rhs.m_time; return *this; } C14CONSTEXPR ptime &operator*=(const mult_type factor) noexcept { m_time *= static_cast(factor); return *this; } - friend C14CONSTEXPR ptime operator-(ptime lhs, const ptime rhs) noexcept + friend constexpr const ptime operator-(ptime lhs, const ptime rhs) noexcept { - return lhs -= rhs; + return ptime(lhs.m_time - rhs.m_time); } - friend C14CONSTEXPR ptime operator+(ptime lhs, const ptime rhs) noexcept + friend constexpr const ptime operator+(ptime lhs, const ptime rhs) noexcept { - return lhs += rhs; + return ptime(lhs.m_time + rhs.m_time); } - friend C14CONSTEXPR ptime operator*(ptime lhs, const mult_type &factor) noexcept + friend constexpr const ptime operator*(ptime lhs, const mult_type &factor) noexcept { - return lhs *= factor; + return ptime(lhs.m_time * factor); } friend constexpr mult_type operator/(const ptime lhs, const ptime rhs) noexcept diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index 84f6453e8f2..99bc5715a05 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -87,13 +87,13 @@ namespace plib // Define a "has member" trait. //============================================================ -#define PDEFINE_HAS_MEMBER(name, member) \ - template class name \ - { \ - template static long test(decltype(&U:: member)); \ - template static char test(...); \ - public: \ - static constexpr const bool value = sizeof(test(nullptr)) == sizeof(long); \ - } +#define PDEFINE_HAS_MEMBER(name, member) \ + template class name \ + { \ + template static long test(decltype(&U:: member)); \ + template static char test(...); \ + public: \ + static constexpr const bool value = sizeof(test(nullptr)) == sizeof(long); \ + } #endif /* PTYPES_H_ */ diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index fbf6f2af26d..0db2ae28ffb 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -12,7 +12,7 @@ #include #include -#include // <<= needed by windows build +#include #define PSTRINGIFY_HELP(y) # y #define PSTRINGIFY(x) PSTRINGIFY_HELP(x) diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index ac5a2a464f7..88d4dbb4bb0 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -11,9 +11,9 @@ #include "netlist/nl_base.h" #include "netlist/nl_errstr.h" #include "plib/palloc.h" +#include "plib/pmatrix2d.h" #include "plib/putil.h" #include "plib/vector_ops.h" -#include "plib/pmatrix2d.h" #include @@ -240,12 +240,12 @@ namespace devices template using aligned_alloc = plib::aligned_allocator; - plib::pmatrix2d> m_gon; - plib::pmatrix2d> m_gtn; - plib::pmatrix2d> m_Idrn; - plib::pmatrix2d> m_connected_net_Vn; + plib::pmatrix2d> m_gon; + plib::pmatrix2d> m_gtn; + plib::pmatrix2d> m_Idrn; + plib::pmatrix2d> m_connected_net_Vn; - plib::pmatrix2d m_test; + plib::pmatrix2d m_test; std::vector> m_terms; std::vector m_nets; diff --git a/src/lib/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h index c0995d99e54..0e3cd677ef7 100644 --- a/src/lib/netlist/solver/nld_ms_direct.h +++ b/src/lib/netlist/solver/nld_ms_direct.h @@ -8,10 +8,10 @@ #ifndef NLD_MS_DIRECT_H_ #define NLD_MS_DIRECT_H_ -#include -#include #include "plib/mat_cr.h" #include "plib/vector_ops.h" +#include +#include #include "nld_matrix_solver.h" #include "nld_solver.h" diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index fce7b5bae2c..c9ab4a535a9 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -12,11 +12,11 @@ #include "plib/mat_cr.h" +#include "nld_ms_direct.h" +#include "nld_solver.h" #include "plib/pdynlib.h" #include "plib/pstream.h" #include "plib/vector_ops.h" -#include "nld_ms_direct.h" -#include "nld_solver.h" #include @@ -67,7 +67,7 @@ private: plib::parray new_V; std::array, storage_N> m_term_cr; - // std::array, storage_N> m_term_cr; + // std::array, storage_N> m_term_cr; mat_type mat; diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index 95de1bbae31..f3d894881e2 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -8,12 +8,12 @@ #ifndef NLD_MS_GMRES_H_ #define NLD_MS_GMRES_H_ +#include "nld_ms_direct.h" +#include "nld_solver.h" #include "plib/gmres.h" #include "plib/mat_cr.h" #include "plib/parray.h" #include "plib/vector_ops.h" -#include "nld_ms_direct.h" -#include "nld_solver.h" #include #include diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h index 6c0f610e3f2..9d5b4e0843a 100644 --- a/src/lib/netlist/solver/nld_ms_sm.h +++ b/src/lib/netlist/solver/nld_ms_sm.h @@ -35,9 +35,9 @@ #include -#include "plib/vector_ops.h" #include "nld_matrix_solver.h" #include "nld_solver.h" +#include "plib/vector_ops.h" namespace netlist { diff --git a/src/lib/netlist/solver/nld_ms_w.h b/src/lib/netlist/solver/nld_ms_w.h index 584d50fdb15..76225724a21 100644 --- a/src/lib/netlist/solver/nld_ms_w.h +++ b/src/lib/netlist/solver/nld_ms_w.h @@ -42,9 +42,9 @@ #include -#include "plib/vector_ops.h" #include "nld_matrix_solver.h" #include "nld_solver.h" +#include "plib/vector_ops.h" namespace netlist { diff --git a/src/lib/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h index fb6d05fbbcb..8b1f1f0b96d 100644 --- a/src/lib/netlist/solver/nld_solver.h +++ b/src/lib/netlist/solver/nld_solver.h @@ -9,8 +9,8 @@ #define NLD_SOLVER_H_ #include "netlist/nl_base.h" -#include "plib/pstream.h" #include "nld_matrix_solver.h" +#include "plib/pstream.h" #include #include diff --git a/src/lib/netlist/tools/nl_convert.cpp b/src/lib/netlist/tools/nl_convert.cpp index a9e17d56120..d6d5f3e2e01 100644 --- a/src/lib/netlist/tools/nl_convert.cpp +++ b/src/lib/netlist/tools/nl_convert.cpp @@ -6,8 +6,8 @@ */ #include "plib/palloc.h" -#include "plib/putil.h" #include "nl_convert.h" +#include "plib/putil.h" #include #include #include From 058cd64ae32d2a911dd4c575dde05e613520ddd8 Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sun, 24 Feb 2019 19:24:52 +0100 Subject: [PATCH 14/42] Works better with PORT_RESET (nw) --- src/mame/drivers/dec0.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index b5823c8bcb9..682663572cc 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -986,16 +986,16 @@ INPUT_PORTS_END static INPUT_PORTS_START( trackball_ports ) PORT_START("track_0") - PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_REVERSE PORT_PLAYER(1) + PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_REVERSE PORT_PLAYER(1) PORT_START("track_1") - PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_PLAYER(1) + PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_PLAYER(1) PORT_START("track_2") - PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_REVERSE PORT_PLAYER(2) + PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_REVERSE PORT_PLAYER(2) PORT_START("track_3") - PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_PLAYER(2) + PORT_BIT( 0x0fff, 0, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(24) PORT_RESET PORT_PLAYER(2) INPUT_PORTS_END static INPUT_PORTS_START( rotary_null ) From 3ce620a680278099de6ec024a5db7d4ade35ffe1 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 24 Feb 2019 14:57:23 -0500 Subject: [PATCH 15/42] dec0.cpp: Use uPD4701A device for trackballs --- src/mame/drivers/dec0.cpp | 66 +++++++++++++++++++-------------------- src/mame/includes/dec0.h | 6 ++-- 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/src/mame/drivers/dec0.cpp b/src/mame/drivers/dec0.cpp index 682663572cc..105f03a1b83 100644 --- a/src/mame/drivers/dec0.cpp +++ b/src/mame/drivers/dec0.cpp @@ -340,6 +340,7 @@ Notes: #include "cpu/m6502/m6502.h" #include "cpu/z80/z80.h" #include "cpu/m6805/m68705.h" +#include "machine/upd4701.h" #include "sound/2203intf.h" #include "sound/3812intf.h" #include "sound/okim6295.h" @@ -391,17 +392,6 @@ WRITE16_MEMBER(dec0_state::dec0_control_w) } } -// Bandit tests P1 Y axis only -// Hookup comes from Birdie Try service mode -READ8_MEMBER(dec0_state::trackball_r) -{ - uint8_t port_num = offset >> 1; - if (offset & 1) - return m_in_trackball[port_num]->read() >> 8; - - return m_in_trackball[port_num]->read() & 0xff; -} - WRITE16_MEMBER(dec0_automat_state::automat_control_w) { switch (offset << 1) @@ -464,7 +454,6 @@ void dec0_state::dec0_map(address_map &map) map(0x300000, 0x300001).portr("AN0"); map(0x300008, 0x300009).portr("AN1"); - map(0x300010, 0x30001f).r(FUNC(dec0_state::trackball_r)).umask16(0x00ff); map(0x30c000, 0x30c00b).r(FUNC(dec0_state::dec0_controls_r)); map(0x30c010, 0x30c01f).w(FUNC(dec0_state::dec0_control_w)); /* Priority, sound, etc. */ map(0x30c012, 0x30c013).nopr(); // clr.w for sprite DMA @@ -479,6 +468,17 @@ void dec0_state::dec0_map(address_map &map) map(0xffc000, 0xffc7ff).ram().share("spriteram"); } +void dec0_state::dec0_tb_map(address_map &map) +{ + dec0_map(map); + map(0x300010, 0x300017).r("tb0", FUNC(upd4701_device::read_xy)).umask16(0x00ff); + map(0x300018, 0x30001f).r("tb1", FUNC(upd4701_device::read_xy)).umask16(0x00ff); + map(0x300001, 0x300001).w("tb0", FUNC(upd4701_device::reset_x_w)); + map(0x300009, 0x300009).w("tb0", FUNC(upd4701_device::reset_y_w)); + map(0x300011, 0x300011).w("tb1", FUNC(upd4701_device::reset_x_w)); + map(0x300019, 0x300019).w("tb1", FUNC(upd4701_device::reset_y_w)); +} + void dec0_state::robocop_map(address_map &map) { dec0_map(map); @@ -1007,20 +1007,6 @@ static INPUT_PORTS_START( rotary_null ) INPUT_PORTS_END -static INPUT_PORTS_START( trackball_null ) - PORT_START("P1_TRACKX") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("P1_TRACKY") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("P2_TRACKX") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("P2_TRACKY") - PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN ) -INPUT_PORTS_END - static INPUT_PORTS_START( hbarrel ) PORT_INCLUDE( dec0 ) @@ -1076,7 +1062,6 @@ static INPUT_PORTS_START( hbarrel ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW1:8" ) // Always OFF PORT_INCLUDE( rotary_ports ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( bandit ) @@ -1287,7 +1272,6 @@ static INPUT_PORTS_START( baddudes ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_null ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( drgninja ) @@ -1355,7 +1339,6 @@ static INPUT_PORTS_START( robocop ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_null ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( hippodrm ) @@ -1404,7 +1387,6 @@ static INPUT_PORTS_START( hippodrm ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_null ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( ffantasy ) @@ -1474,7 +1456,6 @@ static INPUT_PORTS_START( slyspy ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_null ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( midres ) @@ -1521,7 +1502,6 @@ static INPUT_PORTS_START( midres ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_ports ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( midresu ) @@ -1578,7 +1558,6 @@ static INPUT_PORTS_START( midresb ) PORT_DIPUNUSED_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) // Always OFF PORT_INCLUDE( rotary_ports ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END static INPUT_PORTS_START( bouldash ) @@ -1655,7 +1634,6 @@ static INPUT_PORTS_START( bouldash ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_INCLUDE( rotary_null ) - PORT_INCLUDE( trackball_null ) INPUT_PORTS_END /******************************************************************************/ @@ -2055,6 +2033,16 @@ void dec0_state::bandit(machine_config &config) { dec0(config); + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map); + + upd4701_device &tb0(UPD4701A(config, "tb0")); + tb0.set_portx_tag("track_0"); + tb0.set_porty_tag("track_1"); + + upd4701_device &tb1(UPD4701A(config, "tb1")); + tb1.set_portx_tag("track_2"); + tb1.set_porty_tag("track_3"); + i8751_device &mcu(I8751(config, m_mcu, XTAL(8'000'000))); mcu.port_in_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_r)); mcu.port_out_cb<0>().set(FUNC(dec0_state::dec0_mcu_port0_w)); @@ -2093,6 +2081,16 @@ void dec0_state::birdtry(machine_config &config) { dec0(config); + m_maincpu->set_addrmap(AS_PROGRAM, &dec0_state::dec0_tb_map); + + upd4701_device &tb0(UPD4701A(config, "tb0")); + tb0.set_portx_tag("track_0"); + tb0.set_porty_tag("track_1"); + + upd4701_device &tb1(UPD4701A(config, "tb1")); + tb1.set_portx_tag("track_2"); + tb1.set_porty_tag("track_3"); + /* video hardware */ m_screen->set_screen_update(FUNC(dec0_state::screen_update_birdtry)); } diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h index d8671057de3..da3d10686dc 100644 --- a/src/mame/includes/dec0.h +++ b/src/mame/includes/dec0.h @@ -39,8 +39,7 @@ public: m_sndprotect(*this, "sndprotect"), m_ram(*this, "ram"), m_robocop_shared_ram(*this, "robocop_shared"), - m_hippodrm_shared_ram(*this, "hippodrm_shared"), - m_in_trackball(*this, "track_%u", 0) + m_hippodrm_shared_ram(*this, "hippodrm_shared") { } void dec0_base(machine_config &config); @@ -105,7 +104,6 @@ private: required_shared_ptr m_ram; optional_shared_ptr m_robocop_shared_ram; optional_shared_ptr m_hippodrm_shared_ram; - optional_ioport_array<4> m_in_trackball; mcu_type m_game; uint16_t m_i8751_return; @@ -116,7 +114,6 @@ private: int m_hippodrm_lsb; uint8_t m_i8751_ports[4]; - DECLARE_READ8_MEMBER(trackball_r); DECLARE_WRITE16_MEMBER(dec0_control_w); DECLARE_WRITE16_MEMBER(midres_sound_w); DECLARE_READ16_MEMBER(slyspy_protection_r); @@ -159,6 +156,7 @@ private: void dec0_i8751_reset(); void h6280_decrypt(const char *cputag); void dec0_map(address_map &map); + void dec0_tb_map(address_map &map); void dec0_s_map(address_map &map); void hippodrm_map(address_map &map); void hippodrm_sub_map(address_map &map); From b162a719aec7b2cd47b3fb1a7e14cc941024534e Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 24 Feb 2019 23:05:25 +0100 Subject: [PATCH 16/42] =?UTF-8?q?New=20working=20clone=20added=20---------?= =?UTF-8?q?--=20Elite=20Champion=20Challenger=20(Travem=C3=BCnde=20upgrade?= =?UTF-8?q?)=20[hap,=20Berger]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mame/drivers/fidel_csc.cpp | 75 +++++++++++++++++++++++++++++--- src/mame/drivers/fidel_elite.cpp | 50 ++++++++++----------- src/mame/drivers/fidel_vcc.cpp | 6 +-- src/mame/drivers/fidel_vsc.cpp | 4 +- src/mame/mame.lst | 1 + 5 files changed, 99 insertions(+), 37 deletions(-) diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp index 64168f01645..367f05551da 100644 --- a/src/mame/drivers/fidel_csc.cpp +++ b/src/mame/drivers/fidel_csc.cpp @@ -7,9 +7,14 @@ Fidelity CSC(and derived) hardware - Champion Sensory Chess Challenger +- Elite Champion Challenger - Super 9 Sensory Chess Challenger - Reversi Sensory Challenger +TODO: +- is the original csce the same program+bookrom as the upgraded one? +- hook up csce I/O properly, it doesn't have PIAs + ******************************************************************************* Champion Sensory Chess Challenger (CSC) @@ -150,6 +155,18 @@ All three of the above are called "segment H". ******************************************************************************* +Elite Champion Challenger +This is a limited-release chess computer based on the CSC. They removed the PIAs +and did the I/O with TTL instead (PIAs will still work from software point of view). +--------------------------------- +R6502 CPU @ 4MHz +32KB ROMs total size, 4KB RAM(8*HM6147P) + +In the 90s, Wilfried Bucke provided an upgrade to make it more similar to the one +that won the 1981 Travemünde contest. CPU was changed to R65C02 or UM6502C at 5MHz. + +******************************************************************************* + Super 9 Sensory Chess Challenger (SU9/DS9) This is basically the Fidelity Elite A/S program on CSC hardware. Model DS9(Deluxe) has a 5MHz XTAL, but is otherwise same. @@ -180,6 +197,7 @@ PCB label 510-1035A01 #include "includes/fidelbase.h" #include "cpu/m6502/m6502.h" +#include "cpu/m6502/r65c02.h" #include "machine/6821pia.h" #include "sound/volt_reg.h" #include "speaker.h" @@ -202,6 +220,7 @@ public: // machine drivers void csc(machine_config &config); + void cscetr(machine_config &config); void su9(machine_config &config); void rsc(machine_config &config); @@ -402,8 +421,7 @@ void csc_state::su9_map(address_map &map) map(0x1000, 0x1003).rw(m_pia[1], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0x1800, 0x1803).rw(m_pia[0], FUNC(pia6821_device::read), FUNC(pia6821_device::write)); map(0x2000, 0x3fff).rom(); - map(0xa000, 0xa7ff).rom(); - map(0xc000, 0xffff).rom(); + map(0xa000, 0xffff).rom(); } void csc_state::rsc_map(address_map &map) @@ -529,10 +547,20 @@ void csc_state::csc(machine_config &config) VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); } +void csc_state::cscetr(machine_config &config) +{ + csc(config); + + /* basic machine hardware */ + R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4 + m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::su9_map); +} + void csc_state::su9(machine_config &config) { csc(config); + /* basic machine hardware */ m_maincpu->set_addrmap(AS_PROGRAM, &csc_state::su9_map); config.set_default_layout(layout_fidel_su9); } @@ -601,9 +629,41 @@ ROM_START( csc ) ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END +ROM_START( cscetr ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("03", 0x2000, 0x2000, CRC(22e43531) SHA1(696dc019bea3812ae6cf9c2b2c4d3a7b9017807d) ) + ROM_LOAD("02", 0xa000, 0x2000, CRC(e593f114) SHA1(4dc5a2456a87c128235958f046cee9502cb3ac65) ) + ROM_LOAD("06", 0xc000, 0x0800, CRC(5d41b1e5) SHA1(fe95d8811d8894688336b798212c397bdb216956) ) + ROM_LOAD("07", 0xc800, 0x0800, CRC(9078d40a) SHA1(4ffd36a4fcde1988e42543652e29463bc6ad5a8f) ) + ROM_LOAD("08", 0xd000, 0x0800, CRC(c9472cc1) SHA1(ef4b1ae99e81689efeae323fe6ed58cf2c773fd6) ) + ROM_LOAD("09", 0xd800, 0x0800, CRC(255c94a0) SHA1(d8e79213b69710e9d94c698492ec7b7420c9c7d8) ) + ROM_LOAD("04", 0xe000, 0x1000, CRC(098873bd) SHA1(86001129a57db390e565f59a5677ec0b34b41d99) ) + ROM_LOAD("05", 0xf000, 0x1000, CRC(1a516bfe) SHA1(2a2b252ca5d425fdf162cbc53077aee448b94437) ) + + // speech ROM + ROM_DEFAULT_BIOS("en") + ROM_SYSTEM_BIOS(0, "en", "English") + ROM_SYSTEM_BIOS(1, "de", "German") + ROM_SYSTEM_BIOS(2, "fr", "French") + ROM_SYSTEM_BIOS(3, "sp", "Spanish") + + ROM_REGION( 1, "language", 0 ) + ROMX_FILL(0, 1, 3, ROM_BIOS(0) ) + ROMX_FILL(0, 1, 2, ROM_BIOS(1) ) + ROMX_FILL(0, 1, 1, ROM_BIOS(2) ) + ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) + + ROM_REGION( 0x2000, "speech", 0 ) + ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) +ROM_END + ROM_START( super9cc ) - ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD("101-1050a01", 0x2000, 0x2000, CRC(421147e8) SHA1(ccf62f6f218e8992baf30973fe41b35e14a1cc1a) ) ROM_LOAD("101-1024b03", 0xa000, 0x0800, CRC(e8c97455) SHA1(ed2958fc5474253ee8c2eaf27fc64226e12f80ea) ) ROM_LOAD("101-1024b02", 0xc000, 0x2000, CRC(95004699) SHA1(ea79f43da73267344545df8ad61730f613876c2e) ) @@ -644,9 +704,10 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1981, csc, 0, 0, csc, csc, csc_state, empty_init, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1981, csc, 0, 0, csc, csc, csc_state, empty_init, "Fidelity Electronics", "Champion Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 199?, cscetr, 0, 0, cscetr, csc, csc_state, empty_init, "hack (Wilfried Bucke)", "Elite Champion Challenger (Travemünde upgrade)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, empty_init, "Fidelity Electronics", "Super 9 Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1983, super9cc, 0, 0, su9, su9, su9_state, empty_init, "Fidelity Electronics", "Super 9 Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1981, reversic, 0, 0, rsc, rsc, csc_state, empty_init, "Fidelity Electronics", "Reversi Sensory Challenger (green version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp index a1aa53531dd..ced7728796a 100644 --- a/src/mame/drivers/fidel_elite.cpp +++ b/src/mame/drivers/fidel_elite.cpp @@ -32,17 +32,17 @@ PCB photos show only a 3MHz XTAL. A condensator keeps RAM contents alive for a few hours when powered off. -Elite Avant Garde (models 6081,6088,6089) is on the same hardware. - -Fidelity Private Line is a modified EAS. They took out the motherboard and leds -and placed them a little box separate from a (ledless) magnetic chessboard. -It was probably only released in Germany. - Prestige Challenger (PC) hardware is very similar. They stripped the 8255 PPI, and added more RAM(7*TMM2016P). Some were released at 3.6MHz instead of 4MHz, perhaps due to hardware instability? Opening module PC16 was included by default, this module is the same as CB16 but at different form factor. +Elite Avant Garde (models 6081,6088,6089) is on the same hardware as EAS. + +Fidelity Private Line is a modified EAS. They took out the motherboard and leds +and placed them a little box separate from a (ledless) magnetic chessboard. +It was probably only released in Germany. + ******************************************************************************/ #include "emu.h" @@ -491,7 +491,7 @@ ROM_START( fepriv ) ROM_CONTINUE( 0xf800, 0x0800 ) // speech ROM - ROM_DEFAULT_BIOS("de") // default to German + ROM_DEFAULT_BIOS("en") ROM_SYSTEM_BIOS(0, "en", "English") ROM_SYSTEM_BIOS(1, "de", "German") ROM_SYSTEM_BIOS(2, "fr", "French") @@ -591,11 +591,11 @@ ROM_START( feag ) // model 6081, aka "Mobile Master" ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) - ROM_RELOAD( 0x1000, 0x1000) - ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) - ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) - ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) + ROMX_LOAD("101-32107.ic16", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101.ic16", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105.ic16", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END ROM_START( feag2100 ) @@ -620,11 +620,11 @@ ROM_START( feag2100 ) ROMX_FILL(0, 1, 0, ROM_BIOS(3) ) ROM_REGION( 0x2000, "speech", 0 ) - ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) - ROM_RELOAD( 0x1000, 0x1000) - ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) - ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) - ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) + ROMX_LOAD("101-32107.ic16", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) ) + ROM_RELOAD( 0x1000, 0x1000) + ROMX_LOAD("101-64101.ic16", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) ) + ROMX_LOAD("101-64105.ic16", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) ) + ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROM_END } // anonymous namespace @@ -635,13 +635,13 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, empty_init, "Fidelity Electronics", "Elite Private Line (red version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1983, feasbu, 0, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, feasgla, feasbu, 0, eas, eas, elite_state, empty_init, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1984, fepriv, feasbu, 0, eas_priv, eas, elite_state, empty_init, "Fidelity Electronics", "Elite Private Line (red version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) // by Fidelity West Germany -CONS( 1982, fpres, 0, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (original program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1982, fpres, 0, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (original program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1983, fpresbu, fpres, 0, pc, eas, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag, 0, 0, eag, eag, elite_state, empty_init, "Fidelity Electronics", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) -CONS( 1986, feag2100, feag, 0, eag2100, eag, elite_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1986, feag, 0, 0, eag, eag, elite_state, empty_init, "Fidelity Electronics", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) +CONS( 1986, feag2100, feag, 0, eag2100, eag, elite_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS | MACHINE_IMPERFECT_TIMING ) diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index 6e4e5f9429c..d3370d5cb4a 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -381,6 +381,6 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) -CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1979, vcc, 0, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +CONS( 1980, uvc, vcc, 0, vcc, vcc, vcc_state, empty_init, "Fidelity Electronics", "Advanced Voice Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index 12c4e061b70..cbb4d62cddd 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -426,5 +426,5 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, empty_init, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +CONS( 1980, vsc, 0, 0, vsc, vsc, vsc_state, empty_init, "Fidelity Electronics", "Voice Sensory Chess Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index d9a3e59ee9a..e50dedd9f0f 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12875,6 +12875,7 @@ kishon // @source:fidel_csc.cpp csc // +cscetr reversic // super9cc // From 73c84827311859e7d851d4b43faa92092201269a Mon Sep 17 00:00:00 2001 From: MetalliC <0vetal0@gmail.com> Date: Mon, 25 Feb 2019 00:58:22 +0200 Subject: [PATCH 17/42] segasp.cpp: dumped Dinosaur King security PIC [Porchy] --- src/mame/drivers/segasp.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mame/drivers/segasp.cpp b/src/mame/drivers/segasp.cpp index aaa13c3f198..3dc915afc43 100644 --- a/src/mame/drivers/segasp.cpp +++ b/src/mame/drivers/segasp.cpp @@ -457,7 +457,7 @@ ROM_START( dinoking ) ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs ROM_REGION( 0x800, "pic_readout", 0 ) - ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) ) + ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) ) ROM_END ROM_START( lovebery ) @@ -550,7 +550,7 @@ ROM_START( dinokior ) ROM_PARAMETER( ":rom_board:id", "5502" ) // actually 8x 128Mbit FlashROMs ROM_REGION( 0x800, "pic_readout", 0 ) - ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) ) + ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) ) ROM_END ROM_START( dinoki25 ) @@ -570,7 +570,7 @@ ROM_START( dinoki25 ) ROM_PARAMETER( ":rom_board:id", "5508" ) // 8x 512Mbit FlashROMs ROM_REGION( 0x800, "pic_readout", 0 ) - ROM_LOAD( "317-0408-com.ic15", 0, 0x800, BAD_DUMP CRC(0e94daba) SHA1(4e9722333a29afd0dbadba78b16344b77a689610) ) + ROM_LOAD( "317-0408-com.ic15", 0, 0x800, CRC(f77c49dc) SHA1(e10173bbbd5930ed159cec9a7dba308e2a3f3c43) ) // DINOSAUR KING // TYPE-3 From f952dc937c7d6bdab7ae7a3dc5b6f7064a14be41 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 25 Feb 2019 00:22:06 +0100 Subject: [PATCH 18/42] sc1/sc2 are not 4mhz (nw) --- src/mame/drivers/sc1.cpp | 2 +- src/mame/drivers/sc2.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp index 94dc6ce8c18..d6da7214f88 100644 --- a/src/mame/drivers/sc1.cpp +++ b/src/mame/drivers/sc1.cpp @@ -161,7 +161,7 @@ INPUT_PORTS_END void sc1_state::sc1(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(4'000'000)); + Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone m_maincpu->set_addrmap(AS_PROGRAM, &sc1_state::sc1_mem); m_maincpu->set_addrmap(AS_IO, &sc1_state::sc1_io); diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp index 53e5fcd6699..32c1131b695 100644 --- a/src/mame/drivers/sc2.cpp +++ b/src/mame/drivers/sc2.cpp @@ -5,7 +5,7 @@ Schachcomputer SC2 Note: - The HW is very similar to Fidelity Chess Challenger series (see fidelz80.c) + The HW is very similar to Fidelity Chess Challenger series 12/05/2009 Skeleton driver. @@ -215,7 +215,7 @@ WRITE8_MEMBER( sc2_state::pio_port_b_w ) void sc2_state::sc2(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, XTAL(4'000'000)); + Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone m_maincpu->set_addrmap(AS_PROGRAM, &sc2_state::sc2_mem); m_maincpu->set_addrmap(AS_IO, &sc2_state::sc2_io); @@ -223,7 +223,7 @@ void sc2_state::sc2(machine_config &config) config.set_default_layout(layout_sc2); /* devices */ - z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(4'000'000))); + z80pio_device& pio(Z80PIO(config, "z80pio", 9.8304_MHz_XTAL/4)); pio.in_pa_callback().set(FUNC(sc2_state::pio_port_a_r)); pio.out_pa_callback().set(FUNC(sc2_state::pio_port_a_w)); pio.in_pb_callback().set(FUNC(sc2_state::pio_port_b_r)); From 54d698c0df7e048d50035ccd5b0fd41344f0985d Mon Sep 17 00:00:00 2001 From: braintro Date: Sun, 24 Feb 2019 18:10:39 -0600 Subject: [PATCH 19/42] segas16b.cpp: Minor doc update Ryu Kyu Sega numbers (nw) --- src/mame/drivers/segas16b.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/segas16b.cpp b/src/mame/drivers/segas16b.cpp index 1b5d130769e..d897d6f6a91 100644 --- a/src/mame/drivers/segas16b.cpp +++ b/src/mame/drivers/segas16b.cpp @@ -7449,7 +7449,9 @@ ROM_END //************************************************************************************************************************* // Ryukyu, Sega System 16B // CPU: FD1094 8M2 (317-5023A) -// ROM Board type: ? +// ROM Board type: 171-5704 +// Sega game ID: 836-7666 RYUKYU +// ROM board: 836-7667 // ROM_START( ryukyua ) ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code From 4316a381427b5d4f5ba7e1456a78dbac22ca24e5 Mon Sep 17 00:00:00 2001 From: braintro Date: Sun, 24 Feb 2019 19:46:23 -0600 Subject: [PATCH 20/42] new not working clones New clones marked as NOT_WORKING -------------------------------- Sega Rally Championship - Twin/DX (Revision A) [Dane Biegert, Brian Troha, Henrique Areias Pontes, Sean Sutton, Smitdogg, The Dumping Union] Over Rev (Model 2B, Revision A) [Dane Biegert, Brian Troha, Henrique Areias Pontes, Sean Sutton, Smitdogg, The Dumping Union] --- src/mame/drivers/model2.cpp | 77 +++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 4 +- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index b29c67f9a6f..3224ee999ad 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -3493,6 +3493,52 @@ ROM_START( srallycb ) /* Sega Rally Championship Revision B, Model 2A, Sega game MODEL2A_VID_BOARD ROM_END +ROM_START( srallycc ) /* Sega Rally Championship Revision A, Model 2A, Sega game ID# 833-11649 RALLY TWIN, Sega ROM board ID# 834-11618 RALLY TWIN */ + ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program + ROM_LOAD32_WORD( "epr-17888a.12", 0x000000, 0x080000, CRC(7f71fe46) SHA1(cca55b2ce837b1147a31666c1d4e2ecc793447c8) ) + ROM_LOAD32_WORD( "epr-17889a.13", 0x000002, 0x080000, CRC(6d99b766) SHA1(720e1d8090746c9baa55682e33ba485cf64a1522) ) + + ROM_REGION32_LE( 0x2400000, "main_data", 0 ) // Data + ROM_LOAD32_WORD( "mpr-17746.10", 0x000000, 0x200000, CRC(8fe311f4) SHA1(f4ada8e5c906fc384bed1b96f09cdf313f89e825) ) + ROM_LOAD32_WORD( "mpr-17747.11", 0x000002, 0x200000, CRC(543593fd) SHA1(5ba63a77e9fc70569af21d50b3171bc8ff4522b8) ) + ROM_LOAD32_WORD( "mpr-17744.8", 0x400000, 0x200000, CRC(71fed098) SHA1(1d187cad375121a45348d640edd3cc7dce658d28) ) + ROM_LOAD32_WORD( "mpr-17745.9", 0x400002, 0x200000, CRC(8ecca705) SHA1(ed2b3298aad6f4e52dc672a0168183e457564b43) ) + ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) ) + ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) ) + + ROM_REGION( 0x800000, "copro_data", 0 ) // Copro extra data (collision/height map/etc) (COPRO socket) + ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) ) + ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) ) + + ROM_REGION( 0x010000, "drivecpu", 0 ) // Drive I/O program + ROM_LOAD( "epr-17891.ic12", 0x000000, 0x010000, CRC(9a33b437) SHA1(3e8f210aa5159e78f640126cb5ce7f05f22560f2) ) + + ROM_REGION( 0x2000000, "polygons", 0 ) // Models + ROM_LOAD32_WORD( "mpr-17748.16", 0x000000, 0x200000, CRC(3148a2b2) SHA1(283cc49bfb6c6381a7ead9273fd097dca5b981b6) ) + ROM_LOAD32_WORD( "mpr-17750.20", 0x000002, 0x200000, CRC(232aec29) SHA1(4d470e71df61298282c356814e2d151fda323fb6) ) + ROM_LOAD32_WORD( "mpr-17749.17", 0x400000, 0x200000, CRC(0838d184) SHA1(704175c8b29e4c989afcb7be42e7e0e096740eaf) ) + ROM_LOAD32_WORD( "mpr-17751.21", 0x400002, 0x200000, CRC(ed87ac62) SHA1(601542149d33ca52a47536b4b0af47bf1fd87eb2) ) + + ROM_REGION( 0x1000000, "textures", 0 ) // Textures + ROM_LOAD32_WORD( "mpr-17753.25", 0x000000, 0x200000, CRC(6db0eb36) SHA1(dd5fd3c9592360d3e95623ac2491e6faabe9dbcb) ) + ROM_LOAD32_WORD( "mpr-17752.24", 0x000002, 0x200000, CRC(d6aa86ce) SHA1(1d342f87d1af1e5438d1ae818b1b14268e765897) ) + + ROM_REGION( 0x20000, "cpu4", 0) // Communication program + ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) ) + + ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program + ROM_LOAD16_WORD_SWAP( "epr-17890a.30", 0x000000, 0x040000, CRC(5bac3fa1) SHA1(3635333d36463b6fab25560ed918e05138f964dc) ) + + ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples + ROM_LOAD16_WORD_SWAP( "mpr-17756.31", 0x000000, 0x200000, CRC(7725f111) SHA1(1f1ee3f19a6bcf57bc5a1c7dd64ee83f8b81f084) ) + ROM_LOAD16_WORD_SWAP( "mpr-17757.32", 0x200000, 0x200000, CRC(1616e649) SHA1(1d3a0e441d150ada0535a9d50e2f69dd4b99c584) ) + ROM_LOAD16_WORD_SWAP( "mpr-17886.36", 0x400000, 0x200000, CRC(54a72923) SHA1(103c4838b27378c834c08d29d6fb6ba95e7f9d03) ) + ROM_LOAD16_WORD_SWAP( "mpr-17887.37", 0x600000, 0x200000, CRC(38c31fdd) SHA1(a85f05160b060d9d4a431aaa73cfc03f24214fb9) ) + + MODEL2_CPU_BOARD + MODEL2A_VID_BOARD +ROM_END + ROM_START( srallycdx ) /* Sega Rally Championship DX Revision A, Model 2A - Single player cabinet - NO LINK option!, Sega ROM board ID# 834-11254 RALLY 50 */ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program ROM_LOAD32_WORD( "epr-17760a.12", 0x000000, 0x020000, CRC(2c1b996b) SHA1(28c1196aac1c242e61069ee809c9e8229c061950) ) /* AMD 27C1024 EPROM */ @@ -5334,6 +5380,35 @@ ROM_START( overrevb ) /* Over Rev Revision B, Model 2B */ ROM_LOAD16_WORD_SWAP( "mpr-20004.34", 0x400000, 0x400000, CRC(0b9c5410) SHA1(e5bb30702fc853ccc03316be07a334269d3ebb4a) ) ROM_END +ROM_START( overrevba ) /* Over Rev Revision A, Model 2B */ + ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program + ROM_LOAD32_WORD( "epr-19992a.15", 0x000000, 0x080000, CRC(68d3c8a8) SHA1(360d42c502d16ba056f4bfa8bb1667c8c58df8e2) ) + ROM_LOAD32_WORD( "epr-19993a.16", 0x000002, 0x080000, CRC(9718eb58) SHA1(07e92d00843dd499e45654827e233723e18cc3e2) ) + + ROM_REGION32_LE( 0x2000000, "main_data", 0 ) // Data + ROM_LOAD32_WORD( "mpr-19996.11", 0x000000, 0x400000, CRC(21928a00) SHA1(6b439fd2b113b64df9378ef8180a17aa6fa975c5) ) + ROM_LOAD32_WORD( "mpr-19997.12", 0x000002, 0x400000, CRC(2a169cab) SHA1(dbf9af938afd0599d345c42c1df242e575c14de9) ) + ROM_LOAD32_WORD( "mpr-19994.9", 0x800000, 0x400000, CRC(e691fbd5) SHA1(b99c2f3f2a682966d792917dfcb8ed8e53bc0b7a) ) + ROM_LOAD32_WORD( "mpr-19995.10", 0x800002, 0x400000, CRC(82a7828e) SHA1(4336a12a07a67f94091b4a9b491bab02c375dd15) ) + + ROM_REGION( 0x800000, "copro_data", ROMREGION_ERASE00 ) // Copro extra data (collision/height map/etc) + + ROM_REGION( 0x800000, "polygons", 0 ) // Models + ROM_LOAD32_WORD( "mpr-19998.17", 0x000000, 0x200000, CRC(6a834574) SHA1(8be19bf42dbb157d6acde62a2018ef4c0d41aab4) ) + ROM_LOAD32_WORD( "mpr-19999.21", 0x000002, 0x200000, CRC(ff590a2d) SHA1(ad29e4270b4a2f82189fbab83358eb1200f43777) ) + + ROM_REGION( 0x400000, "textures", 0 ) // Textures + ROM_LOAD32_WORD( "mpr-20001.27", 0x000000, 0x200000, CRC(6ca236aa) SHA1(b3cb89fadb42afed13be4f229d7158dee487978a) ) + ROM_LOAD32_WORD( "mpr-20000.25", 0x000002, 0x200000, CRC(894d8ded) SHA1(9bf7c754a29eef47fa49b5567980601895127306) ) + + ROM_REGION( 0x080000, "audiocpu", 0 ) // Sound program + ROM_LOAD16_WORD_SWAP( "epr-20002.31", 0x000000, 0x080000, CRC(7efb069e) SHA1(30b1bbaf348d6a6b9ee2fdf82a0749baa025e0bf) ) + + ROM_REGION16_BE( 0x800000, "samples", 0 ) // Samples + ROM_LOAD16_WORD_SWAP( "mpr-20003.32", 0x000000, 0x400000, CRC(149ac22b) SHA1(c890bbaebbbb07b62bcb8a3a8edded9fa0ec9a1e) ) + ROM_LOAD16_WORD_SWAP( "mpr-20004.34", 0x400000, 0x400000, CRC(0b9c5410) SHA1(e5bb30702fc853ccc03316be07a334269d3ebb4a) ) +ROM_END + ROM_START( rascot2 ) /* Royal Ascot 2, Model 2C, Rom Board : 837-12485 Com Board : 837-12532 SDC-2 */ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program ROM_LOAD32_WORD("epr-20166.15", 0x000000, 0x020000, CRC(520479a4) SHA1(02e14a7be299c2af36373595cf6f154312372a60) ) @@ -6720,6 +6795,7 @@ GAME( 1995, manxtt, 0, manxttdx, manxtt, model2a_state, empty_in GAME( 1995, manxttc, 0, manxtt, manxtt, model2a_state, empty_init, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, srallyc, 0, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, srallycc, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - Twin/DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, srallycdx, srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, srallycdxa,srallyc, srallyc, srallyc, model2a_state, empty_init, ROT0, "Sega", "Sega Rally Championship - DX", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1995, vcop2, 0, vcop2, vcop2, model2a_state, empty_init, ROT0, "Sega", "Virtua Cop 2", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) @@ -6755,6 +6831,7 @@ GAME( 1996, sgt24h, 0, indy500, sgt24h, model2b_state, init_sg GAME( 1996, dynabb, 0, dynabb, dynabb, model2b_state, empty_init, ROT0, "Sega", "Dynamite Baseball", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, dynabb97, 0, dynabb, dynabb, model2b_state, empty_init, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, overrevb, overrev, indy500, overrev, model2b_state, empty_init, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, overrevba, overrev, indy500, overrev, model2b_state, empty_init, ROT0, "Jaleco", "Over Rev (Model 2B, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, zerogun, 0, zerogun, zerogun, model2b_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1997, zerogunj, zerogun, zerogun, zerogun, model2b_state, init_zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) GAME( 1998, dynamcopb, dynamcop, model2b_5881, dynamcop, model2b_state, empty_init, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index e50dedd9f0f..3184af4df0d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -21786,7 +21786,8 @@ manxttc // 1995.11 Manx T.T. (Revision C) motoraid // 1997.10 Motor Raid Twin motoraiddx // 1997.10 Motor Raid DX overrev // 1997.09 Over Rev (Revision A) -overrevb // 1997.09 Over Rev (Revision B) +overrevb // 1997.09 Over Rev (Revision B)) +overrevba // 1997.09 Over Rev (Revision A) pltkids // 1999.03 Pilot Kids (Revision A) pltkidsa // 1999.03 Pilot Kids rascot2 // 1997.?? Royal Ascot II @@ -21799,6 +21800,7 @@ skisuprg // 1996.12 Sega Ski Super G skytargt // 1995.10 Sky Target srallyc // 1995.02 Sega Rally Championship TWIN (Revision C) srallycb // 1995.02 Sega Rally Championship TWIN (Revision B) +srallycc // 1995.02 Sega Rally Championship TWIN (Revision A) srallycdx // 1995.02 Sega Rally Championship DX (Revision A) srallycdxa // 1995.02 Sega Rally Championship DX stcc // 1996.09 Sega Touring Car Championship From e6333186167975f60ac38167b4bcad8070ece51d Mon Sep 17 00:00:00 2001 From: braintro Date: Sun, 24 Feb 2019 19:52:03 -0600 Subject: [PATCH 21/42] remove errant ")" (nw) --- src/mame/mame.lst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 3184af4df0d..81d749eb686 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -21786,7 +21786,7 @@ manxttc // 1995.11 Manx T.T. (Revision C) motoraid // 1997.10 Motor Raid Twin motoraiddx // 1997.10 Motor Raid DX overrev // 1997.09 Over Rev (Revision A) -overrevb // 1997.09 Over Rev (Revision B)) +overrevb // 1997.09 Over Rev (Revision B) overrevba // 1997.09 Over Rev (Revision A) pltkids // 1999.03 Pilot Kids (Revision A) pltkidsa // 1999.03 Pilot Kids From c24799514395edc7ccf9f4c16f4dd99ca7a4d61d Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 25 Feb 2019 03:38:11 +0100 Subject: [PATCH 22/42] sc1/sc2: small cleanup (nw) --- src/mame/drivers/chessmst.cpp | 86 +++++------ src/mame/drivers/fidel_cc10.cpp | 6 +- src/mame/drivers/fidel_cc7.cpp | 12 +- src/mame/drivers/fidel_vcc.cpp | 6 +- src/mame/drivers/intellect02.cpp | 8 +- src/mame/drivers/sc1.cpp | 120 ++++++++------- src/mame/drivers/sc2.cpp | 252 +++++++++++++++---------------- src/mame/layout/sc1.lay | 4 +- src/mame/layout/sc2.lay | 4 +- 9 files changed, 246 insertions(+), 252 deletions(-) diff --git a/src/mame/drivers/chessmst.cpp b/src/mame/drivers/chessmst.cpp index 817435988af..0e29d45d49f 100644 --- a/src/mame/drivers/chessmst.cpp +++ b/src/mame/drivers/chessmst.cpp @@ -30,16 +30,16 @@ class chessmst_state : public driver_device { public: - chessmst_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, "maincpu") - , m_pia2(*this, "z80pio2") - , m_speaker(*this, "speaker") - , m_beeper(*this, "beeper") - , m_extra(*this, "EXTRA") - , m_buttons(*this, "BUTTONS") - , m_digits(*this, "digit%u", 0U) - , m_leds(*this, "led_%c%u", unsigned('a'), 1U) + chessmst_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_pio(*this, "z80pio%u", 0), + m_speaker(*this, "speaker"), + m_beeper(*this, "beeper"), + m_extra(*this, "EXTRA"), + m_buttons(*this, "BUTTONS"), + m_digits(*this, "digit%u", 0U), + m_leds(*this, "led_%c%u", unsigned('a'), 1U) { } DECLARE_INPUT_CHANGED_MEMBER(chessmst_sensor); @@ -71,7 +71,7 @@ private: void update_display(); required_device m_maincpu; - required_device m_pia2; + required_device_array m_pio; optional_device m_speaker; optional_device m_beeper; required_ioport m_extra; @@ -109,8 +109,8 @@ void chessmst_state::chessmst_io(address_map &map) map.unmap_value_high(); map.global_mask(0xff); //AM_RANGE(0x00, 0x03) AM_MIRROR(0xf0) read/write in both, not used by the software - map(0x04, 0x07).mirror(0xf0).rw("z80pio1", FUNC(z80pio_device::read), FUNC(z80pio_device::write)); - map(0x08, 0x0b).mirror(0xf0).rw(m_pia2, FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x04, 0x07).mirror(0xf0).rw(m_pio[0], FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x08, 0x0b).mirror(0xf0).rw(m_pio[1], FUNC(z80pio_device::read), FUNC(z80pio_device::write)); } void chessmst_state::chessmstdm_io(address_map &map) @@ -121,8 +121,8 @@ void chessmst_state::chessmstdm_io(address_map &map) WRITE_LINE_MEMBER( chessmst_state::timer_555_w ) { - m_pia2->strobe_b(state); - m_pia2->data_b_write(m_matrix); + m_pio[1]->strobe_b(state); + m_pio[1]->data_b_write(m_matrix); } INPUT_CHANGED_MEMBER(chessmst_state::reset_button) @@ -237,7 +237,7 @@ static INPUT_PORTS_START( chessmst ) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game [0]") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_ENTER) PORT_START("EXTRA") - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio1", z80pio_device, strobe_a) // -> PIO(1) ASTB pin + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_WRITE_LINE_DEVICE_MEMBER("z80pio0", z80pio_device, strobe_a) // -> PIO(0) ASTB pin PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, reset_button, 0) // -> Z80 RESET pin INPUT_PORTS_END @@ -368,32 +368,32 @@ WRITE8_MEMBER( chessmst_state::pio2_port_b_w ) static const z80_daisy_config chessmst_daisy_chain[] = { - { "z80pio1" }, + { "z80pio0" }, { nullptr } }; static const z80_daisy_config chessmstdm_daisy_chain[] = { - { "z80pio2" }, + { "z80pio1" }, { nullptr } }; void chessmst_state::chessmst(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // U880 Z80 clone + Z80(config, m_maincpu, 9.8304_MHz_XTAL/4); // UB880 Z80 clone m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmst_mem); m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmst_io); m_maincpu->set_daisy_config(chessmst_daisy_chain); - z80pio_device& pio1(Z80PIO(config, "z80pio1", 9.8304_MHz_XTAL/4)); - pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); - pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w)); + Z80PIO(config, m_pio[0], 9.8304_MHz_XTAL/4); + m_pio[0]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); + m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w)); - Z80PIO(config, m_pia2, 9.8304_MHz_XTAL/4); - m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); - m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); + Z80PIO(config, m_pio[1], 9.8304_MHz_XTAL/4); + m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); + m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); config.set_default_layout(layout_chessmst); @@ -405,19 +405,19 @@ void chessmst_state::chessmst(machine_config &config) void chessmst_state::chessmsta(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, 8_MHz_XTAL/4); // U880 Z80 clone + Z80(config, m_maincpu, 8_MHz_XTAL/2); // UA880 Z80 clone m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmst_mem); m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmst_io); m_maincpu->set_daisy_config(chessmst_daisy_chain); - z80pio_device& pio1(Z80PIO(config, "z80pio1", 8_MHz_XTAL/4)); - pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); - pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w)); + Z80PIO(config, m_pio[0], 8_MHz_XTAL/2); + m_pio[0]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); + m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_w)); - Z80PIO(config, m_pia2, 8_MHz_XTAL/4); - m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); - m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); + Z80PIO(config, m_pio[1], 8_MHz_XTAL/2); + m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); + m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); config.set_default_layout(layout_chessmst); @@ -429,20 +429,20 @@ void chessmst_state::chessmsta(machine_config &config) void chessmst_state::chessmstdm(machine_config &config) { /* basic machine hardware */ - Z80(config, m_maincpu, 8_MHz_XTAL/2); // U880 Z80 clone + Z80(config, m_maincpu, 8_MHz_XTAL/2); // UA880 Z80 clone m_maincpu->set_addrmap(AS_PROGRAM, &chessmst_state::chessmstdm_mem); m_maincpu->set_addrmap(AS_IO, &chessmst_state::chessmstdm_io); m_maincpu->set_daisy_config(chessmstdm_daisy_chain); - z80pio_device& pio1(Z80PIO(config, "z80pio1", 8_MHz_XTAL/4)); - pio1.out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); - pio1.out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_dm_w)); - pio1.in_pb_callback().set_ioport("EXTRA"); + Z80PIO(config, m_pio[0], 8_MHz_XTAL/2); + m_pio[0]->out_pa_callback().set(FUNC(chessmst_state::pio1_port_a_w)); + m_pio[0]->out_pb_callback().set(FUNC(chessmst_state::pio1_port_b_dm_w)); + m_pio[0]->in_pb_callback().set_ioport("EXTRA"); - Z80PIO(config, m_pia2, 8_MHz_XTAL/4); - m_pia2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - m_pia2->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); - m_pia2->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); + Z80PIO(config, m_pio[1], 8_MHz_XTAL/2); + m_pio[1]->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_pio[1]->in_pa_callback().set(FUNC(chessmst_state::pio2_port_a_r)); + m_pio[1]->out_pb_callback().set(FUNC(chessmst_state::pio2_port_b_w)); config.set_default_layout(layout_chessmstdm); diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp index 2438b145029..850d8f9a29d 100644 --- a/src/mame/drivers/fidel_cc10.cpp +++ b/src/mame/drivers/fidel_cc10.cpp @@ -195,13 +195,13 @@ static INPUT_PORTS_START( ccx ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) PORT_START("IN.2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) PORT_START("IN.3") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp index 6eb5bf10c15..b99642da9cc 100644 --- a/src/mame/drivers/fidel_cc7.cpp +++ b/src/mame/drivers/fidel_cc7.cpp @@ -136,14 +136,14 @@ void bcc_state::main_io(address_map &map) static INPUT_PORTS_START( bcc ) PORT_START("IN.0") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) PORT_START("IN.1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) @@ -162,13 +162,13 @@ INPUT_PORTS_END static INPUT_PORTS_START( bkc ) PORT_START("IN.0") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_START("IN.1") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) @@ -181,7 +181,7 @@ static INPUT_PORTS_START( bkc ) PORT_START("IN.3") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) INPUT_PORTS_END diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp index d3370d5cb4a..c7f43621a9e 100644 --- a/src/mame/drivers/fidel_vcc.cpp +++ b/src/mame/drivers/fidel_vcc.cpp @@ -267,13 +267,13 @@ static INPUT_PORTS_START( vcc ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) PORT_START("IN.2") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) - PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_P) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PB") PORT_CODE(KEYCODE_O) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) PORT_START("IN.3") - PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("EN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("PV") PORT_CODE(KEYCODE_V) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) diff --git a/src/mame/drivers/intellect02.cpp b/src/mame/drivers/intellect02.cpp index 6fc4699c6dd..e76770b5ced 100644 --- a/src/mame/drivers/intellect02.cpp +++ b/src/mame/drivers/intellect02.cpp @@ -65,7 +65,7 @@ public: m_maincpu(*this, "maincpu"), m_ppi8255(*this, "ppi8255"), m_led_delay(*this, "led_delay_%u", 0), - m_buttons(*this, "IN.%u", 0), + m_keypad(*this, "IN.%u", 0), m_dac(*this, "dac"), m_cart(*this, "cartslot"), m_digit(*this, "digit%u", 0U), @@ -86,7 +86,7 @@ private: required_device m_maincpu; required_device m_ppi8255; required_device_array m_led_delay; - required_ioport_array<2> m_buttons; + required_ioport_array<2> m_keypad; required_device m_dac; required_device m_cart; output_finder<4> m_digit; @@ -178,7 +178,7 @@ READ8_MEMBER(intel02_state::input_r) { // d0-d3: buttons through a priority encoder // d4-d7: buttons (direct) - return (count_leading_zeros(m_buttons[0]->read()) - 17) | (~m_buttons[1]->read() << 4 & 0xf0); + return (count_leading_zeros(m_keypad[0]->read()) - 17) | (~m_keypad[1]->read() << 4 & 0xf0); } WRITE8_MEMBER(intel02_state::_7seg_w) @@ -252,7 +252,7 @@ static INPUT_PORTS_START( intel02 ) PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN) PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Input") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Game Select") PORT_CODE(KEYCODE_S) - PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Erase") PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Erase") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_START("RESET") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, intel02_state, reset_button, nullptr) diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp index d6da7214f88..68579ca10c1 100644 --- a/src/mame/drivers/sc1.cpp +++ b/src/mame/drivers/sc1.cpp @@ -2,16 +2,13 @@ // copyright-holders:Sandro Ronco /*************************************************************************** -Schachcomputer SC1 - -2009-05-12 Skeleton driver. +Schachcomputer SC 1 ToDo: - speaker - LEDs - 7seg sometimes flashes - ****************************************************************************/ #include "emu.h" @@ -23,33 +20,49 @@ ToDo: #include "sc1.lh" +namespace { + class sc1_state : public driver_device { public: - sc1_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, "maincpu") - , m_speaker(*this, "speaker") - , m_digits(*this, "digit%u", 0U) + sc1_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this, "maincpu"), + m_pio(*this, "z80pio"), + m_speaker(*this, "speaker"), + m_keypad(*this, "LINE%u", 1), + m_digits(*this, "digit%u", 0U) { } void sc1(machine_config &config); +protected: + virtual void machine_start() override; + private: - DECLARE_WRITE8_MEMBER( matrix_w ); - DECLARE_WRITE8_MEMBER( pio_port_a_w ); - DECLARE_READ8_MEMBER( pio_port_b_r ); + required_device m_maincpu; + required_device m_pio; + required_device m_speaker; + required_ioport_array<8> m_keypad; + output_finder<4> m_digits; void sc1_io(address_map &map); void sc1_mem(address_map &map); uint8_t m_matrix; - virtual void machine_start() override { m_digits.resolve(); } - required_device m_maincpu; - required_device m_speaker; - output_finder<4> m_digits; + + DECLARE_WRITE8_MEMBER( matrix_w ); + DECLARE_WRITE8_MEMBER( pio_port_a_w ); + DECLARE_READ8_MEMBER( pio_port_b_r ); }; +void sc1_state::machine_start() +{ + m_digits.resolve(); + + save_item(NAME(m_matrix)); +} + /*************************************************************************** Display @@ -58,7 +71,7 @@ private: WRITE8_MEMBER( sc1_state::pio_port_a_w ) { - uint8_t digit = bitswap<8>( data,3,4,6,0,1,2,7,5 ) & 0x7f; + uint8_t digit = bitswap<8>(data,3,4,6,0,1,2,7,5) & 0x7f; if (m_matrix & 0x04) m_digits[3] = digit; @@ -86,22 +99,10 @@ READ8_MEMBER( sc1_state::pio_port_b_r ) { uint8_t data = 0; - if (m_matrix & 0x01) - data |= ioport("LINE1")->read(); - if (m_matrix & 0x02) - data |= ioport("LINE2")->read(); - if (m_matrix & 0x04) - data |= ioport("LINE3")->read(); - if (m_matrix & 0x08) - data |= ioport("LINE4")->read(); - if (m_matrix & 0x10) - data |= ioport("LINE5")->read(); - if (m_matrix & 0x20) - data |= ioport("LINE6")->read(); - if (m_matrix & 0x40) - data |= ioport("LINE7")->read(); - if (m_matrix & 0x80) - data |= ioport("LINE8")->read(); + // read keypad matrix + for (int i = 0; i < 8; i++) + if (BIT(m_matrix, i)) + data |= m_keypad[i]->read(); return data; } @@ -118,46 +119,50 @@ void sc1_state::sc1_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x80, 0x83).rw("z80pio", FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt)); + map(0x80, 0x83).rw(m_pio, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt)); map(0xfc, 0xfc).w(FUNC(sc1_state::matrix_w)); } + /* Input ports */ + static INPUT_PORTS_START( sc1 ) PORT_START("LINE1") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_D) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) PORT_START("LINE2") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_B) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) PORT_START("LINE3") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_C) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_G) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) PORT_START("LINE4") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_A) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_E) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E) PORT_START("LINE5") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_H) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CE") PORT_CODE(KEYCODE_DEL) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CE") PORT_CODE(KEYCODE_R) PORT_START("LINE6") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_START("LINE7") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W/S") PORT_CODE(KEYCODE_W) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W/S") PORT_CODE(KEYCODE_W) PORT_START("LINE8") - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_M) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) INPUT_PORTS_END +/* Machine config */ + void sc1_state::sc1(machine_config &config) { /* basic machine hardware */ @@ -169,22 +174,27 @@ void sc1_state::sc1(machine_config &config) config.set_default_layout(layout_sc1); /* devices */ - z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(4'000'000))); - pio.out_pa_callback().set(FUNC(sc1_state::pio_port_a_w)); - pio.in_pb_callback().set(FUNC(sc1_state::pio_port_b_r)); + Z80PIO(config, m_pio, 9.8304_MHz_XTAL/4); + m_pio->out_pa_callback().set(FUNC(sc1_state::pio_port_a_w)); + m_pio->in_pb_callback().set(FUNC(sc1_state::pio_port_b_r)); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); } + /* ROM definition */ + ROM_START( sc1 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "sc1.rom", 0x0000, 0x1000, CRC(26965b23) SHA1(01568911446eda9f05ec136df53da147b7c6f2bf)) ROM_END +} // anonymous namespace + + /* Driver */ -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1989, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp index 32c1131b695..4d265c0a336 100644 --- a/src/mame/drivers/sc2.cpp +++ b/src/mame/drivers/sc2.cpp @@ -2,67 +2,89 @@ // copyright-holders:Sandro Ronco /*************************************************************************** - Schachcomputer SC2 - - Note: - The HW is very similar to Fidelity Chess Challenger series - - 12/05/2009 Skeleton driver. + Schachcomputer SC 2 ****************************************************************************/ #include "emu.h" #include "cpu/z80/z80.h" -#include "sound/beep.h" #include "machine/z80pio.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" #include "speaker.h" #include "sc2.lh" + +namespace { + class sc2_state : public driver_device { public: - sc2_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_beep(*this, "beeper"), + sc2_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_pio(*this, "z80pio"), + m_dac(*this, "dac"), + m_keypad(*this, "LINE%u", 1), m_digits(*this, "digit%u", 0U), m_leds(*this, "led%u", 0U) { } void sc2(machine_config &config); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + private: + required_device m_maincpu; + required_device m_pio; + required_device m_dac; + required_ioport_array<4> m_keypad; + + output_finder<4> m_digits; + output_finder<2> m_leds; + + void sc2_io(address_map &map); + void sc2_mem(address_map &map); + + uint8_t m_kp_matrix; + uint8_t m_led_selected; + uint8_t m_digit_data; + + void sc2_update_display(); DECLARE_READ8_MEMBER(pio_port_a_r); DECLARE_READ8_MEMBER(pio_port_b_r); DECLARE_WRITE8_MEMBER(pio_port_a_w); DECLARE_WRITE8_MEMBER(pio_port_b_w); - DECLARE_READ8_MEMBER(sc2_beep); - uint8_t m_kp_matrix; - uint8_t m_led_7seg_data[4]; - uint8_t m_led_selected; - uint8_t m_digit_data; - uint8_t m_beep_state; - void sc2_update_display(); - virtual void machine_start() override; - virtual void machine_reset() override; - void sc2_io(address_map &map); - void sc2_mem(address_map &map); - - required_device m_beep; - required_device m_maincpu; - output_finder<4> m_digits; - output_finder<2> m_leds; + DECLARE_READ8_MEMBER(speaker_w); + template DECLARE_READ8_MEMBER(speaker_w); }; -READ8_MEMBER( sc2_state::sc2_beep ) +void sc2_state::machine_start() { - //if (!machine().side_effects_disabled()) - { - m_beep_state = ~m_beep_state; + m_digits.resolve(); + m_leds.resolve(); - m_beep->set_state(m_beep_state); - } + save_item(NAME(m_kp_matrix)); + save_item(NAME(m_led_selected)); + save_item(NAME(m_digit_data)); +} + +void sc2_state::machine_reset() +{ + m_kp_matrix = 0; + m_led_selected = 0; + m_digit_data = 0; +} + + +template +READ8_MEMBER( sc2_state::speaker_w ) +{ + if (!machine().side_effects_disabled()) + m_dac->write(State); return 0xff; } @@ -73,94 +95,33 @@ void sc2_state::sc2_mem(address_map &map) map(0x0000, 0x0fff).rom(); map(0x1000, 0x13ff).ram(); map(0x2000, 0x33ff).rom(); - map(0x3c00, 0x3c00).r(FUNC(sc2_state::sc2_beep)); + map(0x3400, 0x3400).r(FUNC(sc2_state::speaker_w<1>)); + map(0x3c00, 0x3c00).r(FUNC(sc2_state::speaker_w<0>)); } void sc2_state::sc2_io(address_map &map) { map.unmap_value_high(); map.global_mask(0xff); - map(0x00, 0x03).mirror(0xfc).rw("z80pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write)); + map(0x00, 0x03).mirror(0xfc).rw(m_pio, FUNC(z80pio_device::read), FUNC(z80pio_device::write)); } -/* Input ports */ -static INPUT_PORTS_START( sc2 ) - PORT_START("LINE1") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_L) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) - - PORT_START("LINE2") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) - - PORT_START("LINE3") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) - - PORT_START("LINE4") - PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K) - PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O) -INPUT_PORTS_END - -void sc2_state::machine_start() -{ - m_digits.resolve(); - m_leds.resolve(); - - save_item(NAME(m_led_7seg_data)); - save_item(NAME(m_kp_matrix)); - save_item(NAME(m_led_selected)); - save_item(NAME(m_digit_data)); - save_item(NAME(m_beep_state)); -} - -void sc2_state::machine_reset() -{ - m_kp_matrix = 0; - m_led_selected = 0; - m_digit_data = 0; - m_beep_state = 0; - memset(m_led_7seg_data, 0, ARRAY_LENGTH(m_led_7seg_data)); -} void sc2_state::sc2_update_display() { - uint8_t digit_data = bitswap<8>( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f; + uint8_t digit_data = bitswap<8>(m_digit_data,7,0,1,2,3,4,5,6) & 0x7f; - if (!BIT(m_led_selected, 0)) + // latch display data + for (int i = 0; i < 4; i++) { - m_digits[0] = digit_data; - m_led_7seg_data[0] = digit_data; + if (!BIT(m_led_selected, i)) + { + m_digits[i] = digit_data; - m_leds[0] = BIT(m_digit_data, 7); - } - - if (!BIT(m_led_selected, 1)) - { - m_digits[1] = digit_data; - m_led_7seg_data[1] = digit_data; - - m_leds[1] = BIT(m_digit_data, 7); - } - - if (!BIT(m_led_selected, 2)) - { - m_digits[2] = digit_data; - m_led_7seg_data[2] = digit_data; - } - - if (!BIT(m_led_selected, 3)) - { - m_digits[3] = digit_data; - m_led_7seg_data[3] = digit_data; + // schach/matt leds + if (i < 2) + m_leds[i] = BIT(m_digit_data, 7); + } } } @@ -173,25 +134,10 @@ READ8_MEMBER( sc2_state::pio_port_b_r ) { uint8_t data = m_led_selected & 0x0f; - if (BIT(m_kp_matrix, 0)) - { - data |= ioport("LINE1")->read(); - } - - if (BIT(m_kp_matrix, 1)) - { - data |= ioport("LINE2")->read(); - } - - if (BIT(m_kp_matrix, 2)) - { - data |= ioport("LINE3")->read(); - } - - if (BIT(m_kp_matrix, 3)) - { - data |= ioport("LINE4")->read(); - } + // read keypad matrix + for (int i = 0; i < 4; i++) + if (BIT(m_kp_matrix, i)) + data |= m_keypad[i]->read(); return data; } @@ -212,6 +158,38 @@ WRITE8_MEMBER( sc2_state::pio_port_b_w ) m_kp_matrix = data; } + +/* Input ports */ + +static INPUT_PORTS_START( sc2 ) + PORT_START("LINE1") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + + PORT_START("LINE2") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B2") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_B) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C3") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_CODE(KEYCODE_C) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D4") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_D) + + PORT_START("LINE3") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E5") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_CODE(KEYCODE_E) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F6") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_F) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G7") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CODE(KEYCODE_G) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H) + + PORT_START("LINE4") + PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K) + PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W") PORT_CODE(KEYCODE_W) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O) +INPUT_PORTS_END + + +/* Machine config */ + void sc2_state::sc2(machine_config &config) { /* basic machine hardware */ @@ -223,18 +201,21 @@ void sc2_state::sc2(machine_config &config) config.set_default_layout(layout_sc2); /* devices */ - z80pio_device& pio(Z80PIO(config, "z80pio", 9.8304_MHz_XTAL/4)); - pio.in_pa_callback().set(FUNC(sc2_state::pio_port_a_r)); - pio.out_pa_callback().set(FUNC(sc2_state::pio_port_a_w)); - pio.in_pb_callback().set(FUNC(sc2_state::pio_port_b_r)); - pio.out_pb_callback().set(FUNC(sc2_state::pio_port_b_w)); + Z80PIO(config, m_pio, 9.8304_MHz_XTAL/4); + m_pio->in_pa_callback().set(FUNC(sc2_state::pio_port_a_r)); + m_pio->out_pa_callback().set(FUNC(sc2_state::pio_port_a_w)); + m_pio->in_pb_callback().set(FUNC(sc2_state::pio_port_b_r)); + m_pio->out_pb_callback().set(FUNC(sc2_state::pio_port_b_w)); /* sound hardware */ - SPEAKER(config, "mono").front_center(); - BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 0.50); + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); } + /* ROM definition */ + ROM_START( sc2 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "bm008.bin", 0x0000, 0x0400, CRC(3023ea82) SHA1(07020d153d802c672c39e1af3c716dbe35e23f08)) @@ -248,7 +229,10 @@ ROM_START( sc2 ) ROM_LOAD( "bm016.bin", 0x3000, 0x0400, CRC(4fe0853a) SHA1(c2253e320778b0ea468fb54f26ae83d07f9700e6)) ROM_END +} // anonymous namespace + + /* Driver */ -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1981, sc2, 0, 0, sc2, sc2, sc2_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC2", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP( 1981, sc2, 0, 0, sc2, sc2, sc2_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 2", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/layout/sc1.lay b/src/mame/layout/sc1.lay index c6ed82b9123..e7878d89293 100644 --- a/src/mame/layout/sc1.lay +++ b/src/mame/layout/sc1.lay @@ -7,10 +7,10 @@ - + - + diff --git a/src/mame/layout/sc2.lay b/src/mame/layout/sc2.lay index c68cee7e136..ffb27d79e96 100644 --- a/src/mame/layout/sc2.lay +++ b/src/mame/layout/sc2.lay @@ -7,10 +7,10 @@ - + - + From ab5a6c04a354024216db302c45950427a3edaffd Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 24 Feb 2019 23:20:49 -0500 Subject: [PATCH 23/42] bus/compis, bus/isbx, bus/pofo, bus/ql, qimi: Eliminate address_space arguments from handlers (nw) --- src/devices/bus/compis/graphics.h | 40 ++++++++++++------------ src/devices/bus/compis/hrg.cpp | 8 ++--- src/devices/bus/compis/hrg.h | 4 +-- src/devices/bus/isbx/compis_fdc.cpp | 14 ++++----- src/devices/bus/isbx/compis_fdc.h | 8 ++--- src/devices/bus/isbx/isbc_218a.cpp | 18 +++++------ src/devices/bus/isbx/isbc_218a.h | 12 +++---- src/devices/bus/isbx/isbx.h | 24 +++++++------- src/devices/bus/pofo/ccm.h | 8 ++--- src/devices/bus/pofo/exp.h | 8 ++--- src/devices/bus/pofo/hpc101.cpp | 4 +-- src/devices/bus/pofo/hpc101.h | 4 +-- src/devices/bus/pofo/hpc102.cpp | 8 ++--- src/devices/bus/pofo/hpc102.h | 4 +-- src/devices/bus/pofo/hpc104.cpp | 12 +++---- src/devices/bus/pofo/hpc104.h | 4 +-- src/devices/bus/pofo/ram.cpp | 4 +-- src/devices/bus/pofo/ram.h | 4 +-- src/devices/bus/pofo/rom.cpp | 2 +- src/devices/bus/pofo/rom.h | 2 +- src/devices/bus/ql/cst_q_plus4.cpp | 20 ++++++------ src/devices/bus/ql/cst_q_plus4.h | 4 +-- src/devices/bus/ql/cst_qdisc.cpp | 4 +-- src/devices/bus/ql/cst_qdisc.h | 4 +-- src/devices/bus/ql/cumana_fdi.cpp | 4 +-- src/devices/bus/ql/cumana_fdi.h | 4 +-- src/devices/bus/ql/exp.h | 8 ++--- src/devices/bus/ql/kempston_di.cpp | 4 +-- src/devices/bus/ql/kempston_di.h | 4 +-- src/devices/bus/ql/miracle_gold_card.cpp | 4 +-- src/devices/bus/ql/miracle_gold_card.h | 4 +-- src/devices/bus/ql/miracle_hd.cpp | 4 +-- src/devices/bus/ql/miracle_hd.h | 4 +-- src/devices/bus/ql/mp_fdi.cpp | 4 +-- src/devices/bus/ql/mp_fdi.h | 4 +-- src/devices/bus/ql/opd_basic_master.cpp | 4 +-- src/devices/bus/ql/opd_basic_master.h | 4 +-- src/devices/bus/ql/pcml_qdisk.cpp | 4 +-- src/devices/bus/ql/pcml_qdisk.h | 4 +-- src/devices/bus/ql/qubide.cpp | 4 +-- src/devices/bus/ql/qubide.h | 4 +-- src/devices/bus/ql/rom.h | 8 ++--- src/devices/bus/ql/sandy_superdisk.cpp | 4 +-- src/devices/bus/ql/sandy_superdisk.h | 4 +-- src/devices/bus/ql/sandy_superqboard.cpp | 4 +-- src/devices/bus/ql/sandy_superqboard.h | 4 +-- src/devices/bus/ql/std.cpp | 2 +- src/devices/bus/ql/std.h | 2 +- src/devices/bus/ql/trumpcard.cpp | 4 +-- src/devices/bus/ql/trumpcard.h | 4 +-- src/mame/drivers/compis.cpp | 40 ++++++++++++------------ src/mame/drivers/pofo.cpp | 12 +++---- src/mame/drivers/ql.cpp | 12 +++---- src/mame/machine/qimi.cpp | 6 ++-- src/mame/machine/qimi.h | 4 +-- 55 files changed, 204 insertions(+), 202 deletions(-) diff --git a/src/devices/bus/compis/graphics.h b/src/devices/bus/compis/graphics.h index c5b414d1fab..0f3f2b104b1 100644 --- a/src/devices/bus/compis/graphics.h +++ b/src/devices/bus/compis/graphics.h @@ -24,16 +24,16 @@ class compis_graphics_slot_device; class device_compis_graphics_card_interface : public device_slot_card_interface { public: - virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; } - virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; } - virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint16_t pcs3_r(address_space &space, offs_t offset) { return 0xff; } - virtual void pcs3_w(address_space &space, offs_t offset, uint16_t data) { } - virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) { return 0xff; } - virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint8_t dma_ack_r(address_space &space, offs_t offset) { return 0xff; } - virtual void dma_ack_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t mcs0_r(offs_t offset) { return 0xff; } + virtual void mcs0_w(offs_t offset, uint8_t data) { } + virtual uint8_t mcs1_r(offs_t offset) { return 0xff; } + virtual void mcs1_w(offs_t offset, uint8_t data) { } + virtual uint16_t pcs3_r(offs_t offset) { return 0xff; } + virtual void pcs3_w(offs_t offset, uint16_t data) { } + virtual uint8_t pcs6_6_r(offs_t offset) { return 0xff; } + virtual void pcs6_6_w(offs_t offset, uint8_t data) { } + virtual uint8_t dma_ack_r(offs_t offset) { return 0xff; } + virtual void dma_ack_w(offs_t offset, uint8_t data) { } protected: // construction/destruction @@ -64,16 +64,16 @@ public: auto drq() { return m_write_dma_request.bind(); } // computer interface - DECLARE_READ8_MEMBER( mcs0_r ) { return m_card ? m_card->mcs0_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( mcs0_w ) { if (m_card) m_card->mcs0_w(space, offset, data); } - DECLARE_READ8_MEMBER( mcs1_r ) { return m_card ? m_card->mcs1_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( mcs1_w ) { if (m_card) m_card->mcs1_w(space, offset, data); } - DECLARE_READ16_MEMBER( pcs3_r ) { return m_card ? m_card->pcs3_r(space, offset) : 0xff; } - DECLARE_WRITE16_MEMBER( pcs3_w ) { if (m_card) m_card->pcs3_w(space, offset, data); } - DECLARE_READ8_MEMBER( pcs6_6_r ) { return m_card ? m_card->pcs6_6_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( pcs6_6_w ) { if (m_card) m_card->pcs6_6_w(space, offset, data); } - DECLARE_READ8_MEMBER( dma_ack_r ) { return m_card ? m_card->dma_ack_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( dma_ack_w ) { if (m_card) m_card->dma_ack_w(space, offset, data); } + uint8_t mcs0_r(offs_t offset) { return m_card ? m_card->mcs0_r(offset) : 0xff; } + void mcs0_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs0_w(offset, data); } + uint8_t mcs1_r(offs_t offset) { return m_card ? m_card->mcs1_r(offset) : 0xff; } + void mcs1_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs1_w(offset, data); } + uint8_t pcs3_r(offs_t offset) { return m_card ? m_card->pcs3_r(offset) : 0xff; } + void pcs3_w(offs_t offset, uint8_t data) { if (m_card) m_card->pcs3_w(offset, data); } + uint8_t pcs6_6_r(offs_t offset) { return m_card ? m_card->pcs6_6_r(offset) : 0xff; } + void pcs6_6_w(offs_t offset, uint8_t data) { if (m_card) m_card->pcs6_6_w(offset, data); } + uint8_t dma_ack_r(offs_t offset) { return m_card ? m_card->dma_ack_r(offset) : 0xff; } + void dma_ack_w(offs_t offset, uint8_t data) { if (m_card) m_card->dma_ack_w(offset, data); } // card interface DECLARE_WRITE_LINE_MEMBER( dma_request_w ) { m_write_dma_request(state); } diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp index e9898709097..3c1a5fe53be 100644 --- a/src/devices/bus/compis/hrg.cpp +++ b/src/devices/bus/compis/hrg.cpp @@ -165,12 +165,12 @@ void compis_hrg_device::device_reset() // pcs6_6_r - //------------------------------------------------- -uint8_t compis_hrg_device::pcs6_6_r(address_space &space, offs_t offset) +uint8_t compis_hrg_device::pcs6_6_r(offs_t offset) { uint8_t data = 0xff; if (offset < 2) - data = m_crtc->read(space, offset & 0x01); + data = m_crtc->read(machine().dummy_space(), offset & 0x01); else // monochrome only, hblank? vblank? if(offset == 2) @@ -202,10 +202,10 @@ uint8_t compis_hrg_device::pcs6_6_r(address_space &space, offs_t offset) // pcs6_6_w - //------------------------------------------------- -void compis_hrg_device::pcs6_6_w(address_space &space, offs_t offset, uint8_t data) +void compis_hrg_device::pcs6_6_w(offs_t offset, uint8_t data) { //logerror("%s PCS 6:6 write %04x : %02x\n", machine().describe_context(), offset, data); // 0x336 is likely the color plane register - if (offset < 2) m_crtc->write(space, offset & 0x01, data); + if (offset < 2) m_crtc->write(machine().dummy_space(), offset & 0x01, data); } diff --git a/src/devices/bus/compis/hrg.h b/src/devices/bus/compis/hrg.h index c48830be10c..98ef784df14 100644 --- a/src/devices/bus/compis/hrg.h +++ b/src/devices/bus/compis/hrg.h @@ -41,8 +41,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_compis_graphics_card_interface overrides - virtual uint8_t pcs6_6_r(address_space &space, offs_t offset) override; - virtual void pcs6_6_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t pcs6_6_r(offs_t offset) override; + virtual void pcs6_6_w(offs_t offset, uint8_t data) override; required_device m_crtc; required_device m_palette; diff --git a/src/devices/bus/isbx/compis_fdc.cpp b/src/devices/bus/isbx/compis_fdc.cpp index e1d464a37c2..86e15584e8d 100644 --- a/src/devices/bus/isbx/compis_fdc.cpp +++ b/src/devices/bus/isbx/compis_fdc.cpp @@ -106,14 +106,14 @@ void compis_fdc_device::device_reset() // mcs0_r - chip select 0 read //------------------------------------------------- -uint8_t compis_fdc_device::mcs0_r(address_space &space, offs_t offset) +uint8_t compis_fdc_device::mcs0_r(offs_t offset) { uint8_t data = 0xff; switch (BIT(offset, 0)) { - case 0: data = m_fdc->msr_r(space, 0); break; - case 1: data = m_fdc->fifo_r(space, 0); break; + case 0: data = m_fdc->msr_r(machine().dummy_space(), 0); break; + case 1: data = m_fdc->fifo_r(machine().dummy_space(), 0); break; } return data; @@ -124,11 +124,11 @@ uint8_t compis_fdc_device::mcs0_r(address_space &space, offs_t offset) // mcs0_w - chip select 0 write //------------------------------------------------- -void compis_fdc_device::mcs0_w(address_space &space, offs_t offset, uint8_t data) +void compis_fdc_device::mcs0_w(offs_t offset, uint8_t data) { switch (BIT(offset, 0)) { - case 1: m_fdc->fifo_w(space, 0, data); break; + case 1: m_fdc->fifo_w(machine().dummy_space(), 0, data); break; } } @@ -137,7 +137,7 @@ void compis_fdc_device::mcs0_w(address_space &space, offs_t offset, uint8_t data // mdack_r - DMA acknowledge read //------------------------------------------------- -uint8_t compis_fdc_device::mdack_r(address_space &space, offs_t offset) +uint8_t compis_fdc_device::mdack_r(offs_t offset) { return m_fdc->dma_r(); } @@ -147,7 +147,7 @@ uint8_t compis_fdc_device::mdack_r(address_space &space, offs_t offset) // mdack_w - DMA acknowledge write //------------------------------------------------- -void compis_fdc_device::mdack_w(address_space &space, offs_t offset, uint8_t data) +void compis_fdc_device::mdack_w(offs_t offset, uint8_t data) { m_fdc->dma_w(data); } diff --git a/src/devices/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h index 7f33cdd1160..af1d71a3af2 100644 --- a/src/devices/bus/isbx/compis_fdc.h +++ b/src/devices/bus/isbx/compis_fdc.h @@ -40,10 +40,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_isbx_card_interface overrides - virtual uint8_t mcs0_r(address_space &space, offs_t offset) override; - virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override; - virtual uint8_t mdack_r(address_space &space, offs_t offset) override; - virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t mcs0_r(offs_t offset) override; + virtual void mcs0_w(offs_t offset, uint8_t data) override; + virtual uint8_t mdack_r(offs_t offset) override; + virtual void mdack_w(offs_t offset, uint8_t data) override; virtual void opt0_w(int state) override; virtual void opt1_w(int state) override; diff --git a/src/devices/bus/isbx/isbc_218a.cpp b/src/devices/bus/isbx/isbc_218a.cpp index 9b142fa95ae..e7380cf075b 100644 --- a/src/devices/bus/isbx/isbc_218a.cpp +++ b/src/devices/bus/isbx/isbc_218a.cpp @@ -111,14 +111,14 @@ void isbc_218a_device::device_reset() // mcs0_r - chip select 0 read //------------------------------------------------- -uint8_t isbc_218a_device::mcs0_r(address_space &space, offs_t offset) +uint8_t isbc_218a_device::mcs0_r(offs_t offset) { uint8_t data = 0xff; switch (BIT(offset, 0)) { - case 0: data = m_fdc->msr_r(space, 0); break; - case 1: data = m_fdc->fifo_r(space, 0); break; + case 0: data = m_fdc->msr_r(machine().dummy_space(), 0); break; + case 1: data = m_fdc->fifo_r(machine().dummy_space(), 0); break; } return data; @@ -129,11 +129,11 @@ uint8_t isbc_218a_device::mcs0_r(address_space &space, offs_t offset) // mcs0_w - chip select 0 write //------------------------------------------------- -void isbc_218a_device::mcs0_w(address_space &space, offs_t offset, uint8_t data) +void isbc_218a_device::mcs0_w(offs_t offset, uint8_t data) { switch (BIT(offset, 0)) { - case 1: m_fdc->fifo_w(space, 0, data); break; + case 1: m_fdc->fifo_w(machine().dummy_space(), 0, data); break; } } @@ -142,7 +142,7 @@ void isbc_218a_device::mcs0_w(address_space &space, offs_t offset, uint8_t data) // mcs1_r - chip select 1 read //------------------------------------------------- -uint8_t isbc_218a_device::mcs1_r(address_space &space, offs_t offset) +uint8_t isbc_218a_device::mcs1_r(offs_t offset) { uint8_t data = 0xff; @@ -159,7 +159,7 @@ uint8_t isbc_218a_device::mcs1_r(address_space &space, offs_t offset) // mcs1_w - chip select 1 write //------------------------------------------------- -void isbc_218a_device::mcs1_w(address_space &space, offs_t offset, uint8_t data) +void isbc_218a_device::mcs1_w(offs_t offset, uint8_t data) { switch (offset) { @@ -182,7 +182,7 @@ void isbc_218a_device::mcs1_w(address_space &space, offs_t offset, uint8_t data) // mdack_r - DMA acknowledge read //------------------------------------------------- -uint8_t isbc_218a_device::mdack_r(address_space &space, offs_t offset) +uint8_t isbc_218a_device::mdack_r(offs_t offset) { return m_fdc->dma_r(); } @@ -192,7 +192,7 @@ uint8_t isbc_218a_device::mdack_r(address_space &space, offs_t offset) // mdack_w - DMA acknowledge write //------------------------------------------------- -void isbc_218a_device::mdack_w(address_space &space, offs_t offset, uint8_t data) +void isbc_218a_device::mdack_w(offs_t offset, uint8_t data) { m_fdc->dma_w(data); } diff --git a/src/devices/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h index 5d0a617e989..bdf37c52806 100644 --- a/src/devices/bus/isbx/isbc_218a.h +++ b/src/devices/bus/isbx/isbc_218a.h @@ -40,12 +40,12 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_isbx_card_interface overrides - virtual uint8_t mcs0_r(address_space &space, offs_t offset) override; - virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) override; - virtual uint8_t mcs1_r(address_space &space, offs_t offset) override; - virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) override; - virtual uint8_t mdack_r(address_space &space, offs_t offset) override; - virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t mcs0_r(offs_t offset) override; + virtual void mcs0_w(offs_t offset, uint8_t data) override; + virtual uint8_t mcs1_r(offs_t offset) override; + virtual void mcs1_w(offs_t offset, uint8_t data) override; + virtual uint8_t mdack_r(offs_t offset) override; + virtual void mdack_w(offs_t offset, uint8_t data) override; virtual void opt0_w(int state) override; private: diff --git a/src/devices/bus/isbx/isbx.h b/src/devices/bus/isbx/isbx.h index d62d9515fe1..0535e461cd7 100644 --- a/src/devices/bus/isbx/isbx.h +++ b/src/devices/bus/isbx/isbx.h @@ -47,12 +47,12 @@ class isbx_slot_device; class device_isbx_card_interface : public device_slot_card_interface { public: - virtual uint8_t mcs0_r(address_space &space, offs_t offset) { return 0xff; } - virtual void mcs0_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint8_t mcs1_r(address_space &space, offs_t offset) { return 0xff; } - virtual void mcs1_w(address_space &space, offs_t offset, uint8_t data) { } - virtual uint8_t mdack_r(address_space &space, offs_t offset) { return 0xff; } - virtual void mdack_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t mcs0_r(offs_t offset) { return 0xff; } + virtual void mcs0_w(offs_t offset, uint8_t data) { } + virtual uint8_t mcs1_r(offs_t offset) { return 0xff; } + virtual void mcs1_w(offs_t offset, uint8_t data) { } + virtual uint8_t mdack_r(offs_t offset) { return 0xff; } + virtual void mdack_w(offs_t offset, uint8_t data) { } virtual int opt0_r() { return 1; } virtual void opt0_w(int state) { } virtual int opt1_r() { return 1; } @@ -92,12 +92,12 @@ public: auto mwait() { return m_write_mwait.bind(); } // computer interface - DECLARE_READ8_MEMBER( mcs0_r ) { return m_card ? m_card->mcs0_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( mcs0_w ) { if (m_card) m_card->mcs0_w(space, offset, data); } - DECLARE_READ8_MEMBER( mcs1_r ) { return m_card ? m_card->mcs1_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( mcs1_w ) { if (m_card) m_card->mcs1_w(space, offset, data); } - DECLARE_READ8_MEMBER( mdack_r ) { return m_card ? m_card->mdack_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( mdack_w ) { if (m_card) m_card->mdack_w(space, offset, data); } + uint8_t mcs0_r(offs_t offset) { return m_card ? m_card->mcs0_r(offset) : 0xff; } + void mcs0_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs0_w(offset, data); } + uint8_t mcs1_r(offs_t offset) { return m_card ? m_card->mcs1_r(offset) : 0xff; } + void mcs1_w(offs_t offset, uint8_t data) { if (m_card) m_card->mcs1_w(offset, data); } + uint8_t mdack_r(offs_t offset) { return m_card ? m_card->mdack_r(offset) : 0xff; } + void mdack_w(offs_t offset, uint8_t data) { if (m_card) m_card->mdack_w(offset, data); } DECLARE_READ_LINE_MEMBER( mpst_r ) { return m_card == nullptr; } DECLARE_READ_LINE_MEMBER( opt0_r ) { return m_card ? m_card->opt0_r() : 1; } DECLARE_WRITE_LINE_MEMBER( opt0_w ) { if (m_card) m_card->opt0_w(state); } diff --git a/src/devices/bus/pofo/ccm.h b/src/devices/bus/pofo/ccm.h index dbbaec11b8c..42bfcb4356d 100644 --- a/src/devices/bus/pofo/ccm.h +++ b/src/devices/bus/pofo/ccm.h @@ -75,8 +75,8 @@ class device_portfolio_memory_card_slot_interface : public device_slot_card_inte public: virtual bool cdet() { return 1; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset) { return 0xff; } - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t nrdi_r(offs_t offset) { return 0xff; } + virtual void nwri_w(offs_t offset, uint8_t data) { } protected: // construction/destruction @@ -112,8 +112,8 @@ public: // computer interface bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; } - DECLARE_READ8_MEMBER( nrdi_r ) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset) : 0xff; } - DECLARE_WRITE8_MEMBER( nwri_w ) { if (m_card != nullptr) m_card->nwri_w(space, offset, data); } + uint8_t nrdi_r(offs_t offset) { return (m_card != nullptr) ? m_card->nrdi_r(offset) : 0xff; } + void nwri_w(offs_t offset, uint8_t data) { if (m_card != nullptr) m_card->nwri_w(offset, data); } protected: // device-level overrides diff --git a/src/devices/bus/pofo/exp.h b/src/devices/bus/pofo/exp.h index 817568e764e..2206d5af2fe 100644 --- a/src/devices/bus/pofo/exp.h +++ b/src/devices/bus/pofo/exp.h @@ -72,8 +72,8 @@ public: virtual uint8_t iack_r() { return 0xff; } virtual uint8_t eack_r() { return 0xff; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; } - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { } + virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return data; } + virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { } virtual WRITE_LINE_MEMBER( iint_w ) { } @@ -119,8 +119,8 @@ public: uint8_t iack_r() { return (m_card != nullptr) ? m_card->iack_r() : 0xff; }; uint8_t eack_r() { return (m_card != nullptr) ? m_card->eack_r() : 0xff; }; - uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset, data, iom, bcom, ncc1) : data; } - void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(space, offset, data, iom, bcom, ncc1); } + uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(offset, data, iom, bcom, ncc1) : data; } + void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(offset, data, iom, bcom, ncc1); } WRITE_LINE_MEMBER( iint_w ) { if (m_card != nullptr) m_card->iint_w(state); } diff --git a/src/devices/bus/pofo/hpc101.cpp b/src/devices/bus/pofo/hpc101.cpp index f9127afa47e..d62f1002f7d 100644 --- a/src/devices/bus/pofo/hpc101.cpp +++ b/src/devices/bus/pofo/hpc101.cpp @@ -99,7 +99,7 @@ void pofo_hpc101_device::device_reset() // nrdi_r - read //------------------------------------------------- -uint8_t pofo_hpc101_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc101_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { @@ -122,7 +122,7 @@ uint8_t pofo_hpc101_device::nrdi_r(address_space &space, offs_t offset, uint8_t // nwri_w - write //------------------------------------------------- -void pofo_hpc101_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc101_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { diff --git a/src/devices/bus/pofo/hpc101.h b/src/devices/bus/pofo/hpc101.h index 797f95c32d3..fa18b5d6d4d 100644 --- a/src/devices/bus/pofo/hpc101.h +++ b/src/devices/bus/pofo/hpc101.h @@ -40,8 +40,8 @@ protected: // device_portfolio_expansion_slot_interface overrides bool pdet() override { return 1; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; private: required_device m_ppi; diff --git a/src/devices/bus/pofo/hpc102.cpp b/src/devices/bus/pofo/hpc102.cpp index 298b36c7cbe..42bc8b550fe 100644 --- a/src/devices/bus/pofo/hpc102.cpp +++ b/src/devices/bus/pofo/hpc102.cpp @@ -99,7 +99,7 @@ uint8_t pofo_hpc102_device::eack_r() // nrdi_r - read //------------------------------------------------- -uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc102_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { @@ -110,7 +110,7 @@ uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t if (!(offset & 0x08)) { - data = m_uart->ins8250_r(space, offset & 0x07); + data = m_uart->ins8250_r(machine().dummy_space(), offset & 0x07); } } @@ -122,7 +122,7 @@ uint8_t pofo_hpc102_device::nrdi_r(address_space &space, offs_t offset, uint8_t // nwri_w - write //------------------------------------------------- -void pofo_hpc102_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc102_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { if (!bcom) { @@ -133,7 +133,7 @@ void pofo_hpc102_device::nwri_w(address_space &space, offs_t offset, uint8_t dat if (!(offset & 0x08)) { - m_uart->ins8250_w(space, offset & 0x07, data); + m_uart->ins8250_w(machine().dummy_space(), offset & 0x07, data); } } } diff --git a/src/devices/bus/pofo/hpc102.h b/src/devices/bus/pofo/hpc102.h index bfe91e9f459..c7168b12787 100644 --- a/src/devices/bus/pofo/hpc102.h +++ b/src/devices/bus/pofo/hpc102.h @@ -42,8 +42,8 @@ protected: virtual uint8_t eack_r() override; - virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; private: required_device m_uart; diff --git a/src/devices/bus/pofo/hpc104.cpp b/src/devices/bus/pofo/hpc104.cpp index c5943cbd72a..a6e66f13da8 100644 --- a/src/devices/bus/pofo/hpc104.cpp +++ b/src/devices/bus/pofo/hpc104.cpp @@ -147,15 +147,15 @@ void pofo_hpc104_device::device_reset() // nrdi_r - read //------------------------------------------------- -uint8_t pofo_hpc104_device::nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +uint8_t pofo_hpc104_device::nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { - data = m_exp->nrdi_r(space, offset, data, iom, bcom, m_ncc1_out || ncc1); + data = m_exp->nrdi_r(offset, data, iom, bcom, m_ncc1_out || ncc1); if (!iom) { if (!(!m_ncc1_out || ncc1)) { - data = m_ccm->nrdi_r(space, offset & 0x1ffff); + data = m_ccm->nrdi_r(offset & 0x1ffff); if (LOG) logerror("%s %s CCM1 read %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data); } @@ -184,9 +184,9 @@ uint8_t pofo_hpc104_device::nrdi_r(address_space &space, offs_t offset, uint8_t // nwri_w - write //------------------------------------------------- -void pofo_hpc104_device::nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) +void pofo_hpc104_device::nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) { - m_exp->nwri_w(space, offset, data, iom, bcom, m_ncc1_out || ncc1); + m_exp->nwri_w(offset, data, iom, bcom, m_ncc1_out || ncc1); if (!iom) { @@ -194,7 +194,7 @@ void pofo_hpc104_device::nwri_w(address_space &space, offs_t offset, uint8_t dat { if (LOG) logerror("%s %s CCM1 write %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data); - m_ccm->nwri_w(space, offset & 0x1ffff, data); + m_ccm->nwri_w(offset & 0x1ffff, data); } if (m_sw1) diff --git a/src/devices/bus/pofo/hpc104.h b/src/devices/bus/pofo/hpc104.h index f863a45f39b..042bece210e 100644 --- a/src/devices/bus/pofo/hpc104.h +++ b/src/devices/bus/pofo/hpc104.h @@ -50,8 +50,8 @@ protected: // device_portfolio_expansion_slot_interface overrides virtual bool nmd1() override { return m_ccm->cdet_r(); } - virtual uint8_t nrdi_r(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual uint8_t nrdi_r(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; + virtual void nwri_w(offs_t offset, uint8_t data, bool iom, bool bcom, bool ncc1) override; virtual WRITE_LINE_MEMBER( iint_w ) override { m_exp->iint_w(state); } diff --git a/src/devices/bus/pofo/ram.cpp b/src/devices/bus/pofo/ram.cpp index 6ef861a0b5d..5498a9b8c32 100644 --- a/src/devices/bus/pofo/ram.cpp +++ b/src/devices/bus/pofo/ram.cpp @@ -48,7 +48,7 @@ void portfolio_ram_card_device::device_start() // nrdi_r - read //------------------------------------------------- -uint8_t portfolio_ram_card_device::nrdi_r(address_space &space, offs_t offset) +uint8_t portfolio_ram_card_device::nrdi_r(offs_t offset) { return m_nvram[offset]; } @@ -58,7 +58,7 @@ uint8_t portfolio_ram_card_device::nrdi_r(address_space &space, offs_t offset) // nwri_w - write //------------------------------------------------- -void portfolio_ram_card_device::nwri_w(address_space &space, offs_t offset, uint8_t data) +void portfolio_ram_card_device::nwri_w(offs_t offset, uint8_t data) { m_nvram[offset] = data; } diff --git a/src/devices/bus/pofo/ram.h b/src/devices/bus/pofo/ram.h index 9d126b51a2c..2c19f807816 100644 --- a/src/devices/bus/pofo/ram.h +++ b/src/devices/bus/pofo/ram.h @@ -42,8 +42,8 @@ protected: // device_portfolio_memory_card_slot_interface overrides virtual bool cdet() override { return 0; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset) override; - virtual void nwri_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t nrdi_r(offs_t offset) override; + virtual void nwri_w(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/pofo/rom.cpp b/src/devices/bus/pofo/rom.cpp index 8155444783a..ac336eb0b77 100644 --- a/src/devices/bus/pofo/rom.cpp +++ b/src/devices/bus/pofo/rom.cpp @@ -46,7 +46,7 @@ void portfolio_rom_card_device::device_start() // nrdi_r - read //------------------------------------------------- -uint8_t portfolio_rom_card_device::nrdi_r(address_space &space, offs_t offset) +uint8_t portfolio_rom_card_device::nrdi_r(offs_t offset) { return m_rom[offset]; } diff --git a/src/devices/bus/pofo/rom.h b/src/devices/bus/pofo/rom.h index eab0ff1fde4..6df19402a36 100644 --- a/src/devices/bus/pofo/rom.h +++ b/src/devices/bus/pofo/rom.h @@ -35,7 +35,7 @@ protected: // device_portfolio_memory_card_slot_interface overrides virtual bool cdet() override { return 0; } - virtual uint8_t nrdi_r(address_space &space, offs_t offset) override; + virtual uint8_t nrdi_r(offs_t offset) override; }; diff --git a/src/devices/bus/ql/cst_q_plus4.cpp b/src/devices/bus/ql/cst_q_plus4.cpp index 1ff79655924..96269dc6ef5 100644 --- a/src/devices/bus/ql/cst_q_plus4.cpp +++ b/src/devices/bus/ql/cst_q_plus4.cpp @@ -106,17 +106,17 @@ void cst_q_plus4_device::device_start() // read - //------------------------------------------------- -uint8_t cst_q_plus4_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cst_q_plus4_device::read(offs_t offset, uint8_t data) { if (offset >= 0xc000 && offset < 0xc200) { data = m_rom->base()[offset & 0x1fff]; } - data = m_exp1->read(space, offset, data); - data = m_exp2->read(space, offset, data); - data = m_exp3->read(space, offset, data); - data = m_exp4->read(space, offset, data); + data = m_exp1->read(offset, data); + data = m_exp2->read(offset, data); + data = m_exp3->read(offset, data); + data = m_exp4->read(offset, data); return data; } @@ -126,10 +126,10 @@ uint8_t cst_q_plus4_device::read(address_space &space, offs_t offset, uint8_t da // write - //------------------------------------------------- -void cst_q_plus4_device::write(address_space &space, offs_t offset, uint8_t data) +void cst_q_plus4_device::write(offs_t offset, uint8_t data) { - m_exp1->write(space, offset, data); - m_exp2->write(space, offset, data); - m_exp3->write(space, offset, data); - m_exp4->write(space, offset, data); + m_exp1->write(offset, data); + m_exp2->write(offset, data); + m_exp3->write(offset, data); + m_exp4->write(offset, data); } diff --git a/src/devices/bus/ql/cst_q_plus4.h b/src/devices/bus/ql/cst_q_plus4.h index 0eff45e3840..4c8ea616f51 100644 --- a/src/devices/bus/ql/cst_q_plus4.h +++ b/src/devices/bus/ql/cst_q_plus4.h @@ -37,8 +37,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; private: DECLARE_WRITE_LINE_MEMBER( exp1_extintl_w ) { m_exp1_extinl = state; update_extintl(); } diff --git a/src/devices/bus/ql/cst_qdisc.cpp b/src/devices/bus/ql/cst_qdisc.cpp index a3940d41b1a..2fe46dc4f5e 100644 --- a/src/devices/bus/ql/cst_qdisc.cpp +++ b/src/devices/bus/ql/cst_qdisc.cpp @@ -71,7 +71,7 @@ void cst_ql_disc_interface_device::device_start() // read - //------------------------------------------------- -uint8_t cst_ql_disc_interface_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cst_ql_disc_interface_device::read(offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t cst_ql_disc_interface_device::read(address_space &space, offs_t offset, // write - //------------------------------------------------- -void cst_ql_disc_interface_device::write(address_space &space, offs_t offset, uint8_t data) +void cst_ql_disc_interface_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/cst_qdisc.h b/src/devices/bus/ql/cst_qdisc.h index 4bbcbd0913f..fdd492f1230 100644 --- a/src/devices/bus/ql/cst_qdisc.h +++ b/src/devices/bus/ql/cst_qdisc.h @@ -36,8 +36,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/cumana_fdi.cpp b/src/devices/bus/ql/cumana_fdi.cpp index a8d1b7c376b..204dea12608 100644 --- a/src/devices/bus/ql/cumana_fdi.cpp +++ b/src/devices/bus/ql/cumana_fdi.cpp @@ -71,7 +71,7 @@ void cumana_floppy_disk_interface_device::device_start() // read - //------------------------------------------------- -uint8_t cumana_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t cumana_floppy_disk_interface_device::read(offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t cumana_floppy_disk_interface_device::read(address_space &space, offs_t o // write - //------------------------------------------------- -void cumana_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) +void cumana_floppy_disk_interface_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/cumana_fdi.h b/src/devices/bus/ql/cumana_fdi.h index a0da6952cab..2080251fcf3 100644 --- a/src/devices/bus/ql/cumana_fdi.h +++ b/src/devices/bus/ql/cumana_fdi.h @@ -35,8 +35,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/exp.h b/src/devices/bus/ql/exp.h index 9f6bd51eb5c..43e8a7b77d5 100644 --- a/src/devices/bus/ql/exp.h +++ b/src/devices/bus/ql/exp.h @@ -62,8 +62,8 @@ class device_ql_expansion_card_interface : public device_slot_card_interface public: virtual void romoeh_w(int state) { m_romoeh = state; } - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) { return data; } - virtual void write(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t read(offs_t offset, uint8_t data) { return data; } + virtual void write(offs_t offset, uint8_t data) { } protected: // construction/destruction @@ -100,8 +100,8 @@ public: auto extintl_wr_callback() { return m_write_extintl.bind(); } // computer interface - uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; } - void write(address_space &space, offs_t offset, uint8_t data) { if (m_card) m_card->write(space, offset, data); } + uint8_t read(offs_t offset, uint8_t data) { if (m_card) data = m_card->read(offset, data); return data; } + void write(offs_t offset, uint8_t data) { if (m_card) m_card->write(offset, data); } DECLARE_WRITE_LINE_MEMBER( romoeh_w ) { if (m_card) m_card->romoeh_w(state); } // card interface diff --git a/src/devices/bus/ql/kempston_di.cpp b/src/devices/bus/ql/kempston_di.cpp index 599e9bebcc7..1535f171ff6 100644 --- a/src/devices/bus/ql/kempston_di.cpp +++ b/src/devices/bus/ql/kempston_di.cpp @@ -69,7 +69,7 @@ void kempston_disk_interface_device::device_start() // read - //------------------------------------------------- -uint8_t kempston_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t kempston_disk_interface_device::read(offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t kempston_disk_interface_device::read(address_space &space, offs_t offset // write - //------------------------------------------------- -void kempston_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) +void kempston_disk_interface_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/kempston_di.h b/src/devices/bus/ql/kempston_di.h index e37c3d7f6b7..cc75a5fe0fc 100644 --- a/src/devices/bus/ql/kempston_di.h +++ b/src/devices/bus/ql/kempston_di.h @@ -35,8 +35,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/miracle_gold_card.cpp b/src/devices/bus/ql/miracle_gold_card.cpp index a7acd24e2d7..bf6be7fe136 100644 --- a/src/devices/bus/ql/miracle_gold_card.cpp +++ b/src/devices/bus/ql/miracle_gold_card.cpp @@ -71,7 +71,7 @@ void miracle_gold_card_device::device_start() // read - //------------------------------------------------- -uint8_t miracle_gold_card_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t miracle_gold_card_device::read(offs_t offset, uint8_t data) { return data; } @@ -81,6 +81,6 @@ uint8_t miracle_gold_card_device::read(address_space &space, offs_t offset, uint // write - //------------------------------------------------- -void miracle_gold_card_device::write(address_space &space, offs_t offset, uint8_t data) +void miracle_gold_card_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/miracle_gold_card.h b/src/devices/bus/ql/miracle_gold_card.h index feea55de78c..7ed9d0e2eb8 100644 --- a/src/devices/bus/ql/miracle_gold_card.h +++ b/src/devices/bus/ql/miracle_gold_card.h @@ -35,8 +35,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/miracle_hd.cpp b/src/devices/bus/ql/miracle_hd.cpp index 146945737a2..f2f16715c72 100644 --- a/src/devices/bus/ql/miracle_hd.cpp +++ b/src/devices/bus/ql/miracle_hd.cpp @@ -69,7 +69,7 @@ void miracle_hard_disk_device::device_start() // read - //------------------------------------------------- -uint8_t miracle_hard_disk_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t miracle_hard_disk_device::read(offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t miracle_hard_disk_device::read(address_space &space, offs_t offset, uint // write - //------------------------------------------------- -void miracle_hard_disk_device::write(address_space &space, offs_t offset, uint8_t data) +void miracle_hard_disk_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/miracle_hd.h b/src/devices/bus/ql/miracle_hd.h index 0bcd260bb87..983dce66f8b 100644 --- a/src/devices/bus/ql/miracle_hd.h +++ b/src/devices/bus/ql/miracle_hd.h @@ -36,8 +36,8 @@ protected: virtual void device_start() override; // device_ql_rom_cartridge_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/mp_fdi.cpp b/src/devices/bus/ql/mp_fdi.cpp index 06324a4be67..4e2a90ce52d 100644 --- a/src/devices/bus/ql/mp_fdi.cpp +++ b/src/devices/bus/ql/mp_fdi.cpp @@ -69,7 +69,7 @@ void micro_peripherals_floppy_disk_interface_device::device_start() // read - //------------------------------------------------- -uint8_t micro_peripherals_floppy_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t micro_peripherals_floppy_disk_interface_device::read(offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t micro_peripherals_floppy_disk_interface_device::read(address_space &spac // write - //------------------------------------------------- -void micro_peripherals_floppy_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) +void micro_peripherals_floppy_disk_interface_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/mp_fdi.h b/src/devices/bus/ql/mp_fdi.h index 9939e540ba7..3fc9d9d8c83 100644 --- a/src/devices/bus/ql/mp_fdi.h +++ b/src/devices/bus/ql/mp_fdi.h @@ -34,8 +34,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/opd_basic_master.cpp b/src/devices/bus/ql/opd_basic_master.cpp index 015fca91a37..b3b6f18dc19 100644 --- a/src/devices/bus/ql/opd_basic_master.cpp +++ b/src/devices/bus/ql/opd_basic_master.cpp @@ -67,7 +67,7 @@ void opd_basic_master_device::device_start() // read - //------------------------------------------------- -uint8_t opd_basic_master_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t opd_basic_master_device::read(offs_t offset, uint8_t data) { return data; } @@ -77,6 +77,6 @@ uint8_t opd_basic_master_device::read(address_space &space, offs_t offset, uint8 // write - //------------------------------------------------- -void opd_basic_master_device::write(address_space &space, offs_t offset, uint8_t data) +void opd_basic_master_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/opd_basic_master.h b/src/devices/bus/ql/opd_basic_master.h index d22b50eff8c..3592823dd2b 100644 --- a/src/devices/bus/ql/opd_basic_master.h +++ b/src/devices/bus/ql/opd_basic_master.h @@ -35,8 +35,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/pcml_qdisk.cpp b/src/devices/bus/ql/pcml_qdisk.cpp index 7b3d7b25e6c..ed92c569509 100644 --- a/src/devices/bus/ql/pcml_qdisk.cpp +++ b/src/devices/bus/ql/pcml_qdisk.cpp @@ -69,7 +69,7 @@ void pcml_q_disk_interface_device::device_start() // read - //------------------------------------------------- -uint8_t pcml_q_disk_interface_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t pcml_q_disk_interface_device::read(offs_t offset, uint8_t data) { return data; } @@ -79,6 +79,6 @@ uint8_t pcml_q_disk_interface_device::read(address_space &space, offs_t offset, // write - //------------------------------------------------- -void pcml_q_disk_interface_device::write(address_space &space, offs_t offset, uint8_t data) +void pcml_q_disk_interface_device::write(offs_t offset, uint8_t data) { } diff --git a/src/devices/bus/ql/pcml_qdisk.h b/src/devices/bus/ql/pcml_qdisk.h index e9904df6eb0..cedd3f953f7 100644 --- a/src/devices/bus/ql/pcml_qdisk.h +++ b/src/devices/bus/ql/pcml_qdisk.h @@ -35,8 +35,8 @@ protected: virtual void device_start() override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/qubide.cpp b/src/devices/bus/ql/qubide.cpp index e88493048d9..10583d28023 100644 --- a/src/devices/bus/ql/qubide.cpp +++ b/src/devices/bus/ql/qubide.cpp @@ -202,7 +202,7 @@ void qubide_device::device_reset() // read - //------------------------------------------------- -uint8_t qubide_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t qubide_device::read(offs_t offset, uint8_t data) { if ((offset & 0xfc000) == m_base) { @@ -247,7 +247,7 @@ uint8_t qubide_device::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -void qubide_device::write(address_space &space, offs_t offset, uint8_t data) +void qubide_device::write(offs_t offset, uint8_t data) { if ((offset & 0xfc000) == m_base) { diff --git a/src/devices/bus/ql/qubide.h b/src/devices/bus/ql/qubide.h index 680e5e6b655..5e1ac6d1860 100644 --- a/src/devices/bus/ql/qubide.h +++ b/src/devices/bus/ql/qubide.h @@ -39,8 +39,8 @@ protected: virtual ioport_constructor device_input_ports() const override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; private: required_device m_ata; diff --git a/src/devices/bus/ql/rom.h b/src/devices/bus/ql/rom.h index e337fb9f096..0c8ec4a6bca 100644 --- a/src/devices/bus/ql/rom.h +++ b/src/devices/bus/ql/rom.h @@ -50,8 +50,8 @@ public: virtual ~device_ql_rom_cartridge_card_interface(); virtual void romoeh_w(int state) { m_romoeh = state; } - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) { return data; } - virtual void write(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t read(offs_t offset, uint8_t data) { return data; } + virtual void write(offs_t offset, uint8_t data) { } protected: device_ql_rom_cartridge_card_interface(const machine_config &mconfig, device_t &device); @@ -86,8 +86,8 @@ public: ql_rom_cartridge_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); // computer interface - uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; } - void write(address_space &space, offs_t offset, uint8_t data) { if (m_card) m_card->write(space, offset, data); } + uint8_t read(offs_t offset, uint8_t data) { if (m_card) data = m_card->read(offset, data); return data; } + void write(offs_t offset, uint8_t data) { if (m_card) m_card->write(offset, data); } DECLARE_WRITE_LINE_MEMBER( romoeh_w ) { if (m_card) m_card->romoeh_w(state); } protected: diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp index 19ee4ebbc9c..1af96f2de81 100644 --- a/src/devices/bus/ql/sandy_superdisk.cpp +++ b/src/devices/bus/ql/sandy_superdisk.cpp @@ -149,7 +149,7 @@ void sandy_super_disk_device::device_reset() // read - //------------------------------------------------- -uint8_t sandy_super_disk_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t sandy_super_disk_device::read(offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -195,7 +195,7 @@ uint8_t sandy_super_disk_device::read(address_space &space, offs_t offset, uint8 // write - //------------------------------------------------- -void sandy_super_disk_device::write(address_space &space, offs_t offset, uint8_t data) +void sandy_super_disk_device::write(offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { diff --git a/src/devices/bus/ql/sandy_superdisk.h b/src/devices/bus/ql/sandy_superdisk.h index 1bc7192aad5..5a264272e12 100644 --- a/src/devices/bus/ql/sandy_superdisk.h +++ b/src/devices/bus/ql/sandy_superdisk.h @@ -41,8 +41,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; private: WRITE_LINE_MEMBER( busy_w ); diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp index 05ff550c47d..bc8f4c78478 100644 --- a/src/devices/bus/ql/sandy_superqboard.cpp +++ b/src/devices/bus/ql/sandy_superqboard.cpp @@ -285,7 +285,7 @@ void sandy_superqboard_device::device_reset() // read - //------------------------------------------------- -uint8_t sandy_superqboard_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t sandy_superqboard_device::read(offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { @@ -345,7 +345,7 @@ uint8_t sandy_superqboard_device::read(address_space &space, offs_t offset, uint // write - //------------------------------------------------- -void sandy_superqboard_device::write(address_space &space, offs_t offset, uint8_t data) +void sandy_superqboard_device::write(offs_t offset, uint8_t data) { if ((offset & 0xf0000) == 0xc0000) { diff --git a/src/devices/bus/ql/sandy_superqboard.h b/src/devices/bus/ql/sandy_superqboard.h index 94d2066020b..94bfe0c7dad 100644 --- a/src/devices/bus/ql/sandy_superqboard.h +++ b/src/devices/bus/ql/sandy_superqboard.h @@ -46,8 +46,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; private: WRITE_LINE_MEMBER( busy_w ); diff --git a/src/devices/bus/ql/std.cpp b/src/devices/bus/ql/std.cpp index 5e13a0ff32f..b1171c46336 100644 --- a/src/devices/bus/ql/std.cpp +++ b/src/devices/bus/ql/std.cpp @@ -47,7 +47,7 @@ void ql_standard_rom_cartridge_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t ql_standard_rom_cartridge_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t ql_standard_rom_cartridge_device::read(offs_t offset, uint8_t data) { if (m_romoeh && m_rom.bytes()) { diff --git a/src/devices/bus/ql/std.h b/src/devices/bus/ql/std.h index b1b4e404c4c..823c3a70008 100644 --- a/src/devices/bus/ql/std.h +++ b/src/devices/bus/ql/std.h @@ -32,7 +32,7 @@ protected: virtual void device_start() override; // device_ql_rom_cartridge_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp index bc515b7da9c..473fc9bb78e 100644 --- a/src/devices/bus/ql/trumpcard.cpp +++ b/src/devices/bus/ql/trumpcard.cpp @@ -167,7 +167,7 @@ void ql_trump_card_device::device_reset() // read - //------------------------------------------------- -uint8_t ql_trump_card_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t ql_trump_card_device::read(offs_t offset, uint8_t data) { if (offset >= 0xc000 && offset < 0x10000) { @@ -220,7 +220,7 @@ uint8_t ql_trump_card_device::read(address_space &space, offs_t offset, uint8_t // write - //------------------------------------------------- -void ql_trump_card_device::write(address_space &space, offs_t offset, uint8_t data) +void ql_trump_card_device::write(offs_t offset, uint8_t data) { if (offset >= 0x1c000 && offset <= 0x1c003) { diff --git a/src/devices/bus/ql/trumpcard.h b/src/devices/bus/ql/trumpcard.h index 4dc18ceccd4..d9926160928 100644 --- a/src/devices/bus/ql/trumpcard.h +++ b/src/devices/bus/ql/trumpcard.h @@ -42,8 +42,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_ql_expansion_card_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, uint8_t data) override; - virtual void write(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t read(offs_t offset, uint8_t data) override; + virtual void write(offs_t offset, uint8_t data) override; private: diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp index 54ac9883c88..18543289904 100644 --- a/src/mame/drivers/compis.cpp +++ b/src/mame/drivers/compis.cpp @@ -177,7 +177,7 @@ READ16_MEMBER( compis_state::pcs6_0_1_r ) } else { - return m_graphics->dma_ack_r(space, offset); + return m_graphics->dma_ack_r(offset); } } @@ -191,7 +191,7 @@ WRITE16_MEMBER( compis_state::pcs6_0_1_w ) } else { - m_graphics->dma_ack_w(space, offset, data); + m_graphics->dma_ack_w(offset, data); } } @@ -250,7 +250,7 @@ READ16_MEMBER( compis_state::pcs6_6_7_r ) { if (ACCESSING_BITS_0_7) { - return m_graphics->pcs6_6_r(space, offset); + return m_graphics->pcs6_6_r(offset); } else { @@ -265,7 +265,7 @@ WRITE16_MEMBER( compis_state::pcs6_6_7_w ) { if (ACCESSING_BITS_0_7) { - m_graphics->pcs6_6_w(space, offset, data); + m_graphics->pcs6_6_w(offset, data); } else { @@ -278,11 +278,11 @@ READ16_MEMBER( compis_state::pcs6_8_9_r ) { if (ACCESSING_BITS_0_7) { - return m_isbx0->mcs0_r(space, offset); + return m_isbx0->mcs0_r(offset); } else { - return m_isbx0->mcs1_r(space, offset) << 8; + return m_isbx0->mcs1_r(offset) << 8; } } @@ -290,11 +290,11 @@ WRITE16_MEMBER( compis_state::pcs6_8_9_w ) { if (ACCESSING_BITS_0_7) { - m_isbx0->mcs0_w(space, offset, data); + m_isbx0->mcs0_w(offset, data); } else { - m_isbx0->mcs1_w(space, offset, data >> 8); + m_isbx0->mcs1_w(offset, data >> 8); } } @@ -302,11 +302,11 @@ READ16_MEMBER( compis_state::pcs6_10_11_r ) { if (ACCESSING_BITS_0_7) { - return m_isbx0->mcs1_r(space, offset); + return m_isbx0->mcs1_r(offset); } else { - return m_isbx0->mdack_r(space, offset) << 8; + return m_isbx0->mdack_r(offset) << 8; } } @@ -314,11 +314,11 @@ WRITE16_MEMBER( compis_state::pcs6_10_11_w ) { if (ACCESSING_BITS_0_7) { - m_isbx0->mcs1_w(space, offset, data); + m_isbx0->mcs1_w(offset, data); } else { - m_isbx0->mdack_w(space, offset, data >> 8); + m_isbx0->mdack_w(offset, data >> 8); } } @@ -326,11 +326,11 @@ READ16_MEMBER( compis_state::pcs6_12_13_r ) { if (ACCESSING_BITS_0_7) { - return m_isbx1->mcs0_r(space, offset); + return m_isbx1->mcs0_r(offset); } else { - return m_isbx1->mcs1_r(space, offset) << 8; + return m_isbx1->mcs1_r(offset) << 8; } } @@ -338,11 +338,11 @@ WRITE16_MEMBER( compis_state::pcs6_12_13_w ) { if (ACCESSING_BITS_0_7) { - m_isbx1->mcs0_w(space, offset, data); + m_isbx1->mcs0_w(offset, data); } else { - m_isbx1->mcs1_w(space, offset, data >> 8); + m_isbx1->mcs1_w(offset, data >> 8); } } @@ -350,11 +350,11 @@ READ16_MEMBER( compis_state::pcs6_14_15_r ) { if (ACCESSING_BITS_0_7) { - return m_isbx1->mcs1_r(space, offset); + return m_isbx1->mcs1_r(offset); } else { - return m_isbx1->mdack_r(space, offset) << 8; + return m_isbx1->mdack_r(offset) << 8; } } @@ -362,11 +362,11 @@ WRITE16_MEMBER( compis_state::pcs6_14_15_w ) { if (ACCESSING_BITS_0_7) { - m_isbx1->mcs1_w(space, offset, data); + m_isbx1->mcs1_w(offset, data); } else { - m_isbx1->mdack_w(space, offset, data >> 8); + m_isbx1->mdack_w(offset, data >> 8); } } diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp index 9251dc0a5e9..239e8c3bb56 100644 --- a/src/mame/drivers/pofo.cpp +++ b/src/mame/drivers/pofo.cpp @@ -590,7 +590,7 @@ READ8_MEMBER( portfolio_state::mem_r ) case CCM_A: if (LOG) logerror("%s %s CCM0 read %05x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff); - data = m_ccm->nrdi_r(space, offset & 0x1ffff); + data = m_ccm->nrdi_r(offset & 0x1ffff); break; case CCM_B: @@ -607,7 +607,7 @@ READ8_MEMBER( portfolio_state::mem_r ) data = m_rom[offset & 0x3ffff]; } - data = m_exp->nrdi_r(space, offset, data, iom, bcom, ncc1); + data = m_exp->nrdi_r(offset, data, iom, bcom, ncc1); return data; } @@ -638,7 +638,7 @@ WRITE8_MEMBER( portfolio_state::mem_w ) case CCM_A: if (LOG) logerror("%s %s CCM0 write %05x:%02x\n", machine().time().as_string(), machine().describe_context(), offset & 0x1ffff, data); - m_ccm->nwri_w(space, offset & 0x1ffff, data); + m_ccm->nwri_w(offset & 0x1ffff, data); break; case CCM_B: @@ -647,7 +647,7 @@ WRITE8_MEMBER( portfolio_state::mem_w ) } } - m_exp->nwri_w(space, offset, data, iom, bcom, ncc1); + m_exp->nwri_w(offset, data, iom, bcom, ncc1); } @@ -703,7 +703,7 @@ READ8_MEMBER( portfolio_state::io_r ) } } - data = m_exp->nrdi_r(space, offset, data, iom, bcom, ncc1); + data = m_exp->nrdi_r(offset, data, iom, bcom, ncc1); return data; } @@ -767,7 +767,7 @@ WRITE8_MEMBER( portfolio_state::io_w ) } } - m_exp->nwri_w(space, offset, data, iom, bcom, ncc1); + m_exp->nwri_w(offset, data, iom, bcom, ncc1); } diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp index 3449e2c1d4c..2a822268a68 100644 --- a/src/mame/drivers/ql.cpp +++ b/src/mame/drivers/ql.cpp @@ -254,15 +254,15 @@ READ8_MEMBER( ql_state::read ) } if (m_qimi_enabled) { - data = m_qimi->read(space, offset, data); + data = m_qimi->read(offset, data); } m_cart->romoeh_w(cart_romoeh); - data = m_cart->read(space, offset & 0x7fff, data); + data = m_cart->read(offset & 0x7fff, data); m_cart->romoeh_w(0); m_exp->romoeh_w(exp_romoeh); - data = m_exp->read(space, offset, data); + data = m_exp->read(offset, data); m_exp->romoeh_w(0); return data; @@ -309,14 +309,14 @@ WRITE8_MEMBER( ql_state::write ) } if (m_qimi_enabled) { - m_qimi->write(space, offset, data); + m_qimi->write(offset, data); } m_cart->romoeh_w(0); - m_cart->write(space, offset & 0x7fff, data); + m_cart->write(offset & 0x7fff, data); m_exp->romoeh_w(0); - m_exp->write(space, offset, data); + m_exp->write(offset, data); } diff --git a/src/mame/machine/qimi.cpp b/src/mame/machine/qimi.cpp index 00bbc5fc209..dba7bd9ee59 100644 --- a/src/mame/machine/qimi.cpp +++ b/src/mame/machine/qimi.cpp @@ -139,7 +139,7 @@ void qimi_device::device_reset() // read - //------------------------------------------------- -uint8_t qimi_device::read(address_space &space, offs_t offset, uint8_t data) +uint8_t qimi_device::read(offs_t offset, uint8_t data) { switch (offset) { @@ -169,8 +169,10 @@ uint8_t qimi_device::read(address_space &space, offs_t offset, uint8_t data) // write - //------------------------------------------------- -WRITE8_MEMBER( qimi_device::write ) +void qimi_device::write(offs_t offset, uint8_t data) { + (void)data; + // write to 0x1bfbe resets int status if (offset == 0x1bfbe) { diff --git a/src/mame/machine/qimi.h b/src/mame/machine/qimi.h index 1c4f89dff55..033d8d7bc7a 100644 --- a/src/mame/machine/qimi.h +++ b/src/mame/machine/qimi.h @@ -29,8 +29,8 @@ public: // optional information overrides virtual ioport_constructor device_input_ports() const override; - uint8_t read(address_space &space, offs_t offset, uint8_t data); - DECLARE_WRITE8_MEMBER( write ); + uint8_t read(offs_t offset, uint8_t data); + void write(offs_t offset, uint8_t data); DECLARE_INPUT_CHANGED_MEMBER( mouse_x_changed ); DECLARE_INPUT_CHANGED_MEMBER( mouse_y_changed ); From 4b14d5876a5db6883e940a810011dafc4372f8c2 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 24 Feb 2019 23:38:14 -0500 Subject: [PATCH 24/42] bus/bw2, bus/dmv, mm58167, apple3: Eliminate address_space arguments from handlers (nw) --- src/devices/bus/bw2/exp.cpp | 24 +++++++-------- src/devices/bus/bw2/exp.h | 24 +++++++-------- src/devices/bus/bw2/ramcard.cpp | 6 ++-- src/devices/bus/bw2/ramcard.h | 6 ++-- src/devices/bus/dmv/dmvbus.cpp | 8 ++--- src/devices/bus/dmv/dmvbus.h | 8 ++--- src/devices/bus/dmv/k210.cpp | 4 +-- src/devices/bus/dmv/k210.h | 4 +-- src/devices/bus/dmv/k233.cpp | 2 +- src/devices/bus/dmv/k233.h | 2 +- src/devices/bus/dmv/k801.cpp | 8 ++--- src/devices/bus/dmv/k801.h | 8 ++--- src/devices/bus/dmv/k803.cpp | 8 ++--- src/devices/bus/dmv/k803.h | 4 +-- src/devices/bus/dmv/k806.cpp | 8 ++--- src/devices/bus/dmv/k806.h | 4 +-- src/devices/machine/mm58167.cpp | 4 +-- src/devices/machine/mm58167.h | 4 +-- src/mame/drivers/bw2.cpp | 4 +-- src/mame/drivers/dmv.cpp | 54 ++++++++++++++++----------------- src/mame/includes/apple3.h | 16 +++++----- src/mame/machine/apple3.cpp | 24 +++++++-------- 22 files changed, 116 insertions(+), 118 deletions(-) diff --git a/src/devices/bus/bw2/exp.cpp b/src/devices/bus/bw2/exp.cpp index ae02f1f10fa..50f776b066e 100644 --- a/src/devices/bus/bw2/exp.cpp +++ b/src/devices/bus/bw2/exp.cpp @@ -95,11 +95,11 @@ void bw2_expansion_slot_device::device_reset() // cd_r - cartridge data read //------------------------------------------------- -uint8_t bw2_expansion_slot_device::cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) +uint8_t bw2_expansion_slot_device::cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { if (m_cart != nullptr) { - data = m_cart->bw2_cd_r(space, offset, data, ram2, ram3, ram4, ram5, ram6); + data = m_cart->bw2_cd_r(offset, data, ram2, ram3, ram4, ram5, ram6); } return data; @@ -110,11 +110,11 @@ uint8_t bw2_expansion_slot_device::cd_r(address_space &space, offs_t offset, uin // cd_w - cartridge data write //------------------------------------------------- -void bw2_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) +void bw2_expansion_slot_device::cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { if (m_cart != nullptr) { - m_cart->bw2_cd_w(space, offset, data, ram2, ram3, ram4, ram5, ram6); + m_cart->bw2_cd_w(offset, data, ram2, ram3, ram4, ram5, ram6); } } @@ -123,13 +123,13 @@ void bw2_expansion_slot_device::cd_w(address_space &space, offs_t offset, uint8_ // slot_r - slot read //------------------------------------------------- -READ8_MEMBER( bw2_expansion_slot_device::slot_r ) +uint8_t bw2_expansion_slot_device::slot_r(offs_t offset) { uint8_t data = 0xff; if (m_cart != nullptr) { - data = m_cart->bw2_slot_r(space, offset); + data = m_cart->bw2_slot_r(offset); } return data; @@ -140,11 +140,11 @@ READ8_MEMBER( bw2_expansion_slot_device::slot_r ) // slot_w - slot write //------------------------------------------------- -WRITE8_MEMBER( bw2_expansion_slot_device::slot_w ) +void bw2_expansion_slot_device::slot_w(offs_t offset, uint8_t data) { if (m_cart != nullptr) { - m_cart->bw2_slot_w(space, offset, data); + m_cart->bw2_slot_w(offset, data); } } @@ -153,13 +153,13 @@ WRITE8_MEMBER( bw2_expansion_slot_device::slot_w ) // modsel_r - modsel read //------------------------------------------------- -READ8_MEMBER( bw2_expansion_slot_device::modsel_r ) +uint8_t bw2_expansion_slot_device::modsel_r(offs_t offset) { uint8_t data = 0xff; if (m_cart != nullptr) { - data = m_cart->bw2_modsel_r(space, offset); + data = m_cart->bw2_modsel_r(offset); } return data; @@ -170,11 +170,11 @@ READ8_MEMBER( bw2_expansion_slot_device::modsel_r ) // modsel_w - modsel write //------------------------------------------------- -WRITE8_MEMBER( bw2_expansion_slot_device::modsel_w ) +void bw2_expansion_slot_device::modsel_w(offs_t offset, uint8_t data) { if (m_cart != nullptr) { - m_cart->bw2_modsel_w(space, offset, data); + m_cart->bw2_modsel_w(offset, data); } } diff --git a/src/devices/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h index 70c8bf55f50..d37e5c66879 100644 --- a/src/devices/bus/bw2/exp.h +++ b/src/devices/bus/bw2/exp.h @@ -76,14 +76,14 @@ public: virtual ~bw2_expansion_slot_device(); // computer interface - uint8_t cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6); - void cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6); + uint8_t cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6); + void cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6); - DECLARE_READ8_MEMBER( slot_r ); - DECLARE_WRITE8_MEMBER( slot_w ); + uint8_t slot_r(offs_t offset); + void slot_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER( modsel_r ); - DECLARE_WRITE8_MEMBER( modsel_w ); + uint8_t modsel_r(offs_t offset); + void modsel_w(offs_t offset, uint8_t data); protected: // device-level overrides @@ -103,14 +103,14 @@ public: // construction/destruction virtual ~device_bw2_expansion_slot_interface(); - virtual uint8_t bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { return data; }; - virtual void bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { }; + virtual uint8_t bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { return data; } + virtual void bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { } - virtual uint8_t bw2_slot_r(address_space &space, offs_t offset) { return 0xff; } - virtual void bw2_slot_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t bw2_slot_r(offs_t offset) { return 0xff; } + virtual void bw2_slot_w(offs_t offset, uint8_t data) { } - virtual uint8_t bw2_modsel_r(address_space &space, offs_t offset) { return 0xff; } - virtual void bw2_modsel_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t bw2_modsel_r(offs_t offset) { return 0xff; } + virtual void bw2_modsel_w(offs_t offset, uint8_t data) { } protected: device_bw2_expansion_slot_interface(const machine_config &mconfig, device_t &device); diff --git a/src/devices/bus/bw2/ramcard.cpp b/src/devices/bus/bw2/ramcard.cpp index b59159cd5b1..48de6cffdec 100644 --- a/src/devices/bus/bw2/ramcard.cpp +++ b/src/devices/bus/bw2/ramcard.cpp @@ -88,7 +88,7 @@ void bw2_ramcard_device::device_reset() // bw2_cd_r - cartridge data read //------------------------------------------------- -uint8_t bw2_ramcard_device::bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) +uint8_t bw2_ramcard_device::bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { if (!ram2) { @@ -107,7 +107,7 @@ uint8_t bw2_ramcard_device::bw2_cd_r(address_space &space, offs_t offset, uint8_ // bw2_cd_r - cartridge data write //------------------------------------------------- -void bw2_ramcard_device::bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) +void bw2_ramcard_device::bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) { if (m_en && !ram5) { @@ -120,7 +120,7 @@ void bw2_ramcard_device::bw2_cd_w(address_space &space, offs_t offset, uint8_t d // bw2_slot_w - slot write //------------------------------------------------- -void bw2_ramcard_device::bw2_slot_w(address_space &space, offs_t offset, uint8_t data) +void bw2_ramcard_device::bw2_slot_w(offs_t offset, uint8_t data) { m_en = 1; m_bank = data & 0x0f; diff --git a/src/devices/bus/bw2/ramcard.h b/src/devices/bus/bw2/ramcard.h index 9ac2b0433fa..029d9b91feb 100644 --- a/src/devices/bus/bw2/ramcard.h +++ b/src/devices/bus/bw2/ramcard.h @@ -37,9 +37,9 @@ protected: virtual void device_reset() override; // device_bw2_expansion_slot_interface overrides - virtual uint8_t bw2_cd_r(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override; - virtual void bw2_cd_w(address_space &space, offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override; - virtual void bw2_slot_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t bw2_cd_r(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override; + virtual void bw2_cd_w(offs_t offset, uint8_t data, int ram2, int ram3, int ram4, int ram5, int ram6) override; + virtual void bw2_slot_w(offs_t offset, uint8_t data) override; private: required_memory_region m_rom; diff --git a/src/devices/bus/dmv/dmvbus.cpp b/src/devices/bus/dmv/dmvbus.cpp index de328f6df06..7ad4ae3a2bb 100644 --- a/src/devices/bus/dmv/dmvbus.cpp +++ b/src/devices/bus/dmv/dmvbus.cpp @@ -279,10 +279,10 @@ void dmvcart_slot_device::ram_write(uint8_t cas, offs_t offset, uint8_t data) IO read -------------------------------------------------*/ -void dmvcart_slot_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmvcart_slot_device::io_read(int ifsel, offs_t offset, uint8_t &data) { if (m_cart) - m_cart->io_read(space, ifsel, offset, data); + m_cart->io_read(ifsel, offset, data); } @@ -290,10 +290,10 @@ void dmvcart_slot_device::io_read(address_space &space, int ifsel, offs_t offset IO write -------------------------------------------------*/ -void dmvcart_slot_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmvcart_slot_device::io_write(int ifsel, offs_t offset, uint8_t data) { if (m_cart) - m_cart->io_write(space, ifsel, offset, data); + m_cart->io_write(ifsel, offset, data); } /*------------------------------------------------- diff --git a/src/devices/bus/dmv/dmvbus.h b/src/devices/bus/dmv/dmvbus.h index 17acae097e7..22c81767151 100644 --- a/src/devices/bus/dmv/dmvbus.h +++ b/src/devices/bus/dmv/dmvbus.h @@ -25,8 +25,8 @@ public: virtual bool read(offs_t offset, uint8_t &data) { return false; } virtual bool write(offs_t offset, uint8_t data) { return false; } - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) { } - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) { } + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) { } + virtual void io_write(int ifsel, offs_t offset, uint8_t data) { } // slot 1 virtual void ram_read(uint8_t cas, offs_t offset, uint8_t &data) { } @@ -87,8 +87,8 @@ public: virtual bool write(offs_t offset, uint8_t data); virtual void ram_read(uint8_t cas, offs_t offset, uint8_t &data); virtual void ram_write(uint8_t cas, offs_t offset, uint8_t data); - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data); - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data); + virtual void io_read(int ifsel, offs_t offset, uint8_t &data); + virtual void io_write(int ifsel, offs_t offset, uint8_t data); virtual void hold_w(int state); virtual void switch16_w(int state); virtual void timint_w(int state); diff --git a/src/devices/bus/dmv/k210.cpp b/src/devices/bus/dmv/k210.cpp index 1c3955bdf04..d73f2dfb9a9 100644 --- a/src/devices/bus/dmv/k210.cpp +++ b/src/devices/bus/dmv/k210.cpp @@ -99,13 +99,13 @@ void dmv_k210_device::device_add_mconfig(machine_config &config) m_centronics->set_output_latch(*m_cent_data_out); } -void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_k210_device::io_read(int ifsel, offs_t offset, uint8_t &data) { if (ifsel == 0) data = m_ppi->read(offset & 0x03); } -void dmv_k210_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k210_device::io_write(int ifsel, offs_t offset, uint8_t data) { if (ifsel == 0) m_ppi->write(offset & 0x03, data); diff --git a/src/devices/bus/dmv/k210.h b/src/devices/bus/dmv/k210.h index dcc51a374ed..501178f6fcf 100644 --- a/src/devices/bus/dmv/k210.h +++ b/src/devices/bus/dmv/k210.h @@ -33,8 +33,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // dmvcart_interface overrides - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; private: DECLARE_READ8_MEMBER(porta_r); diff --git a/src/devices/bus/dmv/k233.cpp b/src/devices/bus/dmv/k233.cpp index 2ba68d3f53f..2c8b13cff00 100644 --- a/src/devices/bus/dmv/k233.cpp +++ b/src/devices/bus/dmv/k233.cpp @@ -54,7 +54,7 @@ void dmv_k233_device::device_reset() m_enabled = false; } -void dmv_k233_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k233_device::io_write(int ifsel, offs_t offset, uint8_t data) { if (ifsel == 1) m_enabled = !m_enabled; diff --git a/src/devices/bus/dmv/k233.h b/src/devices/bus/dmv/k233.h index 8aa2f0d235b..e73ae71a9df 100644 --- a/src/devices/bus/dmv/k233.h +++ b/src/devices/bus/dmv/k233.h @@ -27,7 +27,7 @@ protected: virtual void device_reset() override; // dmvcart_interface overrides - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; virtual bool read(offs_t offset, uint8_t &data) override; virtual bool write(offs_t offset, uint8_t data) override; diff --git a/src/devices/bus/dmv/k801.cpp b/src/devices/bus/dmv/k801.cpp index 64098400288..7c4892f4fb0 100644 --- a/src/devices/bus/dmv/k801.cpp +++ b/src/devices/bus/dmv/k801.cpp @@ -206,7 +206,7 @@ WRITE_LINE_MEMBER(dmv_k801_device::epci_irq_w) m_bus->m_out_irq_cb(state); } -void dmv_k801_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_k801_device::io_read(int ifsel, offs_t offset, uint8_t &data) { uint8_t dsw = m_dsw->read() & 0x0f; if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) @@ -218,7 +218,7 @@ void dmv_k801_device::io_read(address_space &space, int ifsel, offs_t offset, ui } } -void dmv_k801_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k801_device::io_write(int ifsel, offs_t offset, uint8_t data) { uint8_t dsw = m_dsw->read() & 0x0f; if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) @@ -230,7 +230,7 @@ void dmv_k801_device::io_write(address_space &space, int ifsel, offs_t offset, u } } -void dmv_k211_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_k211_device::io_read(int ifsel, offs_t offset, uint8_t &data) { uint8_t jumpers = m_dsw->read() & 0x03; if ((BIT(jumpers, 0) && ifsel == 0) || (BIT(jumpers, 1) && ifsel == 1)) @@ -242,7 +242,7 @@ void dmv_k211_device::io_read(address_space &space, int ifsel, offs_t offset, ui } } -void dmv_k211_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k211_device::io_write(int ifsel, offs_t offset, uint8_t data) { uint8_t jumpers = m_dsw->read() & 0x03; if ((BIT(jumpers, 0) && ifsel == 0) || (BIT(jumpers, 1) && ifsel == 1)) diff --git a/src/devices/bus/dmv/k801.h b/src/devices/bus/dmv/k801.h index 26f314b2149..db4b557bbb1 100644 --- a/src/devices/bus/dmv/k801.h +++ b/src/devices/bus/dmv/k801.h @@ -36,8 +36,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // dmvcart_interface overrides - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; required_device m_epci; required_device m_rs232; @@ -67,8 +67,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // dmvcart_interface overrides - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; }; // ======================> dmv_k212_device diff --git a/src/devices/bus/dmv/k803.cpp b/src/devices/bus/dmv/k803.cpp index b56f0daf156..d0cf9cff336 100644 --- a/src/devices/bus/dmv/k803.cpp +++ b/src/devices/bus/dmv/k803.cpp @@ -90,23 +90,23 @@ ioport_constructor dmv_k803_device::device_input_ports() const return INPUT_PORTS_NAME( dmv_k803 ); } -void dmv_k803_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_k803_device::io_read(int ifsel, offs_t offset, uint8_t &data) { uint8_t dsw = m_dsw->read() & 0x0f; if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) { if (offset & 0x04) - data = m_rtc->read(space, ((m_latch & 0x07) << 2) | (offset & 0x03)); + data = m_rtc->read(((m_latch & 0x07) << 2) | (offset & 0x03)); } } -void dmv_k803_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k803_device::io_write(int ifsel, offs_t offset, uint8_t data) { uint8_t dsw = m_dsw->read() & 0x0f; if ((dsw >> 1) == ifsel && BIT(offset, 3) == BIT(dsw, 0)) { if (offset & 0x04) - m_rtc->write(space, ((m_latch & 0x07) << 2) | (offset & 0x03), data); + m_rtc->write(((m_latch & 0x07) << 2) | (offset & 0x03), data); else { m_latch = data; diff --git a/src/devices/bus/dmv/k803.h b/src/devices/bus/dmv/k803.h index 0e1e190e89f..e8455646d1e 100644 --- a/src/devices/bus/dmv/k803.h +++ b/src/devices/bus/dmv/k803.h @@ -31,8 +31,8 @@ protected: virtual ioport_constructor device_input_ports() const override; virtual void device_add_mconfig(machine_config &config) override; - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; void update_int(); diff --git a/src/devices/bus/dmv/k806.cpp b/src/devices/bus/dmv/k806.cpp index 62cf3f97ea4..a747efa24f4 100644 --- a/src/devices/bus/dmv/k806.cpp +++ b/src/devices/bus/dmv/k806.cpp @@ -128,19 +128,19 @@ const tiny_rom_entry *dmv_k806_device::device_rom_region() const return ROM_NAME( dmv_k806 ); } -void dmv_k806_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_k806_device::io_read(int ifsel, offs_t offset, uint8_t &data) { uint8_t jumpers = m_jumpers->read(); if (BIT(jumpers, ifsel) && ((!BIT(offset, 3) && BIT(jumpers, 5)) || (BIT(offset, 3) && BIT(jumpers, 6)))) - data = m_mcu->upi41_master_r(space, offset & 1); + data = m_mcu->upi41_master_r(machine().dummy_space(), offset & 1); } -void dmv_k806_device::io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_k806_device::io_write(int ifsel, offs_t offset, uint8_t data) { uint8_t jumpers = m_jumpers->read(); if (BIT(jumpers, ifsel) && ((!BIT(offset, 3) && BIT(jumpers, 5)) || (BIT(offset, 3) && BIT(jumpers, 6)))) { - m_mcu->upi41_master_w(space, offset & 1, data); + m_mcu->upi41_master_w(machine().dummy_space(), offset & 1, data); m_bus->m_out_int_cb(CLEAR_LINE); } } diff --git a/src/devices/bus/dmv/k806.h b/src/devices/bus/dmv/k806.h index da178a2945d..082d56b11a6 100644 --- a/src/devices/bus/dmv/k806.h +++ b/src/devices/bus/dmv/k806.h @@ -35,8 +35,8 @@ protected: virtual ioport_constructor device_input_ports() const override; virtual void device_add_mconfig(machine_config &config) override; - virtual void io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) override; - virtual void io_write(address_space &space, int ifsel, offs_t offset, uint8_t data) override; + virtual void io_read(int ifsel, offs_t offset, uint8_t &data) override; + virtual void io_write(int ifsel, offs_t offset, uint8_t data) override; private: DECLARE_READ_LINE_MEMBER(portt1_r); diff --git a/src/devices/machine/mm58167.cpp b/src/devices/machine/mm58167.cpp index 22b49f4a7dd..f226590e9d2 100644 --- a/src/devices/machine/mm58167.cpp +++ b/src/devices/machine/mm58167.cpp @@ -180,7 +180,7 @@ void mm58167_device::update_rtc() m_milliseconds = (bcd_to_integer(m_regs[R_CNT_HUNDTENTHS]) * 10) + (bcd_to_integer(m_regs[R_CNT_MILLISECONDS] >> 4) % 10); } -READ8_MEMBER(mm58167_device::read) +uint8_t mm58167_device::read(offs_t offset) { // printf("read reg %x = %02x\n", offset, m_regs[offset]); @@ -196,7 +196,7 @@ READ8_MEMBER(mm58167_device::read) return m_regs[offset]; } -WRITE8_MEMBER(mm58167_device::write) +void mm58167_device::write(offs_t offset, uint8_t data) { // printf("%02x to reg %x\n", data, offset); diff --git a/src/devices/machine/mm58167.h b/src/devices/machine/mm58167.h index 523f31ea326..c12b151b676 100644 --- a/src/devices/machine/mm58167.h +++ b/src/devices/machine/mm58167.h @@ -27,8 +27,8 @@ public: // construction/destruction mm58167_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); auto irq() { return m_irq_w.bind(); } diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp index 65d3a307e3c..bd7769698d0 100644 --- a/src/mame/drivers/bw2.cpp +++ b/src/mame/drivers/bw2.cpp @@ -108,7 +108,7 @@ READ8_MEMBER( bw2_state::read ) data = m_ram->pointer()[offset]; } - return m_exp->cd_r(space, offset, data, ram2, ram3, ram4, ram5, ram6); + return m_exp->cd_r(offset, data, ram2, ram3, ram4, ram5, ram6); } @@ -159,7 +159,7 @@ WRITE8_MEMBER( bw2_state::write ) m_ram->pointer()[offset] = data; } - m_exp->cd_w(space, offset, data, ram2, ram3, ram4, ram5, ram6); + m_exp->cd_w(offset, data, ram2, ram3, ram4, ram5, ram6); } diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp index 0e3098ec7b9..d7f4143407b 100644 --- a/src/mame/drivers/dmv.cpp +++ b/src/mame/drivers/dmv.cpp @@ -127,21 +127,21 @@ private: DECLARE_FLOPPY_FORMATS( floppy_formats ); DECLARE_QUICKLOAD_LOAD_MEMBER(dmv); - uint8_t program_read(address_space &space, int cas, offs_t offset); - void program_write(address_space &space, int cas, offs_t offset, uint8_t data); + uint8_t program_read(int cas, offs_t offset); + void program_write(int cas, offs_t offset, uint8_t data); - void ifsel_r(address_space &space, int ifsel, offs_t offset, uint8_t &data); - void ifsel_w(address_space &space, int ifsel, offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER(ifsel0_r) { uint8_t data = 0xff; ifsel_r(space, 0, offset, data); return data; } - DECLARE_READ8_MEMBER(ifsel1_r) { uint8_t data = 0xff; ifsel_r(space, 1, offset, data); return data; } - DECLARE_READ8_MEMBER(ifsel2_r) { uint8_t data = 0xff; ifsel_r(space, 2, offset, data); return data; } - DECLARE_READ8_MEMBER(ifsel3_r) { uint8_t data = 0xff; ifsel_r(space, 3, offset, data); return data; } - DECLARE_READ8_MEMBER(ifsel4_r) { uint8_t data = 0xff; ifsel_r(space, 4, offset, data); return data; } - DECLARE_WRITE8_MEMBER(ifsel0_w) { ifsel_w(space, 0, offset, data); } - DECLARE_WRITE8_MEMBER(ifsel1_w) { ifsel_w(space, 1, offset, data); } - DECLARE_WRITE8_MEMBER(ifsel2_w) { ifsel_w(space, 2, offset, data); } - DECLARE_WRITE8_MEMBER(ifsel3_w) { ifsel_w(space, 3, offset, data); } - DECLARE_WRITE8_MEMBER(ifsel4_w) { ifsel_w(space, 4, offset, data); } + void ifsel_r(int ifsel, offs_t offset, uint8_t &data); + void ifsel_w(int ifsel, offs_t offset, uint8_t data); + DECLARE_READ8_MEMBER(ifsel0_r) { uint8_t data = 0xff; ifsel_r(0, offset, data); return data; } + DECLARE_READ8_MEMBER(ifsel1_r) { uint8_t data = 0xff; ifsel_r(1, offset, data); return data; } + DECLARE_READ8_MEMBER(ifsel2_r) { uint8_t data = 0xff; ifsel_r(2, offset, data); return data; } + DECLARE_READ8_MEMBER(ifsel3_r) { uint8_t data = 0xff; ifsel_r(3, offset, data); return data; } + DECLARE_READ8_MEMBER(ifsel4_r) { uint8_t data = 0xff; ifsel_r(4, offset, data); return data; } + DECLARE_WRITE8_MEMBER(ifsel0_w) { ifsel_w(0, offset, data); } + DECLARE_WRITE8_MEMBER(ifsel1_w) { ifsel_w(1, offset, data); } + DECLARE_WRITE8_MEMBER(ifsel2_w) { ifsel_w(2, offset, data); } + DECLARE_WRITE8_MEMBER(ifsel3_w) { ifsel_w(3, offset, data); } + DECLARE_WRITE8_MEMBER(ifsel4_w) { ifsel_w(4, offset, data); } UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels ); UPD7220_DRAW_TEXT_LINE_MEMBER( hgdc_draw_text ); @@ -426,38 +426,36 @@ static void dmv_floppies(device_slot_interface &device) } -void dmv_state::ifsel_r(address_space &space, int ifsel, offs_t offset, uint8_t &data) +void dmv_state::ifsel_r(int ifsel, offs_t offset, uint8_t &data) { - dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a }; - for(auto & slot : slots) - slot->io_read(space, ifsel, offset, data); + for (auto &slot : { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a }) + slot->io_read(ifsel, offset, data); } -void dmv_state::ifsel_w(address_space &space, int ifsel, offs_t offset, uint8_t data) +void dmv_state::ifsel_w(int ifsel, offs_t offset, uint8_t data) { - dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a }; - for(auto & slot : slots) - slot->io_write(space, ifsel, offset, data); + for(auto &slot : { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a }) + slot->io_write(ifsel, offset, data); } WRITE8_MEMBER(dmv_state::exp_program_w) { - program_write(space, (offset >> 16) & 0x07, offset, data); + program_write((offset >> 16) & 0x07, offset, data); } READ8_MEMBER(dmv_state::exp_program_r) { - return program_read(space, (offset >> 16) & 0x07, offset); + return program_read((offset >> 16) & 0x07, offset); } WRITE8_MEMBER(dmv_state::program_w) { - program_write(space, m_ram_bank, offset, data); + program_write(m_ram_bank, offset, data); } READ8_MEMBER(dmv_state::program_r) { - return program_read(space, m_ram_bank, offset); + return program_read(m_ram_bank, offset); } WRITE_LINE_MEMBER( dmv_state::thold7_w ) @@ -519,7 +517,7 @@ void dmv_state::update_irqs(int slot, int state) } } -void dmv_state::program_write(address_space &space, int cas, offs_t offset, uint8_t data) +void dmv_state::program_write(int cas, offs_t offset, uint8_t data) { bool tramd = false; dmvcart_slot_device *slots[] = { m_slot2, m_slot2a, m_slot3, m_slot4, m_slot5, m_slot6, m_slot7, m_slot7a }; @@ -535,7 +533,7 @@ void dmv_state::program_write(address_space &space, int cas, offs_t offset, uint } } -uint8_t dmv_state::program_read(address_space &space, int cas, offs_t offset) +uint8_t dmv_state::program_read(int cas, offs_t offset) { uint8_t data = 0xff; if (m_ramoutdis && offset < 0x2000) diff --git a/src/mame/includes/apple3.h b/src/mame/includes/apple3.h index ef32b981503..58b86f1ee3b 100644 --- a/src/mame/includes/apple3.h +++ b/src/mame/includes/apple3.h @@ -88,21 +88,21 @@ public: required_device floppy2; required_device floppy3; - DECLARE_READ8_MEMBER(apple3_memory_r); - DECLARE_WRITE8_MEMBER(apple3_memory_w); + uint8_t apple3_memory_r(offs_t offset); + void apple3_memory_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER(apple3_sync_w); - DECLARE_READ8_MEMBER(apple3_c0xx_r); - DECLARE_WRITE8_MEMBER(apple3_c0xx_w); + uint8_t apple3_c0xx_r(offs_t offset); + void apple3_c0xx_w(offs_t offset, uint8_t data); void init_apple3(); virtual void machine_reset() override; virtual void video_start() override; uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(scanstart_cb); TIMER_CALLBACK_MEMBER(scanend_cb); - DECLARE_WRITE8_MEMBER(apple3_via_0_out_a); - DECLARE_WRITE8_MEMBER(apple3_via_0_out_b); - DECLARE_WRITE8_MEMBER(apple3_via_1_out_a); - DECLARE_WRITE8_MEMBER(apple3_via_1_out_b); + void apple3_via_0_out_a(uint8_t data); + void apple3_via_0_out_b(uint8_t data); + void apple3_via_1_out_a(uint8_t data); + void apple3_via_1_out_b(uint8_t data); void apple3_write_charmem(); void text40(bitmap_ind16 &bitmap, const rectangle &cliprect); void text80(bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mame/machine/apple3.cpp b/src/mame/machine/apple3.cpp index f86d612f990..6be7745c565 100644 --- a/src/mame/machine/apple3.cpp +++ b/src/mame/machine/apple3.cpp @@ -63,7 +63,7 @@ // 2 MHz mode probably has every 33rd cycle stretched but this is currently unproven. static constexpr XTAL APPLE2_CLOCK(1'021'800); -READ8_MEMBER(apple3_state::apple3_c0xx_r) +uint8_t apple3_state::apple3_c0xx_r(offs_t offset) { uint8_t result = 0xFF; device_a2bus_card_interface *slotdevice; @@ -195,7 +195,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r) case 0x74: case 0x75: case 0x76: case 0x77: case 0x78: case 0x79: case 0x7A: case 0x7B: case 0x7C: case 0x7D: case 0x7E: case 0x7F: - result = m_rtc->read(space, m_via_0_b); + result = m_rtc->read(m_via_0_b); break; case 0x90: case 0x91: case 0x92: case 0x93: @@ -312,7 +312,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r) -WRITE8_MEMBER(apple3_state::apple3_c0xx_w) +void apple3_state::apple3_c0xx_w(offs_t offset, uint8_t data) { device_a2bus_card_interface *slotdevice; @@ -375,7 +375,7 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w) case 0x74: case 0x75: case 0x76: case 0x77: case 0x78: case 0x79: case 0x7A: case 0x7B: case 0x7C: case 0x7D: case 0x7E: case 0x7F: - m_rtc->write(space, m_via_0_b, data); + m_rtc->write(m_via_0_b, data); break; @@ -606,23 +606,23 @@ void apple3_state::apple3_via_out(uint8_t *var, uint8_t data) } -WRITE8_MEMBER(apple3_state::apple3_via_0_out_a) +void apple3_state::apple3_via_0_out_a(uint8_t data) { apple3_via_out(&m_via_0_a, data); } -WRITE8_MEMBER(apple3_state::apple3_via_0_out_b) +void apple3_state::apple3_via_0_out_b(uint8_t data) { // printf("ZP to %02x\n", data); apple3_via_out(&m_via_0_b, data); } -WRITE8_MEMBER(apple3_state::apple3_via_1_out_a) +void apple3_state::apple3_via_1_out_a(uint8_t data) { apple3_via_out(&m_via_1_a, data); } -WRITE8_MEMBER(apple3_state::apple3_via_1_out_b) +void apple3_state::apple3_via_1_out_b(uint8_t data) { m_dac->write(data); apple3_via_out(&m_via_1_b, data); @@ -746,7 +746,7 @@ void apple3_state::device_post_load() apple3_update_memory(); } -READ8_MEMBER(apple3_state::apple3_memory_r) +uint8_t apple3_state::apple3_memory_r(offs_t offset) { uint8_t rv = 0xff; @@ -797,7 +797,7 @@ READ8_MEMBER(apple3_state::apple3_memory_r) { if (!machine().side_effects_disabled()) { - rv = apple3_c0xx_r(space, offset-0xc000); + rv = apple3_c0xx_r(offset-0xc000); } } else @@ -882,7 +882,7 @@ READ8_MEMBER(apple3_state::apple3_memory_r) return rv; } -WRITE8_MEMBER(apple3_state::apple3_memory_w) +void apple3_state::apple3_memory_w(offs_t offset, uint8_t data) { if ((m_indir_bank & 0x80) && (offset >= 0x100)) { @@ -922,7 +922,7 @@ WRITE8_MEMBER(apple3_state::apple3_memory_w) { if (!machine().side_effects_disabled()) { - apple3_c0xx_w(space, offset-0xc000, data); + apple3_c0xx_w(offset-0xc000, data); } } else From af639956cacfe55e77b872d2b722f71f25bba9a4 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 00:25:16 -0500 Subject: [PATCH 25/42] bus/bbc/1mhzbus, bus/bbc/tube, bus/electron, tube: Eliminate address_space arguments from handlers (nw) --- src/devices/bus/bbc/1mhzbus/1mhzbus.cpp | 16 +++++----- src/devices/bus/bbc/1mhzbus/1mhzbus.h | 16 +++++----- src/devices/bus/bbc/1mhzbus/beebsid.cpp | 16 +++++----- src/devices/bus/bbc/1mhzbus/beebsid.h | 8 ++--- src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp | 2 +- src/devices/bus/bbc/1mhzbus/cfa3000opt.h | 2 +- src/devices/bus/bbc/1mhzbus/emrmidi.cpp | 4 +-- src/devices/bus/bbc/1mhzbus/emrmidi.h | 4 +-- src/devices/bus/bbc/1mhzbus/ieee488.cpp | 24 +++++++-------- src/devices/bus/bbc/1mhzbus/ieee488.h | 16 +++++----- src/devices/bus/bbc/1mhzbus/m2000.cpp | 16 +++++----- src/devices/bus/bbc/1mhzbus/m2000.h | 8 ++--- src/devices/bus/bbc/1mhzbus/opus3.cpp | 8 ++--- src/devices/bus/bbc/1mhzbus/opus3.h | 8 ++--- src/devices/bus/bbc/1mhzbus/sprite.cpp | 4 +-- src/devices/bus/bbc/1mhzbus/sprite.h | 4 +-- src/devices/bus/bbc/exp/mertec.cpp | 8 ++--- src/devices/bus/bbc/tube/tube.cpp | 8 ++--- src/devices/bus/bbc/tube/tube.h | 8 ++--- src/devices/bus/bbc/tube/tube_6502.cpp | 16 +++++----- src/devices/bus/bbc/tube/tube_6502.h | 8 ++--- src/devices/bus/bbc/tube/tube_80186.cpp | 8 ++--- src/devices/bus/bbc/tube/tube_80186.h | 4 +-- src/devices/bus/bbc/tube/tube_80286.cpp | 15 ++++----- src/devices/bus/bbc/tube/tube_80286.h | 8 ++--- src/devices/bus/bbc/tube/tube_arm.cpp | 12 ++++---- src/devices/bus/bbc/tube/tube_arm.h | 8 ++--- src/devices/bus/bbc/tube/tube_casper.cpp | 4 +-- src/devices/bus/bbc/tube/tube_casper.h | 4 +-- src/devices/bus/bbc/tube/tube_rc6502.cpp | 12 ++++---- src/devices/bus/bbc/tube/tube_rc6502.h | 8 ++--- src/devices/bus/bbc/tube/tube_z80.cpp | 14 ++++----- src/devices/bus/bbc/tube/tube_z80.h | 10 +++--- src/devices/bus/bbc/tube/tube_zep100.cpp | 18 +++++------ src/devices/bus/bbc/tube/tube_zep100.h | 18 +++++------ src/devices/bus/electron/cart/abr.cpp | 4 +-- src/devices/bus/electron/cart/abr.h | 4 +-- src/devices/bus/electron/cart/ap34.cpp | 8 ++--- src/devices/bus/electron/cart/ap34.h | 6 ++-- src/devices/bus/electron/cart/ap5.cpp | 16 +++++----- src/devices/bus/electron/cart/ap5.h | 4 +-- src/devices/bus/electron/cart/aqr.cpp | 4 +-- src/devices/bus/electron/cart/aqr.h | 4 +-- src/devices/bus/electron/cart/click.cpp | 8 ++--- src/devices/bus/electron/cart/click.h | 4 +-- src/devices/bus/electron/cart/cumana.cpp | 13 ++++---- src/devices/bus/electron/cart/cumana.h | 6 ++-- src/devices/bus/electron/cart/mgc.cpp | 4 +-- src/devices/bus/electron/cart/mgc.h | 4 +-- src/devices/bus/electron/cart/peg400.cpp | 8 ++--- src/devices/bus/electron/cart/peg400.h | 6 ++-- src/devices/bus/electron/cart/slot.cpp | 8 ++--- src/devices/bus/electron/cart/slot.h | 8 ++--- src/devices/bus/electron/cart/sndexp.cpp | 4 +-- src/devices/bus/electron/cart/sndexp.h | 4 +-- src/devices/bus/electron/cart/sndexp3.cpp | 4 +-- src/devices/bus/electron/cart/sndexp3.h | 4 +-- src/devices/bus/electron/cart/sp64.cpp | 4 +-- src/devices/bus/electron/cart/sp64.h | 4 +-- src/devices/bus/electron/cart/std.cpp | 2 +- src/devices/bus/electron/cart/std.h | 2 +- src/devices/bus/electron/cart/stlefs.cpp | 8 ++--- src/devices/bus/electron/cart/stlefs.h | 6 ++-- src/devices/bus/electron/cart/tube.cpp | 8 ++--- src/devices/bus/electron/cart/tube.h | 4 +-- src/devices/bus/electron/exp.cpp | 8 ++--- src/devices/bus/electron/exp.h | 8 ++--- src/devices/bus/electron/fbjoy.cpp | 2 +- src/devices/bus/electron/fbjoy.h | 2 +- src/devices/bus/electron/m2105.cpp | 4 +-- src/devices/bus/electron/m2105.h | 4 +-- src/devices/bus/electron/plus1.cpp | 32 +++++++++---------- src/devices/bus/electron/plus1.h | 4 +-- src/devices/bus/electron/plus2.cpp | 36 +++++++++++----------- src/devices/bus/electron/plus2.h | 4 +-- src/devices/bus/electron/plus3.cpp | 12 ++++---- src/devices/bus/electron/plus3.h | 6 ++-- src/devices/bus/electron/pwrjoy.cpp | 4 +-- src/devices/bus/electron/pwrjoy.h | 4 +-- src/devices/bus/electron/rombox.cpp | 8 ++--- src/devices/bus/electron/rombox.h | 4 +-- src/devices/bus/electron/romboxp.cpp | 36 +++++++++++----------- src/devices/bus/electron/romboxp.h | 6 ++-- src/devices/machine/tube.cpp | 8 ++--- src/devices/machine/tube.h | 8 ++--- src/mame/machine/bbc.cpp | 8 ++--- src/mame/machine/electron.cpp | 16 +++++----- 87 files changed, 372 insertions(+), 372 deletions(-) diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp index ae0557dc580..41e9bc0e8cb 100644 --- a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp +++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp @@ -92,18 +92,18 @@ void bbc_1mhzbus_slot_device::device_reset() // read //------------------------------------------------- -READ8_MEMBER(bbc_1mhzbus_slot_device::fred_r) +uint8_t bbc_1mhzbus_slot_device::fred_r(offs_t offset) { if (m_card) - return m_card->fred_r(space, offset); + return m_card->fred_r(offset); else return 0xff; } -READ8_MEMBER(bbc_1mhzbus_slot_device::jim_r) +uint8_t bbc_1mhzbus_slot_device::jim_r(offs_t offset) { if (m_card) - return m_card->jim_r(space, offset); + return m_card->jim_r(offset); else return 0xff; } @@ -112,16 +112,16 @@ READ8_MEMBER(bbc_1mhzbus_slot_device::jim_r) // write //------------------------------------------------- -WRITE8_MEMBER(bbc_1mhzbus_slot_device::fred_w) +void bbc_1mhzbus_slot_device::fred_w(offs_t offset, uint8_t data) { if (m_card) - m_card->fred_w(space, offset, data); + m_card->fred_w(offset, data); } -WRITE8_MEMBER(bbc_1mhzbus_slot_device::jim_w) +void bbc_1mhzbus_slot_device::jim_w(offs_t offset, uint8_t data) { if (m_card) - m_card->jim_w(space, offset, data); + m_card->jim_w(offset, data); } //------------------------------------------------- diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.h b/src/devices/bus/bbc/1mhzbus/1mhzbus.h index ad435876bf0..80e48425973 100644 --- a/src/devices/bus/bbc/1mhzbus/1mhzbus.h +++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.h @@ -107,10 +107,10 @@ public: auto irq_handler() { return m_irq_handler.bind(); } auto nmi_handler() { return m_nmi_handler.bind(); } - virtual DECLARE_READ8_MEMBER(fred_r); - virtual DECLARE_WRITE8_MEMBER(fred_w); - virtual DECLARE_READ8_MEMBER(jim_r); - virtual DECLARE_WRITE8_MEMBER(jim_w); + virtual uint8_t fred_r(offs_t offset); + virtual void fred_w(offs_t offset, uint8_t data); + virtual uint8_t jim_r(offs_t offset); + virtual void jim_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } @@ -134,10 +134,10 @@ private: class device_bbc_1mhzbus_interface : public device_slot_card_interface { public: - virtual DECLARE_READ8_MEMBER(fred_r) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(fred_w) { } - virtual DECLARE_READ8_MEMBER(jim_r) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(jim_w) { } + virtual uint8_t fred_r(offs_t offset) { return 0xff; } + virtual void fred_w(offs_t offset, uint8_t data) { } + virtual uint8_t jim_r(offs_t offset) { return 0xff; } + virtual void jim_w(offs_t offset, uint8_t data) { } protected: device_bbc_1mhzbus_interface(const machine_config &mconfig, device_t &device); diff --git a/src/devices/bus/bbc/1mhzbus/beebsid.cpp b/src/devices/bus/bbc/1mhzbus/beebsid.cpp index fe1fa7a876a..d50449ede99 100644 --- a/src/devices/bus/bbc/1mhzbus/beebsid.cpp +++ b/src/devices/bus/bbc/1mhzbus/beebsid.cpp @@ -65,7 +65,7 @@ void bbc_beebsid_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_beebsid_device::fred_r) +uint8_t bbc_beebsid_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -74,31 +74,31 @@ READ8_MEMBER(bbc_beebsid_device::fred_r) data = m_sid->read(offset); } - data &= m_1mhzbus->fred_r(space, offset); + data &= m_1mhzbus->fred_r(offset); return data; } -WRITE8_MEMBER(bbc_beebsid_device::fred_w) +void bbc_beebsid_device::fred_w(offs_t offset, uint8_t data) { if (offset >= 0x20 && offset < 0x40) { m_sid->write(offset, data); } - m_1mhzbus->fred_w(space, offset, data); + m_1mhzbus->fred_w(offset, data); } -READ8_MEMBER(bbc_beebsid_device::jim_r) +uint8_t bbc_beebsid_device::jim_r(offs_t offset) { uint8_t data = 0xff; - data &= m_1mhzbus->jim_r(space, offset); + data &= m_1mhzbus->jim_r(offset); return data; } -WRITE8_MEMBER(bbc_beebsid_device::jim_w) +void bbc_beebsid_device::jim_w(offs_t offset, uint8_t data) { - m_1mhzbus->jim_w(space, offset, data); + m_1mhzbus->jim_w(offset, data); } diff --git a/src/devices/bus/bbc/1mhzbus/beebsid.h b/src/devices/bus/bbc/1mhzbus/beebsid.h index d78d5486c10..107e875abde 100644 --- a/src/devices/bus/bbc/1mhzbus/beebsid.h +++ b/src/devices/bus/bbc/1mhzbus/beebsid.h @@ -34,10 +34,10 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; - virtual DECLARE_READ8_MEMBER(jim_r) override; - virtual DECLARE_WRITE8_MEMBER(jim_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; + virtual uint8_t jim_r(offs_t offset) override; + virtual void jim_w(offs_t offset, uint8_t data) override; private: required_device m_1mhzbus; diff --git a/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp b/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp index 0946d9cdf82..e5ac755e006 100644 --- a/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp +++ b/src/devices/bus/bbc/1mhzbus/cfa3000opt.cpp @@ -98,7 +98,7 @@ void cfa3000_opt_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(cfa3000_opt_device::fred_r) +uint8_t cfa3000_opt_device::fred_r(offs_t offset) { uint8_t data = 0xff; diff --git a/src/devices/bus/bbc/1mhzbus/cfa3000opt.h b/src/devices/bus/bbc/1mhzbus/cfa3000opt.h index 5a4e413754b..64913e95604 100644 --- a/src/devices/bus/bbc/1mhzbus/cfa3000opt.h +++ b/src/devices/bus/bbc/1mhzbus/cfa3000opt.h @@ -35,7 +35,7 @@ protected: // optional information overrides virtual ioport_constructor device_input_ports() const override; - virtual DECLARE_READ8_MEMBER(fred_r) override; + virtual uint8_t fred_r(offs_t offset) override; private: required_ioport m_opt; diff --git a/src/devices/bus/bbc/1mhzbus/emrmidi.cpp b/src/devices/bus/bbc/1mhzbus/emrmidi.cpp index a0e4b07a04d..6cfbacf23da 100644 --- a/src/devices/bus/bbc/1mhzbus/emrmidi.cpp +++ b/src/devices/bus/bbc/1mhzbus/emrmidi.cpp @@ -81,7 +81,7 @@ void bbc_emrmidi_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_emrmidi_device::fred_r) +uint8_t bbc_emrmidi_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -93,7 +93,7 @@ READ8_MEMBER(bbc_emrmidi_device::fred_r) return data; } -WRITE8_MEMBER(bbc_emrmidi_device::fred_w) +void bbc_emrmidi_device::fred_w(offs_t offset, uint8_t data) { if (offset >= 0xf0 && offset < 0xf2) { diff --git a/src/devices/bus/bbc/1mhzbus/emrmidi.h b/src/devices/bus/bbc/1mhzbus/emrmidi.h index bbc41992948..341e487ce24 100644 --- a/src/devices/bus/bbc/1mhzbus/emrmidi.h +++ b/src/devices/bus/bbc/1mhzbus/emrmidi.h @@ -36,8 +36,8 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; private: DECLARE_WRITE_LINE_MEMBER(write_acia_clock); diff --git a/src/devices/bus/bbc/1mhzbus/ieee488.cpp b/src/devices/bus/bbc/1mhzbus/ieee488.cpp index 3c280c06ad7..3aae6fe2f54 100644 --- a/src/devices/bus/bbc/1mhzbus/ieee488.cpp +++ b/src/devices/bus/bbc/1mhzbus/ieee488.cpp @@ -197,7 +197,7 @@ void bbc_b488_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_ieee488_device::fred_r) +uint8_t bbc_ieee488_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -206,37 +206,37 @@ READ8_MEMBER(bbc_ieee488_device::fred_r) data = m_tms9914->read(offset & 0x07); } - data &= m_1mhzbus->fred_r(space, offset); + data &= m_1mhzbus->fred_r(offset); return data; } -WRITE8_MEMBER(bbc_ieee488_device::fred_w) +void bbc_ieee488_device::fred_w(offs_t offset, uint8_t data) { if (offset >= 0x20 && offset < 0x28) { m_tms9914->write(offset & 0x07, data); } - m_1mhzbus->fred_w(space, offset, data); + m_1mhzbus->fred_w(offset, data); } -READ8_MEMBER(bbc_ieee488_device::jim_r) +uint8_t bbc_ieee488_device::jim_r(offs_t offset) { uint8_t data = 0xff; - data &= m_1mhzbus->jim_r(space, offset); + data &= m_1mhzbus->jim_r(offset); return data; } -WRITE8_MEMBER(bbc_ieee488_device::jim_w) +void bbc_ieee488_device::jim_w(offs_t offset, uint8_t data) { - m_1mhzbus->jim_w(space, offset, data); + m_1mhzbus->jim_w(offset, data); } -READ8_MEMBER(bbc_b488_device::fred_r) +uint8_t bbc_b488_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -248,7 +248,7 @@ READ8_MEMBER(bbc_b488_device::fred_r) return data; } -WRITE8_MEMBER(bbc_b488_device::fred_w) +void bbc_b488_device::fred_w(offs_t offset, uint8_t data) { if (offset >= 0x20 && offset < 0x28) { @@ -257,7 +257,7 @@ WRITE8_MEMBER(bbc_b488_device::fred_w) } -//READ8_MEMBER(bbc_procyon_device::fred_r) +//uint8_t bbc_procyon_device::fred_r(offs_t offset) //{ //uint8_t data = 0xff; @@ -269,7 +269,7 @@ WRITE8_MEMBER(bbc_b488_device::fred_w) //return data; //} -//WRITE8_MEMBER(bbc_procyon_device::fred_w) +//void bbc_procyon_device::fred_w(offs_t offset, uint8_t data) //{ //if (offset >= 0x20 && offset < 0x28) //{ diff --git a/src/devices/bus/bbc/1mhzbus/ieee488.h b/src/devices/bus/bbc/1mhzbus/ieee488.h index 05a9e60c928..9b810b4bf8d 100644 --- a/src/devices/bus/bbc/1mhzbus/ieee488.h +++ b/src/devices/bus/bbc/1mhzbus/ieee488.h @@ -42,10 +42,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; - virtual DECLARE_READ8_MEMBER(jim_r) override; - virtual DECLARE_WRITE8_MEMBER(jim_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; + virtual uint8_t jim_r(offs_t offset) override; + virtual void jim_w(offs_t offset, uint8_t data) override; private: required_device m_ieee; @@ -69,8 +69,8 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; private: required_device m_ieee; @@ -94,8 +94,8 @@ private: // virtual void device_add_mconfig(machine_config &config) override; // virtual const tiny_rom_entry *device_rom_region() const override; // -// virtual DECLARE_READ8_MEMBER(fred_r) override; -// virtual DECLARE_WRITE8_MEMBER(fred_w) override; +// virtual uint8_t fred_r(offs_t offset) override; +// virtual void fred_w(offs_t offset, uint8_t data) override; // //private: // required_device m_ieee; diff --git a/src/devices/bus/bbc/1mhzbus/m2000.cpp b/src/devices/bus/bbc/1mhzbus/m2000.cpp index c842673486f..8203cada22e 100644 --- a/src/devices/bus/bbc/1mhzbus/m2000.cpp +++ b/src/devices/bus/bbc/1mhzbus/m2000.cpp @@ -91,7 +91,7 @@ void bbc_m2000_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_m2000_device::fred_r) +uint8_t bbc_m2000_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -113,12 +113,12 @@ READ8_MEMBER(bbc_m2000_device::fred_r) } } - data &= m_1mhzbus->fred_r(space, offset); + data &= m_1mhzbus->fred_r(offset); return data; } -WRITE8_MEMBER(bbc_m2000_device::fred_w) +void bbc_m2000_device::fred_w(offs_t offset, uint8_t data) { if (offset >= 0x08 && offset < 0x10) { @@ -138,21 +138,21 @@ WRITE8_MEMBER(bbc_m2000_device::fred_w) } } - m_1mhzbus->fred_w(space, offset, data); + m_1mhzbus->fred_w(offset, data); } -READ8_MEMBER(bbc_m2000_device::jim_r) +uint8_t bbc_m2000_device::jim_r(offs_t offset) { uint8_t data = 0xff; - data &= m_1mhzbus->jim_r(space, offset); + data &= m_1mhzbus->jim_r(offset); return data; } -WRITE8_MEMBER(bbc_m2000_device::jim_w) +void bbc_m2000_device::jim_w(offs_t offset, uint8_t data) { - m_1mhzbus->jim_w(space, offset, data); + m_1mhzbus->jim_w(offset, data); } WRITE_LINE_MEMBER(bbc_m2000_device::write_acia_clock) diff --git a/src/devices/bus/bbc/1mhzbus/m2000.h b/src/devices/bus/bbc/1mhzbus/m2000.h index f476c92dac5..eeee1034a4e 100644 --- a/src/devices/bus/bbc/1mhzbus/m2000.h +++ b/src/devices/bus/bbc/1mhzbus/m2000.h @@ -38,10 +38,10 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; - virtual DECLARE_READ8_MEMBER(jim_r) override; - virtual DECLARE_WRITE8_MEMBER(jim_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; + virtual uint8_t jim_r(offs_t offset) override; + virtual void jim_w(offs_t offset, uint8_t data) override; private: DECLARE_WRITE_LINE_MEMBER(write_acia_clock); diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp index 65a8a3134ec..77f21ac199a 100644 --- a/src/devices/bus/bbc/1mhzbus/opus3.cpp +++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp @@ -159,7 +159,7 @@ void bbc_opusa_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_opus3_device::fred_r) +uint8_t bbc_opus3_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -175,7 +175,7 @@ READ8_MEMBER(bbc_opus3_device::fred_r) return data; } -WRITE8_MEMBER(bbc_opus3_device::fred_w) +void bbc_opus3_device::fred_w(offs_t offset, uint8_t data) { floppy_image_device *floppy = nullptr; @@ -219,7 +219,7 @@ WRITE_LINE_MEMBER(bbc_opus3_device::fdc_drq_w) m_slot->nmi_w((m_fdc_drq && m_fdc_ie) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER(bbc_opus3_device::jim_r) +uint8_t bbc_opus3_device::jim_r(offs_t offset) { if ((m_ramdisk_page << 8) < m_ramdisk->size()) return m_ramdisk->read((m_ramdisk_page << 8) + offset); @@ -227,7 +227,7 @@ READ8_MEMBER(bbc_opus3_device::jim_r) return 0xff; } -WRITE8_MEMBER(bbc_opus3_device::jim_w) +void bbc_opus3_device::jim_w(offs_t offset, uint8_t data) { if ((m_ramdisk_page << 8) < m_ramdisk->size()) m_ramdisk->write((m_ramdisk_page << 8) + offset, data); diff --git a/src/devices/bus/bbc/1mhzbus/opus3.h b/src/devices/bus/bbc/1mhzbus/opus3.h index ef7a2174f5c..7d287f1622c 100644 --- a/src/devices/bus/bbc/1mhzbus/opus3.h +++ b/src/devices/bus/bbc/1mhzbus/opus3.h @@ -39,10 +39,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; - virtual DECLARE_READ8_MEMBER(jim_r) override; - virtual DECLARE_WRITE8_MEMBER(jim_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; + virtual uint8_t jim_r(offs_t offset) override; + virtual void jim_w(offs_t offset, uint8_t data) override; private: DECLARE_FLOPPY_FORMATS(floppy_formats); diff --git a/src/devices/bus/bbc/1mhzbus/sprite.cpp b/src/devices/bus/bbc/1mhzbus/sprite.cpp index a32ee0bc828..ee7f5f292e7 100644 --- a/src/devices/bus/bbc/1mhzbus/sprite.cpp +++ b/src/devices/bus/bbc/1mhzbus/sprite.cpp @@ -69,7 +69,7 @@ void bbc_sprite_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_sprite_device::fred_r) +uint8_t bbc_sprite_device::fred_r(offs_t offset) { uint8_t data = 0xff; @@ -85,7 +85,7 @@ READ8_MEMBER(bbc_sprite_device::fred_r) return data; } -WRITE8_MEMBER(bbc_sprite_device::fred_w) +void bbc_sprite_device::fred_w(offs_t offset, uint8_t data) { switch (offset) { diff --git a/src/devices/bus/bbc/1mhzbus/sprite.h b/src/devices/bus/bbc/1mhzbus/sprite.h index 11fb532ac9d..02b0cff5dc2 100644 --- a/src/devices/bus/bbc/1mhzbus/sprite.h +++ b/src/devices/bus/bbc/1mhzbus/sprite.h @@ -34,8 +34,8 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_READ8_MEMBER(fred_r) override; - virtual DECLARE_WRITE8_MEMBER(fred_w) override; + virtual uint8_t fred_r(offs_t offset) override; + virtual void fred_w(offs_t offset, uint8_t data) override; private: required_device m_vdp; diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp index 3c8a110707a..f3e2187ecd5 100644 --- a/src/devices/bus/bbc/exp/mertec.cpp +++ b/src/devices/bus/bbc/exp/mertec.cpp @@ -116,22 +116,22 @@ void bbc_mertec_device::upd7002_eoc(int data) READ8_MEMBER(bbc_mertec_device::fred_r) { - return m_2mhzbus->fred_r(space, offset); + return m_2mhzbus->fred_r(offset); } WRITE8_MEMBER(bbc_mertec_device::fred_w) { - m_2mhzbus->fred_w(space, offset, data); + m_2mhzbus->fred_w(offset, data); } READ8_MEMBER(bbc_mertec_device::jim_r) { - return m_2mhzbus->jim_r(space, offset); + return m_2mhzbus->jim_r(offset); } WRITE8_MEMBER(bbc_mertec_device::jim_w) { - m_2mhzbus->jim_w(space, offset, data); + m_2mhzbus->jim_w(offset, data); } READ8_MEMBER(bbc_mertec_device::sheila_r) diff --git a/src/devices/bus/bbc/tube/tube.cpp b/src/devices/bus/bbc/tube/tube.cpp index 2ac1bf5fb15..c0ff49915a6 100644 --- a/src/devices/bus/bbc/tube/tube.cpp +++ b/src/devices/bus/bbc/tube/tube.cpp @@ -92,10 +92,10 @@ void bbc_tube_slot_device::device_reset() // host_r //------------------------------------------------- -READ8_MEMBER(bbc_tube_slot_device::host_r) +uint8_t bbc_tube_slot_device::host_r(offs_t offset) { if (m_card) - return m_card->host_r(space, offset); + return m_card->host_r(offset); else return 0xfe; } @@ -104,10 +104,10 @@ READ8_MEMBER(bbc_tube_slot_device::host_r) // host_w //------------------------------------------------- -WRITE8_MEMBER(bbc_tube_slot_device::host_w) +void bbc_tube_slot_device::host_w(offs_t offset, uint8_t data) { if (m_card) - m_card->host_w(space, offset, data); + m_card->host_w(offset, data); } diff --git a/src/devices/bus/bbc/tube/tube.h b/src/devices/bus/bbc/tube/tube.h index 954867f0b7f..e0d66907cb6 100644 --- a/src/devices/bus/bbc/tube/tube.h +++ b/src/devices/bus/bbc/tube/tube.h @@ -66,8 +66,8 @@ public: // callbacks auto irq_handler() { return m_irq_handler.bind(); } - DECLARE_READ8_MEMBER( host_r ); - DECLARE_WRITE8_MEMBER( host_w ); + uint8_t host_r(offs_t offset); + void host_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } @@ -90,8 +90,8 @@ class device_bbc_tube_interface : public device_slot_card_interface { public: // reading and writing - virtual DECLARE_READ8_MEMBER(host_r) { return 0xfe; } - virtual DECLARE_WRITE8_MEMBER(host_w) { } + virtual uint8_t host_r(offs_t offset) { return 0xfe; } + virtual void host_w(offs_t offset, uint8_t data) { } protected: device_bbc_tube_interface(const machine_config &mconfig, device_t &device); diff --git a/src/devices/bus/bbc/tube/tube_6502.cpp b/src/devices/bus/bbc/tube/tube_6502.cpp index 8120ab16812..99852ca8d90 100644 --- a/src/devices/bus/bbc/tube/tube_6502.cpp +++ b/src/devices/bus/bbc/tube/tube_6502.cpp @@ -168,27 +168,27 @@ void bbc_tube_6502_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_6502_device::host_r) +uint8_t bbc_tube_6502_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_6502_device::host_w) +void bbc_tube_6502_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } -READ8_MEMBER(bbc_tube_6502_device::tube_r) +uint8_t bbc_tube_6502_device::tube_r(offs_t offset) { // Disable ROM on first access if (!machine().side_effects_disabled()) m_bankdev->set_bank(1); - return m_ula->parasite_r(space, offset); + return m_ula->parasite_r(offset); } -WRITE8_MEMBER(bbc_tube_6502_device::tube_w) +void bbc_tube_6502_device::tube_w(offs_t offset, uint8_t data) { - m_ula->parasite_w(space, offset, data); + m_ula->parasite_w(offset, data); } diff --git a/src/devices/bus/bbc/tube/tube_6502.h b/src/devices/bus/bbc/tube/tube_6502.h index 244eb9f2105..abb907ef3bd 100644 --- a/src/devices/bus/bbc/tube/tube_6502.h +++ b/src/devices/bus/bbc/tube/tube_6502.h @@ -52,11 +52,11 @@ protected: void add_common_devices(machine_config &config); - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; - virtual DECLARE_READ8_MEMBER( tube_r ); - virtual DECLARE_WRITE8_MEMBER( tube_w ); + virtual uint8_t tube_r(offs_t offset); + virtual void tube_w(offs_t offset, uint8_t data); required_device m_maincpu; required_device m_bankdev; diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp index 4721d48e534..85331ab1b2a 100644 --- a/src/devices/bus/bbc/tube/tube_80186.cpp +++ b/src/devices/bus/bbc/tube/tube_80186.cpp @@ -126,12 +126,12 @@ void bbc_tube_80186_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_80186_device::host_r) +uint8_t bbc_tube_80186_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_80186_device::host_w) +void bbc_tube_80186_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } diff --git a/src/devices/bus/bbc/tube/tube_80186.h b/src/devices/bus/bbc/tube/tube_80186.h index 3081acbddac..42f757e75e4 100644 --- a/src/devices/bus/bbc/tube/tube_80186.h +++ b/src/devices/bus/bbc/tube/tube_80186.h @@ -40,8 +40,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; private: required_device m_i80186; diff --git a/src/devices/bus/bbc/tube/tube_80286.cpp b/src/devices/bus/bbc/tube/tube_80286.cpp index f38761341f5..e8ff167d0fb 100644 --- a/src/devices/bus/bbc/tube/tube_80286.cpp +++ b/src/devices/bus/bbc/tube/tube_80286.cpp @@ -129,24 +129,25 @@ void bbc_tube_80286_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_80286_device::host_r) +uint8_t bbc_tube_80286_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_80286_device::host_w) +void bbc_tube_80286_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } -READ8_MEMBER(bbc_tube_80286_device::disable_boot_rom) +uint8_t bbc_tube_80286_device::disable_boot_rom() { - m_i80286->space(AS_PROGRAM).install_ram(0xc0000, 0xfffff, m_ram->pointer() + 0xc0000); + if (!machine().side_effects_disabled()) + m_i80286->space(AS_PROGRAM).install_ram(0xc0000, 0xfffff, m_ram->pointer() + 0xc0000); return 0xff; } -WRITE8_MEMBER(bbc_tube_80286_device::irq_latch_w) +void bbc_tube_80286_device::irq_latch_w(uint8_t data) { m_irq_latch = data; } diff --git a/src/devices/bus/bbc/tube/tube_80286.h b/src/devices/bus/bbc/tube/tube_80286.h index da2d807477b..a6e952d6bf2 100644 --- a/src/devices/bus/bbc/tube/tube_80286.h +++ b/src/devices/bus/bbc/tube/tube_80286.h @@ -38,8 +38,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; private: uint8_t m_irq_latch; @@ -51,8 +51,8 @@ private: required_device m_ram; required_memory_region m_bootstrap; - DECLARE_READ8_MEMBER( disable_boot_rom ); - DECLARE_WRITE8_MEMBER( irq_latch_w ); + uint8_t disable_boot_rom(); + void irq_latch_w(uint8_t data); void tube_80286_io(address_map &map); void tube_80286_mem(address_map &map); diff --git a/src/devices/bus/bbc/tube/tube_arm.cpp b/src/devices/bus/bbc/tube/tube_arm.cpp index 444e188a657..463a82713be 100644 --- a/src/devices/bus/bbc/tube/tube_arm.cpp +++ b/src/devices/bus/bbc/tube/tube_arm.cpp @@ -120,18 +120,18 @@ void bbc_tube_arm_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_arm_device::host_r) +uint8_t bbc_tube_arm_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_arm_device::host_w) +void bbc_tube_arm_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } -READ8_MEMBER(bbc_tube_arm_device::ram_r) +uint8_t bbc_tube_arm_device::ram_r(offs_t offset) { uint8_t data; @@ -143,7 +143,7 @@ READ8_MEMBER(bbc_tube_arm_device::ram_r) return data; } -WRITE8_MEMBER(bbc_tube_arm_device::ram_w) +void bbc_tube_arm_device::ram_w(offs_t offset, uint8_t data) { /* clear ROM select on first write */ if (!machine().side_effects_disabled()) m_rom_select = false; diff --git a/src/devices/bus/bbc/tube/tube_arm.h b/src/devices/bus/bbc/tube/tube_arm.h index 7b58d2b40bd..8470fec84ef 100644 --- a/src/devices/bus/bbc/tube/tube_arm.h +++ b/src/devices/bus/bbc/tube/tube_arm.h @@ -38,8 +38,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; private: required_device m_arm; @@ -49,8 +49,8 @@ private: bool m_rom_select; - DECLARE_READ8_MEMBER( ram_r ); - DECLARE_WRITE8_MEMBER( ram_w ); + uint8_t ram_r(offs_t offset); + void ram_w(offs_t offset, uint8_t data); void tube_arm_mem(address_map &map); }; diff --git a/src/devices/bus/bbc/tube/tube_casper.cpp b/src/devices/bus/bbc/tube/tube_casper.cpp index db84143f553..f6bb4bdce84 100644 --- a/src/devices/bus/bbc/tube/tube_casper.cpp +++ b/src/devices/bus/bbc/tube/tube_casper.cpp @@ -109,12 +109,12 @@ void bbc_tube_casper_device::device_start() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_casper_device::host_r) +uint8_t bbc_tube_casper_device::host_r(offs_t offset) { return m_via6522_0->read(offset & 0xf); } -WRITE8_MEMBER(bbc_tube_casper_device::host_w) +void bbc_tube_casper_device::host_w(offs_t offset, uint8_t data) { m_via6522_0->write(offset & 0xf, data); } diff --git a/src/devices/bus/bbc/tube/tube_casper.h b/src/devices/bus/bbc/tube/tube_casper.h index e464f4a8c68..965ac703355 100644 --- a/src/devices/bus/bbc/tube/tube_casper.h +++ b/src/devices/bus/bbc/tube/tube_casper.h @@ -36,8 +36,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; private: required_device m_m68000; diff --git a/src/devices/bus/bbc/tube/tube_rc6502.cpp b/src/devices/bus/bbc/tube/tube_rc6502.cpp index 80061f8a5ca..c567be6f98a 100644 --- a/src/devices/bus/bbc/tube/tube_rc6502.cpp +++ b/src/devices/bus/bbc/tube/tube_rc6502.cpp @@ -233,23 +233,23 @@ void bbc_tube_rc6502_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_rc6502_device::host_r) +uint8_t bbc_tube_rc6502_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_rc6502_device::host_w) +void bbc_tube_rc6502_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } -READ8_MEMBER(bbc_tube_rc6502_device::config_r) +uint8_t bbc_tube_rc6502_device::config_r() { return m_banknum; } -WRITE8_MEMBER(bbc_tube_rc6502_device::register_w) +void bbc_tube_rc6502_device::register_w(uint8_t data) { switch (data & 0x06) { diff --git a/src/devices/bus/bbc/tube/tube_rc6502.h b/src/devices/bus/bbc/tube/tube_rc6502.h index 77542cf4a45..eadb460cc96 100644 --- a/src/devices/bus/bbc/tube/tube_rc6502.h +++ b/src/devices/bus/bbc/tube/tube_rc6502.h @@ -47,11 +47,11 @@ protected: void add_common_devices(machine_config &config); - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; - DECLARE_READ8_MEMBER(config_r); - DECLARE_WRITE8_MEMBER(register_w); + uint8_t config_r(); + void register_w(uint8_t data); void tube_rc6502_bank(address_map &map); diff --git a/src/devices/bus/bbc/tube/tube_z80.cpp b/src/devices/bus/bbc/tube/tube_z80.cpp index cc6f87527bf..06e6931c7a3 100644 --- a/src/devices/bus/bbc/tube/tube_z80.cpp +++ b/src/devices/bus/bbc/tube/tube_z80.cpp @@ -134,18 +134,18 @@ void bbc_tube_z80_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_z80_device::host_r) +uint8_t bbc_tube_z80_device::host_r(offs_t offset) { - return m_ula->host_r(space, offset); + return m_ula->host_r(offset); } -WRITE8_MEMBER(bbc_tube_z80_device::host_w) +void bbc_tube_z80_device::host_w(offs_t offset, uint8_t data) { - m_ula->host_w(space, offset, data); + m_ula->host_w(offset, data); } -READ8_MEMBER(bbc_tube_z80_device::opcode_r) +uint8_t bbc_tube_z80_device::opcode_r(offs_t offset) { if (!machine().side_effects_disabled()) { @@ -158,7 +158,7 @@ READ8_MEMBER(bbc_tube_z80_device::opcode_r) } -READ8_MEMBER(bbc_tube_z80_device::mem_r) +uint8_t bbc_tube_z80_device::mem_r(offs_t offset) { uint8_t data; @@ -170,7 +170,7 @@ READ8_MEMBER(bbc_tube_z80_device::mem_r) return data; } -WRITE8_MEMBER(bbc_tube_z80_device::mem_w) +void bbc_tube_z80_device::mem_w(offs_t offset, uint8_t data) { m_ram->pointer()[offset] = data; } diff --git a/src/devices/bus/bbc/tube/tube_z80.h b/src/devices/bus/bbc/tube/tube_z80.h index e35dfa02ef4..536e506d43d 100644 --- a/src/devices/bus/bbc/tube/tube_z80.h +++ b/src/devices/bus/bbc/tube/tube_z80.h @@ -40,8 +40,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; private: IRQ_CALLBACK_MEMBER( irq_callback ); @@ -54,9 +54,9 @@ private: bool m_rom_enabled; - DECLARE_READ8_MEMBER( mem_r ); - DECLARE_WRITE8_MEMBER( mem_w ); - DECLARE_READ8_MEMBER( opcode_r ); + uint8_t mem_r(offs_t offset); + void mem_w(offs_t offset, uint8_t data); + uint8_t opcode_r(offs_t offset); void tube_z80_fetch(address_map &map); void tube_z80_io(address_map &map); diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp index 6ec898bb705..f11f0af6415 100644 --- a/src/devices/bus/bbc/tube/tube_zep100.cpp +++ b/src/devices/bus/bbc/tube/tube_zep100.cpp @@ -146,12 +146,12 @@ void bbc_tube_zep100_device::device_reset() // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(bbc_tube_zep100_device::host_r) +uint8_t bbc_tube_zep100_device::host_r(offs_t offset) { return m_via->read(offset & 0x0f); } -WRITE8_MEMBER(bbc_tube_zep100_device::host_w) +void bbc_tube_zep100_device::host_w(offs_t offset, uint8_t data) { if (offset & 0x10) m_z80->reset(); @@ -160,7 +160,7 @@ WRITE8_MEMBER(bbc_tube_zep100_device::host_w) } -READ8_MEMBER(bbc_tube_zep100_device::mem_r) +uint8_t bbc_tube_zep100_device::mem_r(offs_t offset) { uint8_t data; @@ -172,13 +172,13 @@ READ8_MEMBER(bbc_tube_zep100_device::mem_r) return data; } -WRITE8_MEMBER(bbc_tube_zep100_device::mem_w) +void bbc_tube_zep100_device::mem_w(offs_t offset, uint8_t data) { m_ram->pointer()[offset] = data; } -READ8_MEMBER(bbc_tube_zep100_device::io_r) +uint8_t bbc_tube_zep100_device::io_r(offs_t offset) { uint8_t data = 0xff; @@ -190,23 +190,23 @@ READ8_MEMBER(bbc_tube_zep100_device::io_r) return data; } -WRITE8_MEMBER(bbc_tube_zep100_device::io_w) +void bbc_tube_zep100_device::io_w(offs_t offset, uint8_t data) { m_ppi->write(offset & 0x03, data); } -WRITE8_MEMBER(bbc_tube_zep100_device::via_pb_w) +void bbc_tube_zep100_device::via_pb_w(uint8_t data) { m_port_b = data; } -READ8_MEMBER(bbc_tube_zep100_device::ppi_pb_r) +uint8_t bbc_tube_zep100_device::ppi_pb_r() { return m_port_b; } -WRITE8_MEMBER(bbc_tube_zep100_device::ppi_pc_w) +void bbc_tube_zep100_device::ppi_pc_w(uint8_t data) { m_via->write_ca1(BIT(data, 7)); m_via->write_cb1(BIT(data, 1)); diff --git a/src/devices/bus/bbc/tube/tube_zep100.h b/src/devices/bus/bbc/tube/tube_zep100.h index 24b07ea4269..b7f881fcfac 100644 --- a/src/devices/bus/bbc/tube/tube_zep100.h +++ b/src/devices/bus/bbc/tube/tube_zep100.h @@ -43,8 +43,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual DECLARE_READ8_MEMBER( host_r ) override; - virtual DECLARE_WRITE8_MEMBER( host_w ) override; + virtual uint8_t host_r(offs_t offset) override; + virtual void host_w(offs_t offset, uint8_t data) override; bool m_rom_enabled; @@ -57,14 +57,14 @@ private: uint8_t m_port_b; - DECLARE_READ8_MEMBER( mem_r ); - DECLARE_WRITE8_MEMBER( mem_w ); - DECLARE_READ8_MEMBER( io_r ); - DECLARE_WRITE8_MEMBER( io_w ); + uint8_t mem_r(offs_t offset); + void mem_w(offs_t offset, uint8_t data); + uint8_t io_r(offs_t offset); + void io_w(offs_t offset, uint8_t data); - DECLARE_WRITE8_MEMBER( via_pb_w ); - DECLARE_READ8_MEMBER( ppi_pb_r ); - DECLARE_WRITE8_MEMBER( ppi_pc_w ); + void via_pb_w(uint8_t data); + uint8_t ppi_pb_r(); + void ppi_pc_w(uint8_t data); void tube_zep100_io(address_map &map); void tube_zep100_mem(address_map &map); diff --git a/src/devices/bus/electron/cart/abr.cpp b/src/devices/bus/electron/cart/abr.cpp index e820b513ff1..1d2455e56c1 100644 --- a/src/devices/bus/electron/cart/abr.cpp +++ b/src/devices/bus/electron/cart/abr.cpp @@ -46,7 +46,7 @@ void electron_abr_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_abr_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_abr_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -62,7 +62,7 @@ uint8_t electron_abr_device::read(address_space &space, offs_t offset, int infc, // write - cartridge data write //------------------------------------------------- -void electron_abr_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_abr_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/abr.h b/src/devices/bus/electron/cart/abr.h index 39652c8a4af..3ef92c95a8d 100644 --- a/src/devices/bus/electron/cart/abr.h +++ b/src/devices/bus/electron/cart/abr.h @@ -32,8 +32,8 @@ protected: virtual void device_start() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: bool m_bank_locked[2]; diff --git a/src/devices/bus/electron/cart/ap34.cpp b/src/devices/bus/electron/cart/ap34.cpp index d4f43c5c573..694df390266 100644 --- a/src/devices/bus/electron/cart/ap34.cpp +++ b/src/devices/bus/electron/cart/ap34.cpp @@ -81,7 +81,7 @@ void electron_ap34_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_ap34_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_ap34_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -116,14 +116,14 @@ uint8_t electron_ap34_device::read(address_space &space, offs_t offset, int infc // write - cartridge data write //------------------------------------------------- -void electron_ap34_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_ap34_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { switch (offset & 0xff) { case 0xc0: - wd1770_control_w(space, 0, data); + wd1770_control_w(data); break; case 0xc4: case 0xc5: @@ -147,7 +147,7 @@ void electron_ap34_device::write(address_space &space, offs_t offset, uint8_t da // IMPLEMENTATION //************************************************************************** -WRITE8_MEMBER(electron_ap34_device::wd1770_control_w) +void electron_ap34_device::wd1770_control_w(uint8_t data) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/electron/cart/ap34.h b/src/devices/bus/electron/cart/ap34.h index fe20faaf3fe..69b47514487 100644 --- a/src/devices/bus/electron/cart/ap34.h +++ b/src/devices/bus/electron/cart/ap34.h @@ -36,11 +36,11 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: - DECLARE_WRITE8_MEMBER(wd1770_control_w); + void wd1770_control_w(uint8_t data); DECLARE_FLOPPY_FORMATS(floppy_formats); required_device m_fdc; diff --git a/src/devices/bus/electron/cart/ap5.cpp b/src/devices/bus/electron/cart/ap5.cpp index f613eade1f1..660587c7642 100644 --- a/src/devices/bus/electron/cart/ap5.cpp +++ b/src/devices/bus/electron/cart/ap5.cpp @@ -82,13 +82,13 @@ void electron_ap5_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_ap5_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; if (infc) { - data = m_1mhzbus->fred_r(space, offset); + data = m_1mhzbus->fred_r(offset); switch (offset & 0xf0) { @@ -97,13 +97,13 @@ uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc, break; case 0xe0: - data &= m_tube->host_r(space, offset & 0x0f); + data &= m_tube->host_r(offset & 0x0f); break; } } else if (infd) { - data = m_1mhzbus->jim_r(space, offset); + data = m_1mhzbus->jim_r(offset); } else if (oe) { @@ -121,11 +121,11 @@ uint8_t electron_ap5_device::read(address_space &space, offs_t offset, int infc, // write - cartridge data write //------------------------------------------------- -void electron_ap5_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_ap5_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { - m_1mhzbus->fred_w(space, offset, data); + m_1mhzbus->fred_w(offset, data); switch (offset & 0xf0) { @@ -134,13 +134,13 @@ void electron_ap5_device::write(address_space &space, offs_t offset, uint8_t dat break; case 0xe0: - m_tube->host_w(space, offset & 0x0f, data); + m_tube->host_w(offset & 0x0f, data); break; } } else if (infd) { - m_1mhzbus->jim_w(space, offset, data); + m_1mhzbus->jim_w(offset, data); } } diff --git a/src/devices/bus/electron/cart/ap5.h b/src/devices/bus/electron/cart/ap5.h index 054ba777707..846f3fbc649 100644 --- a/src/devices/bus/electron/cart/ap5.h +++ b/src/devices/bus/electron/cart/ap5.h @@ -37,8 +37,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); diff --git a/src/devices/bus/electron/cart/aqr.cpp b/src/devices/bus/electron/cart/aqr.cpp index f42afa6dd98..8be0176efc4 100644 --- a/src/devices/bus/electron/cart/aqr.cpp +++ b/src/devices/bus/electron/cart/aqr.cpp @@ -48,7 +48,7 @@ void electron_aqr_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_aqr_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_aqr_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -64,7 +64,7 @@ uint8_t electron_aqr_device::read(address_space &space, offs_t offset, int infc, // write - cartridge data write //------------------------------------------------- -void electron_aqr_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_aqr_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/aqr.h b/src/devices/bus/electron/cart/aqr.h index b25f68b92c0..820f967b5cf 100644 --- a/src/devices/bus/electron/cart/aqr.h +++ b/src/devices/bus/electron/cart/aqr.h @@ -32,8 +32,8 @@ protected: virtual void device_start() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: uint8_t m_page_register; diff --git a/src/devices/bus/electron/cart/click.cpp b/src/devices/bus/electron/cart/click.cpp index c8366a90ed4..25df0aa611d 100644 --- a/src/devices/bus/electron/cart/click.cpp +++ b/src/devices/bus/electron/cart/click.cpp @@ -88,7 +88,7 @@ void electron_click_device::device_reset() // read - cartridge data read //------------------------------------------------- -uint8_t electron_click_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_click_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -98,7 +98,7 @@ uint8_t electron_click_device::read(address_space &space, offs_t offset, int inf { case 0xf8: case 0xf9: - data = m_rtc->read(space, offset & 0x01); + data = m_rtc->read(machine().dummy_space(), offset & 0x01); break; case 0xfc: data = m_page_register; @@ -127,7 +127,7 @@ uint8_t electron_click_device::read(address_space &space, offs_t offset, int inf // write - cartridge data write //------------------------------------------------- -void electron_click_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_click_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { @@ -135,7 +135,7 @@ void electron_click_device::write(address_space &space, offs_t offset, uint8_t d { case 0xf8: case 0xf9: - m_rtc->write(space, offset & 0x01, data); + m_rtc->write(machine().dummy_space(), offset & 0x01, data); break; case 0xfc: m_page_register = data; diff --git a/src/devices/bus/electron/cart/click.h b/src/devices/bus/electron/cart/click.h index f3a589b4a74..cb7dd114687 100644 --- a/src/devices/bus/electron/cart/click.h +++ b/src/devices/bus/electron/cart/click.h @@ -41,8 +41,8 @@ protected: virtual void device_reset() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: required_device m_rtc; diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp index 200fc6d8abe..dc965f6cb1d 100644 --- a/src/devices/bus/electron/cart/cumana.cpp +++ b/src/devices/bus/electron/cart/cumana.cpp @@ -87,7 +87,7 @@ void electron_cumana_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_cumana_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -103,7 +103,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in break; case 0x98: case 0x9c: - data = m_rtc->read(space, BIT(offset, 2)); + data = m_rtc->read(machine().dummy_space(), BIT(offset, 2)); break; } } @@ -134,7 +134,7 @@ uint8_t electron_cumana_device::read(address_space &space, offs_t offset, int in // write - cartridge data write //------------------------------------------------- -void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_cumana_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { @@ -147,12 +147,11 @@ void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t m_fdc->write(offset & 0x03, data); break; case 0x94: - wd1793_control_w(space, 0, data); + wd1793_control_w(data); break; case 0x98: case 0x9c: - m_rtc->write(space, BIT(offset, 2), data); - break; + m_rtc->write(machine().dummy_space(), BIT(offset, 2), data); break; } } @@ -170,7 +169,7 @@ void electron_cumana_device::write(address_space &space, offs_t offset, uint8_t // IMPLEMENTATION //************************************************************************** -WRITE8_MEMBER(electron_cumana_device::wd1793_control_w) +void electron_cumana_device::wd1793_control_w(uint8_t data) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/electron/cart/cumana.h b/src/devices/bus/electron/cart/cumana.h index 3780d4ff172..9a3bc2ab834 100644 --- a/src/devices/bus/electron/cart/cumana.h +++ b/src/devices/bus/electron/cart/cumana.h @@ -37,11 +37,11 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: - DECLARE_WRITE8_MEMBER(wd1793_control_w); + void wd1793_control_w(uint8_t data); DECLARE_FLOPPY_FORMATS(floppy_formats); required_device m_fdc; diff --git a/src/devices/bus/electron/cart/mgc.cpp b/src/devices/bus/electron/cart/mgc.cpp index 9c7d79c0dc4..5f80559c47a 100644 --- a/src/devices/bus/electron/cart/mgc.cpp +++ b/src/devices/bus/electron/cart/mgc.cpp @@ -65,7 +65,7 @@ void electron_mgc_device::device_reset() // read - cartridge data read //------------------------------------------------- -uint8_t electron_mgc_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_mgc_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -82,7 +82,7 @@ uint8_t electron_mgc_device::read(address_space &space, offs_t offset, int infc, // write - cartridge data write //------------------------------------------------- -void electron_mgc_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_mgc_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/mgc.h b/src/devices/bus/electron/cart/mgc.h index a5e5ed1be8f..bf23aa34391 100644 --- a/src/devices/bus/electron/cart/mgc.h +++ b/src/devices/bus/electron/cart/mgc.h @@ -33,8 +33,8 @@ protected: virtual void device_reset() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: uint8_t m_page_latch; diff --git a/src/devices/bus/electron/cart/peg400.cpp b/src/devices/bus/electron/cart/peg400.cpp index eb41e5e8730..abca703474a 100644 --- a/src/devices/bus/electron/cart/peg400.cpp +++ b/src/devices/bus/electron/cart/peg400.cpp @@ -79,7 +79,7 @@ void electron_peg400_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_peg400_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_peg400_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -122,14 +122,14 @@ uint8_t electron_peg400_device::read(address_space &space, offs_t offset, int in // write - cartridge data write //------------------------------------------------- -void electron_peg400_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_peg400_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { switch (offset & 0xff) { case 0xc0: - wd1770_control_w(space, 0, data); + wd1770_control_w(data); break; case 0xc4: case 0xc5: @@ -153,7 +153,7 @@ void electron_peg400_device::write(address_space &space, offs_t offset, uint8_t // IMPLEMENTATION //************************************************************************** -WRITE8_MEMBER(electron_peg400_device::wd1770_control_w) +void electron_peg400_device::wd1770_control_w(uint8_t data) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/electron/cart/peg400.h b/src/devices/bus/electron/cart/peg400.h index e24e5a0a911..035947a1e59 100644 --- a/src/devices/bus/electron/cart/peg400.h +++ b/src/devices/bus/electron/cart/peg400.h @@ -34,11 +34,11 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: - DECLARE_WRITE8_MEMBER(wd1770_control_w); + void wd1770_control_w(uint8_t data); DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); diff --git a/src/devices/bus/electron/cart/slot.cpp b/src/devices/bus/electron/cart/slot.cpp index 99969e990cb..00ead3b654a 100644 --- a/src/devices/bus/electron/cart/slot.cpp +++ b/src/devices/bus/electron/cart/slot.cpp @@ -229,13 +229,13 @@ std::string electron_cartslot_device::get_default_card_software(get_default_card // read - cartridge read //------------------------------------------------- -uint8_t electron_cartslot_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_cartslot_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; if (m_cart != nullptr) { - data = m_cart->read(space, offset, infc, infd, romqa, oe, oe2); + data = m_cart->read(offset, infc, infd, romqa, oe, oe2); } return data; @@ -245,11 +245,11 @@ uint8_t electron_cartslot_device::read(address_space &space, offs_t offset, int // write - cartridge write //------------------------------------------------- -void electron_cartslot_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_cartslot_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (m_cart != nullptr) { - m_cart->write(space, offset, data, infc, infd, romqa, oe, oe2); + m_cart->write(offset, data, infc, infd, romqa, oe, oe2); } } diff --git a/src/devices/bus/electron/cart/slot.h b/src/devices/bus/electron/cart/slot.h index 39eabf39a08..d31bc16258c 100644 --- a/src/devices/bus/electron/cart/slot.h +++ b/src/devices/bus/electron/cart/slot.h @@ -158,8 +158,8 @@ public: virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; // reading and writing - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2); - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2); + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2); + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2); DECLARE_WRITE_LINE_MEMBER(irq_w) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER(nmi_w) { m_nmi_handler(state); } @@ -182,8 +182,8 @@ public: virtual ~device_electron_cart_interface(); // reading and writing - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { return 0xff; } - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { } + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { return 0xff; } + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { } void rom_alloc(uint32_t size, const char *tag); void ram_alloc(uint32_t size); diff --git a/src/devices/bus/electron/cart/sndexp.cpp b/src/devices/bus/electron/cart/sndexp.cpp index f1f7c6f951e..4ba27cb4825 100644 --- a/src/devices/bus/electron/cart/sndexp.cpp +++ b/src/devices/bus/electron/cart/sndexp.cpp @@ -89,7 +89,7 @@ void electron_sndexp_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_sndexp_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_sndexp_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -126,7 +126,7 @@ uint8_t electron_sndexp_device::read(address_space &space, offs_t offset, int in // write - cartridge data write //------------------------------------------------- -void electron_sndexp_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_sndexp_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/sndexp.h b/src/devices/bus/electron/cart/sndexp.h index 6baece10fbe..5627c2ff734 100644 --- a/src/devices/bus/electron/cart/sndexp.h +++ b/src/devices/bus/electron/cart/sndexp.h @@ -33,8 +33,8 @@ protected: virtual ioport_constructor device_input_ports() const override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: required_device m_sn; diff --git a/src/devices/bus/electron/cart/sndexp3.cpp b/src/devices/bus/electron/cart/sndexp3.cpp index b132cd40ce6..afaf927e443 100644 --- a/src/devices/bus/electron/cart/sndexp3.cpp +++ b/src/devices/bus/electron/cart/sndexp3.cpp @@ -62,7 +62,7 @@ void electron_sndexp3_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_sndexp3_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_sndexp3_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -85,7 +85,7 @@ uint8_t electron_sndexp3_device::read(address_space &space, offs_t offset, int i // write - cartridge data write //------------------------------------------------- -void electron_sndexp3_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_sndexp3_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/sndexp3.h b/src/devices/bus/electron/cart/sndexp3.h index ae5ec7c1d40..95d437b63e2 100644 --- a/src/devices/bus/electron/cart/sndexp3.h +++ b/src/devices/bus/electron/cart/sndexp3.h @@ -32,8 +32,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: required_device m_sn; diff --git a/src/devices/bus/electron/cart/sp64.cpp b/src/devices/bus/electron/cart/sp64.cpp index 11bd0d26f25..9b5d497999e 100644 --- a/src/devices/bus/electron/cart/sp64.cpp +++ b/src/devices/bus/electron/cart/sp64.cpp @@ -55,7 +55,7 @@ void electron_sp64_device::device_reset() // read - cartridge data read //------------------------------------------------- -uint8_t electron_sp64_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_sp64_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -90,7 +90,7 @@ uint8_t electron_sp64_device::read(address_space &space, offs_t offset, int infc // write - cartridge data write //------------------------------------------------- -void electron_sp64_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_sp64_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { diff --git a/src/devices/bus/electron/cart/sp64.h b/src/devices/bus/electron/cart/sp64.h index e7e1c227d4c..68954fc9d30 100644 --- a/src/devices/bus/electron/cart/sp64.h +++ b/src/devices/bus/electron/cart/sp64.h @@ -33,8 +33,8 @@ protected: virtual void device_reset() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: uint8_t m_page_register; diff --git a/src/devices/bus/electron/cart/std.cpp b/src/devices/bus/electron/cart/std.cpp index 3c498acbab2..f2b7333f347 100644 --- a/src/devices/bus/electron/cart/std.cpp +++ b/src/devices/bus/electron/cart/std.cpp @@ -43,7 +43,7 @@ void electron_stdcart_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_stdcart_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_stdcart_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; diff --git a/src/devices/bus/electron/cart/std.h b/src/devices/bus/electron/cart/std.h index 9d9a5e1381c..3fc9cefbcd9 100644 --- a/src/devices/bus/electron/cart/std.h +++ b/src/devices/bus/electron/cart/std.h @@ -31,7 +31,7 @@ protected: virtual void device_start() override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; }; // device type definition diff --git a/src/devices/bus/electron/cart/stlefs.cpp b/src/devices/bus/electron/cart/stlefs.cpp index 6eba01c8527..47566871a9d 100644 --- a/src/devices/bus/electron/cart/stlefs.cpp +++ b/src/devices/bus/electron/cart/stlefs.cpp @@ -83,7 +83,7 @@ void electron_stlefs_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_stlefs_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_stlefs_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -111,14 +111,14 @@ uint8_t electron_stlefs_device::read(address_space &space, offs_t offset, int in // write - cartridge data write //------------------------------------------------- -void electron_stlefs_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_stlefs_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { switch (offset & 0xff) { case 0xc0: - wd1770_control_w(space, 0, data); + wd1770_control_w(data); break; case 0xc4: case 0xc5: @@ -137,7 +137,7 @@ void electron_stlefs_device::write(address_space &space, offs_t offset, uint8_t // IMPLEMENTATION //************************************************************************** -WRITE8_MEMBER(electron_stlefs_device::wd1770_control_w) +void electron_stlefs_device::wd1770_control_w(uint8_t data) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/electron/cart/stlefs.h b/src/devices/bus/electron/cart/stlefs.h index a476ee50ea3..421850943e2 100644 --- a/src/devices/bus/electron/cart/stlefs.h +++ b/src/devices/bus/electron/cart/stlefs.h @@ -36,11 +36,11 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: - DECLARE_WRITE8_MEMBER(wd1770_control_w); + void wd1770_control_w(uint8_t data); DECLARE_FLOPPY_FORMATS(floppy_formats); required_device m_fdc; diff --git a/src/devices/bus/electron/cart/tube.cpp b/src/devices/bus/electron/cart/tube.cpp index 99d4f8ba9d2..02dcd00275d 100644 --- a/src/devices/bus/electron/cart/tube.cpp +++ b/src/devices/bus/electron/cart/tube.cpp @@ -56,7 +56,7 @@ void electron_tube_device::device_start() // read - cartridge data read //------------------------------------------------- -uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) +uint8_t electron_tube_device::read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) { uint8_t data = 0xff; @@ -64,7 +64,7 @@ uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc { if (offset >= 0xe0 && offset < 0xf0) { - data = m_tube->host_r(space, offset & 0x0f); + data = m_tube->host_r(offset & 0x0f); } } else if (oe2) @@ -79,13 +79,13 @@ uint8_t electron_tube_device::read(address_space &space, offs_t offset, int infc // write - cartridge data write //------------------------------------------------- -void electron_tube_device::write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) +void electron_tube_device::write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) { if (infc) { if (offset >= 0xe0 && offset < 0xf0) { - m_tube->host_w(space, offset & 0x0f, data); + m_tube->host_w(offset & 0x0f, data); } } } diff --git a/src/devices/bus/electron/cart/tube.h b/src/devices/bus/electron/cart/tube.h index c77017f9598..1d239ef5215 100644 --- a/src/devices/bus/electron/cart/tube.h +++ b/src/devices/bus/electron/cart/tube.h @@ -32,8 +32,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // electron_cart_interface overrides - virtual uint8_t read(address_space &space, offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; - virtual void write(address_space &space, offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; + virtual uint8_t read(offs_t offset, int infc, int infd, int romqa, int oe, int oe2) override; + virtual void write(offs_t offset, uint8_t data, int infc, int infd, int romqa, int oe, int oe2) override; private: required_device m_tube; diff --git a/src/devices/bus/electron/exp.cpp b/src/devices/bus/electron/exp.cpp index afa58d9c40a..d2cd0abc824 100644 --- a/src/devices/bus/electron/exp.cpp +++ b/src/devices/bus/electron/exp.cpp @@ -75,13 +75,13 @@ void electron_expansion_slot_device::device_reset() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_expansion_slot_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_expansion_slot_device::expbus_r(offs_t offset) { uint8_t data = 0xff; if (m_card != nullptr) { - data = m_card->expbus_r(space, offset); + data = m_card->expbus_r(offset); } return data; @@ -91,11 +91,11 @@ uint8_t electron_expansion_slot_device::expbus_r(address_space &space, offs_t of // expbus_w - expansion data write //------------------------------------------------- -void electron_expansion_slot_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_expansion_slot_device::expbus_w(offs_t offset, uint8_t data) { if (m_card != nullptr) { - m_card->expbus_w(space, offset, data); + m_card->expbus_w(offset, data); } } diff --git a/src/devices/bus/electron/exp.h b/src/devices/bus/electron/exp.h index 9902784a532..a3bfc045b3a 100644 --- a/src/devices/bus/electron/exp.h +++ b/src/devices/bus/electron/exp.h @@ -117,8 +117,8 @@ public: auto irq_handler() { return m_irq_handler.bind(); } auto nmi_handler() { return m_nmi_handler.bind(); } - uint8_t expbus_r(address_space &space, offs_t offset); - void expbus_w(address_space &space, offs_t offset, uint8_t data); + uint8_t expbus_r(offs_t offset); + void expbus_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } @@ -141,8 +141,8 @@ private: class device_electron_expansion_interface : public device_slot_card_interface { public: - virtual uint8_t expbus_r(address_space &space, offs_t offset) { return 0xff; } - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t expbus_r(offs_t offset) { return 0xff; } + virtual void expbus_w(offs_t offset, uint8_t data) { } protected: device_electron_expansion_interface(const machine_config &mconfig, device_t &device); diff --git a/src/devices/bus/electron/fbjoy.cpp b/src/devices/bus/electron/fbjoy.cpp index ce9de6b9081..e5a4042cfeb 100644 --- a/src/devices/bus/electron/fbjoy.cpp +++ b/src/devices/bus/electron/fbjoy.cpp @@ -67,7 +67,7 @@ void electron_fbjoy_device::device_start() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_fbjoy_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_fbjoy_device::expbus_r(offs_t offset) { uint8_t data = 0xff; diff --git a/src/devices/bus/electron/fbjoy.h b/src/devices/bus/electron/fbjoy.h index 0f475cfbef9..d9faaa6cd15 100644 --- a/src/devices/bus/electron/fbjoy.h +++ b/src/devices/bus/electron/fbjoy.h @@ -33,7 +33,7 @@ public: // optional information overrides virtual ioport_constructor device_input_ports() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; + virtual uint8_t expbus_r(offs_t offset) override; protected: // device-level overrides diff --git a/src/devices/bus/electron/m2105.cpp b/src/devices/bus/electron/m2105.cpp index f1358b78a88..a5edb8e3232 100644 --- a/src/devices/bus/electron/m2105.cpp +++ b/src/devices/bus/electron/m2105.cpp @@ -154,7 +154,7 @@ void electron_m2105_device::device_reset() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_m2105_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_m2105_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -214,7 +214,7 @@ uint8_t electron_m2105_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_m2105_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_m2105_device::expbus_w(offs_t offset, uint8_t data) { switch (offset >> 12) { diff --git a/src/devices/bus/electron/m2105.h b/src/devices/bus/electron/m2105.h index c40ae58c686..c09f4722eab 100644 --- a/src/devices/bus/electron/m2105.h +++ b/src/devices/bus/electron/m2105.h @@ -41,8 +41,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: required_memory_region m_exp_rom; diff --git a/src/devices/bus/electron/plus1.cpp b/src/devices/bus/electron/plus1.cpp index 3e395722bcd..a96ad20c656 100644 --- a/src/devices/bus/electron/plus1.cpp +++ b/src/devices/bus/electron/plus1.cpp @@ -163,7 +163,7 @@ void electron_plus1_device::device_start() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_plus1_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -177,18 +177,18 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset) { case 0: case 1: - data = m_cart_sk2->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart_sk2->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 2: case 3: - data = m_cart_sk1->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart_sk1->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 12: data = m_exp_rom->base()[offset & 0x1fff]; break; case 13: - data &= m_cart_sk1->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); - data &= m_cart_sk2->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart_sk1->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart_sk2->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); break; } break; @@ -197,8 +197,8 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset) switch (offset >> 8) { case 0xfc: - data &= m_cart_sk1->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); - data &= m_cart_sk2->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart_sk1->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart_sk2->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); if (offset == 0xfc70) { @@ -211,8 +211,8 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset) break; case 0xfd: - data &= m_cart_sk1->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); - data &= m_cart_sk2->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart_sk1->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart_sk2->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); break; } } @@ -225,7 +225,7 @@ uint8_t electron_plus1_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_plus1_device::expbus_w(offs_t offset, uint8_t data) { switch (offset >> 12) { @@ -237,11 +237,11 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_ { case 0: case 1: - m_cart_sk2->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart_sk2->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; case 2: case 3: - m_cart_sk1->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart_sk1->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; } break; @@ -250,8 +250,8 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_ switch (offset >> 8) { case 0xfc: - m_cart_sk1->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); - m_cart_sk2->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart_sk1->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart_sk2->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); if (offset == 0xfc70) { @@ -264,8 +264,8 @@ void electron_plus1_device::expbus_w(address_space &space, offs_t offset, uint8_ break; case 0xfd: - m_cart_sk1->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); - m_cart_sk2->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart_sk1->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart_sk2->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); break; case 0xfe: diff --git a/src/devices/bus/electron/plus1.h b/src/devices/bus/electron/plus1.h index 63e065446e5..e211594a2c6 100644 --- a/src/devices/bus/electron/plus1.h +++ b/src/devices/bus/electron/plus1.h @@ -37,8 +37,8 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: u8 status_r(); diff --git a/src/devices/bus/electron/plus2.cpp b/src/devices/bus/electron/plus2.cpp index 2ff48b19bc0..040ec58eb35 100644 --- a/src/devices/bus/electron/plus2.cpp +++ b/src/devices/bus/electron/plus2.cpp @@ -98,7 +98,7 @@ void electron_plus2_device::device_start() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_plus2_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -112,15 +112,15 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset) { case 4: case 5: - data = m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 6: case 7: - data = m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 13: - data &= m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); - data &= m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); case 14: case 15: data &= m_rom[m_romsel - 13]->read_rom(offset & 0x3fff); @@ -132,8 +132,8 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset) switch (offset >> 8) { case 0xfc: - data &= m_cart[0]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); - data &= m_cart[1]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart[0]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart[1]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); if (offset >= 0xfcb0 && offset < 0xfcc0) { @@ -142,13 +142,13 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset) break; case 0xfd: - data &= m_cart[0]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); - data &= m_cart[1]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart[0]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart[1]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); break; } } - data &= m_exp->expbus_r(space, offset); + data &= m_exp->expbus_r(offset); return data; } @@ -158,7 +158,7 @@ uint8_t electron_plus2_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_plus2_device::expbus_w(offs_t offset, uint8_t data) { switch (offset >> 12) { @@ -170,11 +170,11 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_ { case 4: case 5: - m_cart[1]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart[1]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; case 6: case 7: - m_cart[0]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart[0]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; } break; @@ -183,8 +183,8 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_ switch (offset >> 8) { case 0xfc: - m_cart[0]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); - m_cart[1]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart[0]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart[1]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); if (offset >= 0xfcb0 && offset < 0xfcc0) { @@ -193,8 +193,8 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_ break; case 0xfd: - m_cart[0]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); - m_cart[1]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart[0]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart[1]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); break; case 0xfe: @@ -206,7 +206,7 @@ void electron_plus2_device::expbus_w(address_space &space, offs_t offset, uint8_ } } - m_exp->expbus_w(space, offset, data); + m_exp->expbus_w(offset, data); } diff --git a/src/devices/bus/electron/plus2.h b/src/devices/bus/electron/plus2.h index 22e2e11e816..235ecd4f218 100644 --- a/src/devices/bus/electron/plus2.h +++ b/src/devices/bus/electron/plus2.h @@ -36,8 +36,8 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp index 14f5b73c957..5996e357389 100644 --- a/src/devices/bus/electron/plus3.cpp +++ b/src/devices/bus/electron/plus3.cpp @@ -117,7 +117,7 @@ void electron_plus3_device::device_start() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_plus3_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -137,7 +137,7 @@ uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset) data = m_fdc->read(offset & 0x03); } - data &= m_exp->expbus_r(space, offset); + data &= m_exp->expbus_r(offset); return data; } @@ -146,13 +146,13 @@ uint8_t electron_plus3_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_plus3_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_plus3_device::expbus_w(offs_t offset, uint8_t data) { - m_exp->expbus_w(space, offset, data); + m_exp->expbus_w(offset, data); if (offset == 0xfcc0) { - wd1770_status_w(space, offset, data); + wd1770_status_w(data); } else if (offset >= 0xfcc4 && offset < 0xfcc8) { @@ -169,7 +169,7 @@ void electron_plus3_device::expbus_w(address_space &space, offs_t offset, uint8_ // IMPLEMENTATION //************************************************************************** -WRITE8_MEMBER(electron_plus3_device::wd1770_status_w) +void electron_plus3_device::wd1770_status_w(uint8_t data) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/electron/plus3.h b/src/devices/bus/electron/plus3.h index 9c8004afab8..44de595a3db 100644 --- a/src/devices/bus/electron/plus3.h +++ b/src/devices/bus/electron/plus3.h @@ -34,11 +34,11 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: - DECLARE_WRITE8_MEMBER(wd1770_status_w); + void wd1770_status_w(uint8_t data); DECLARE_FLOPPY_FORMATS(floppy_formats); required_device m_exp; diff --git a/src/devices/bus/electron/pwrjoy.cpp b/src/devices/bus/electron/pwrjoy.cpp index 2be3f645c55..1ff7ab79566 100644 --- a/src/devices/bus/electron/pwrjoy.cpp +++ b/src/devices/bus/electron/pwrjoy.cpp @@ -78,7 +78,7 @@ void electron_pwrjoy_device::device_start() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_pwrjoy_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_pwrjoy_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -102,7 +102,7 @@ uint8_t electron_pwrjoy_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_pwrjoy_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_pwrjoy_device::expbus_w(offs_t offset, uint8_t data) { if (offset == 0xfe05) { diff --git a/src/devices/bus/electron/pwrjoy.h b/src/devices/bus/electron/pwrjoy.h index 0b654f77791..abc91cf3e2b 100644 --- a/src/devices/bus/electron/pwrjoy.h +++ b/src/devices/bus/electron/pwrjoy.h @@ -32,8 +32,8 @@ public: virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; protected: // device-level overrides diff --git a/src/devices/bus/electron/rombox.cpp b/src/devices/bus/electron/rombox.cpp index b3aff05d035..35f94b08d13 100644 --- a/src/devices/bus/electron/rombox.cpp +++ b/src/devices/bus/electron/rombox.cpp @@ -117,7 +117,7 @@ void electron_rombox_device::device_reset() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_rombox_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -155,7 +155,7 @@ uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset) } } - data &= m_exp->expbus_r(space, offset); + data &= m_exp->expbus_r(offset); return data; } @@ -164,9 +164,9 @@ uint8_t electron_rombox_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_rombox_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_rombox_device::expbus_w(offs_t offset, uint8_t data) { - m_exp->expbus_w(space, offset, data); + m_exp->expbus_w(offset, data); if (offset == 0xfe05) { diff --git a/src/devices/bus/electron/rombox.h b/src/devices/bus/electron/rombox.h index 961cab59ba4..65ed2fa80d8 100644 --- a/src/devices/bus/electron/rombox.h +++ b/src/devices/bus/electron/rombox.h @@ -35,8 +35,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; virtual ioport_constructor device_input_ports() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); diff --git a/src/devices/bus/electron/romboxp.cpp b/src/devices/bus/electron/romboxp.cpp index d7e2798c082..7917ae3d539 100644 --- a/src/devices/bus/electron/romboxp.cpp +++ b/src/devices/bus/electron/romboxp.cpp @@ -160,7 +160,7 @@ void electron_romboxp_device::device_reset() // expbus_r - expansion data read //------------------------------------------------- -uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset) +uint8_t electron_romboxp_device::expbus_r(offs_t offset) { uint8_t data = 0xff; @@ -174,11 +174,11 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset) { case 0: case 1: - data = m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 2: case 3: - data = m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); + data = m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 1, 0); break; case 4: case 5: @@ -193,8 +193,8 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset) data = m_exp_rom->base()[offset & 0x1fff]; break; case 13: - data &= m_cart[0]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); - data &= m_cart[1]->read(space, offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart[0]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); + data &= m_cart[1]->read(offset & 0x3fff, 0, 0, m_romsel & 0x01, 0, 1); case 14: case 15: if (m_rom_base == 12) @@ -209,18 +209,18 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset) switch (offset >> 8) { case 0xfc: - data &= m_cart[0]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); - data &= m_cart[1]->read(space, offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart[0]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); + data &= m_cart[1]->read(offset & 0xff, 1, 0, m_romsel & 0x01, 0, 0); if (offset == 0xfc72) { - data &= status_r(space, offset); + data &= status_r(); } break; case 0xfd: - data &= m_cart[0]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); - data &= m_cart[1]->read(space, offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart[0]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); + data &= m_cart[1]->read(offset & 0xff, 0, 1, m_romsel & 0x01, 0, 0); break; } } @@ -232,7 +232,7 @@ uint8_t electron_romboxp_device::expbus_r(address_space &space, offs_t offset) // expbus_w - expansion data write //------------------------------------------------- -void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint8_t data) +void electron_romboxp_device::expbus_w(offs_t offset, uint8_t data) { switch (offset >> 12) { @@ -244,11 +244,11 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint { case 0: case 1: - m_cart[1]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart[1]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; case 2: case 3: - m_cart[0]->write(space, offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); + m_cart[0]->write(offset & 0x3fff, data, 0, 0, m_romsel & 0x01, 1, 0); break; } break; @@ -257,8 +257,8 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint switch (offset >> 8) { case 0xfc: - m_cart[0]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); - m_cart[1]->write(space, offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart[0]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); + m_cart[1]->write(offset & 0xff, data, 1, 0, m_romsel & 0x01, 0, 0); if (offset == 0xfc71) { @@ -267,8 +267,8 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint break; case 0xfd: - m_cart[0]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); - m_cart[1]->write(space, offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart[0]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); + m_cart[1]->write(offset & 0xff, data, 0, 1, m_romsel & 0x01, 0, 0); break; case 0xfe: @@ -285,7 +285,7 @@ void electron_romboxp_device::expbus_w(address_space &space, offs_t offset, uint // IMPLEMENTATION //************************************************************************** -READ8_MEMBER(electron_romboxp_device::status_r) +uint8_t electron_romboxp_device::status_r() { // Status: b7: printer Busy return (m_centronics_busy << 7) | 0x7f; diff --git a/src/devices/bus/electron/romboxp.h b/src/devices/bus/electron/romboxp.h index 66c9904e1b9..f5905bc47bf 100644 --- a/src/devices/bus/electron/romboxp.h +++ b/src/devices/bus/electron/romboxp.h @@ -40,11 +40,11 @@ protected: virtual const tiny_rom_entry *device_rom_region() const override; virtual ioport_constructor device_input_ports() const override; - virtual uint8_t expbus_r(address_space &space, offs_t offset) override; - virtual void expbus_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t expbus_r(offs_t offset) override; + virtual void expbus_w(offs_t offset, uint8_t data) override; private: - DECLARE_READ8_MEMBER(status_r); + uint8_t status_r(); DECLARE_WRITE_LINE_MEMBER(busy_w); image_init_result load_rom(device_image_interface &image, generic_slot_device *slot); diff --git a/src/devices/machine/tube.cpp b/src/devices/machine/tube.cpp index aac084a3158..a53c05ac38c 100644 --- a/src/devices/machine/tube.cpp +++ b/src/devices/machine/tube.cpp @@ -79,7 +79,7 @@ void tube_device::update_interrupts() m_drq_handler(!BIT(m_r1stat, 4) && ((m_hp3pos > BIT(m_r1stat, 4)) || (m_ph3pos == 0)) ? ASSERT_LINE : CLEAR_LINE); } -READ8_MEMBER(tube_device::host_r) +uint8_t tube_device::host_r(offs_t offset) { uint8_t data = 0xfe; @@ -143,7 +143,7 @@ READ8_MEMBER(tube_device::host_r) return data; } -WRITE8_MEMBER(tube_device::host_w) +void tube_device::host_w(offs_t offset, uint8_t data) { switch (offset & 0x07) { @@ -197,7 +197,7 @@ WRITE8_MEMBER(tube_device::host_w) update_interrupts(); } -READ8_MEMBER(tube_device::parasite_r) +uint8_t tube_device::parasite_r(offs_t offset) { uint8_t data = 0x00; @@ -265,7 +265,7 @@ READ8_MEMBER(tube_device::parasite_r) return data; } -WRITE8_MEMBER(tube_device::parasite_w) +void tube_device::parasite_w(offs_t offset, uint8_t data) { switch (offset & 0x07) { diff --git a/src/devices/machine/tube.h b/src/devices/machine/tube.h index c8d94b1c7a7..384cf29b8d9 100644 --- a/src/devices/machine/tube.h +++ b/src/devices/machine/tube.h @@ -32,10 +32,10 @@ public: auto pirq_handler() { return m_pirq_handler.bind(); } auto drq_handler() { return m_drq_handler.bind(); } - DECLARE_READ8_MEMBER(host_r); - DECLARE_WRITE8_MEMBER(host_w); - DECLARE_READ8_MEMBER(parasite_r); - DECLARE_WRITE8_MEMBER(parasite_w); + uint8_t host_r(offs_t offset); + void host_w(offs_t offset, uint8_t data); + uint8_t parasite_r(offs_t offset); + void parasite_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/mame/machine/bbc.cpp b/src/mame/machine/bbc.cpp index 502d6ab5011..0b7ec54d884 100644 --- a/src/mame/machine/bbc.cpp +++ b/src/mame/machine/bbc.cpp @@ -360,12 +360,12 @@ READ8_MEMBER(bbc_state::bbcm_tube_r) if (m_acccon_itu) { /* internal Tube */ - if (m_intube) data = m_intube->host_r(space, offset); + if (m_intube) data = m_intube->host_r(offset); } else { /* external Tube */ - if (m_extube) data = m_extube->host_r(space, offset); + if (m_extube) data = m_extube->host_r(offset); } return data; @@ -376,12 +376,12 @@ WRITE8_MEMBER(bbc_state::bbcm_tube_w) if (m_acccon_itu) { /* internal Tube */ - if (m_intube) m_intube->host_w(space, offset, data); + if (m_intube) m_intube->host_w(offset, data); } else { /* external Tube */ - if (m_extube) m_extube->host_w(space, offset, data); + if (m_extube) m_extube->host_w(offset, data); } } diff --git a/src/mame/machine/electron.cpp b/src/mame/machine/electron.cpp index c85d9368618..87d1056fdb4 100644 --- a/src/mame/machine/electron.cpp +++ b/src/mame/machine/electron.cpp @@ -237,7 +237,7 @@ READ8_MEMBER(electron_state::electron_paged_r) default: /* ROM in extension devices */ - data = m_exp->expbus_r(space, 0x8000 + offset); + data = m_exp->expbus_r(0x8000 + offset); break; } return data; @@ -248,7 +248,7 @@ WRITE8_MEMBER(electron_state::electron_paged_w) /* The processor will run at 2MHz during an access cycle to the ROM */ m_maincpu->set_clock_scale(1.0f); - m_exp->expbus_w(space, 0x8000 + offset, data); + m_exp->expbus_w(0x8000 + offset, data); } READ8_MEMBER(electron_state::electron_mos_r) @@ -265,7 +265,7 @@ WRITE8_MEMBER(electron_state::electron_mos_w) m_maincpu->set_clock_scale(1.0f); logerror("MOS: write %04x %02x\n", offset + 0xc000, data); - m_exp->expbus_w(space, 0xc000 + offset, data); + m_exp->expbus_w(0xc000 + offset, data); } READ8_MEMBER(electron_state::electron_fred_r) @@ -275,7 +275,7 @@ READ8_MEMBER(electron_state::electron_fred_r) /* The Issue 4 ULA returns data from OS ROM, whereas Issue 6 ULA will return 0xff */ //logerror("FRED: read fc%02x\n", offset); - return m_exp->expbus_r(space, 0xfc00 + offset); + return m_exp->expbus_r(0xfc00 + offset); } WRITE8_MEMBER(electron_state::electron_fred_w) @@ -287,7 +287,7 @@ WRITE8_MEMBER(electron_state::electron_fred_w) if (offset == 0x7f) m_mrb_mapped = !(data & 0x80); //logerror("FRED: write fc%02x\n", offset); - m_exp->expbus_w(space, 0xfc00 + offset, data); + m_exp->expbus_w(0xfc00 + offset, data); } READ8_MEMBER(electron_state::electron_jim_r) @@ -297,7 +297,7 @@ READ8_MEMBER(electron_state::electron_jim_r) /* The Issue 4 ULA returns data from OS ROM, whereas Issue 6 ULA will return 0xff */ //logerror("JIM: read fd%02x\n", offset); - return m_exp->expbus_r(space, 0xfd00 + offset); + return m_exp->expbus_r(0xfd00 + offset); } WRITE8_MEMBER(electron_state::electron_jim_w) @@ -306,7 +306,7 @@ WRITE8_MEMBER(electron_state::electron_jim_w) m_maincpu->set_clock_scale(1.0f); //logerror("JIM: write fd%02x\n", offset); - m_exp->expbus_w(space, 0xfd00 + offset, data); + m_exp->expbus_w(0xfd00 + offset, data); } READ8_MEMBER(electron_state::electron_sheila_r) @@ -343,7 +343,7 @@ WRITE8_MEMBER(electron_state::electron_sheila_w) /* The processor will run at 2MHz during an access cycle to the ROM */ m_maincpu->set_clock_scale(1.0f); - m_exp->expbus_w(space, 0xfe00 + offset, data); + m_exp->expbus_w(0xfe00 + offset, data); int i = electron_palette_offset[(( offset >> 1 ) & 0x03)]; //logerror( "ULA: write fe%02x <- %02x\n", offset & 0x0f, data ); From 777378e69ffaa8ae4ed260c6152903ea6c49bfc6 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 00:33:14 -0500 Subject: [PATCH 26/42] bus/s100, bus/vidbrain: Eliminate address_space arguments from handlers (nw) --- src/devices/bus/s100/dj2db.cpp | 8 ++++---- src/devices/bus/s100/dj2db.h | 8 ++++---- src/devices/bus/s100/djdma.cpp | 2 +- src/devices/bus/s100/djdma.h | 2 +- src/devices/bus/s100/mm65k16s.cpp | 4 ++-- src/devices/bus/s100/mm65k16s.h | 4 ++-- src/devices/bus/s100/nsmdsa.cpp | 2 +- src/devices/bus/s100/nsmdsa.h | 2 +- src/devices/bus/s100/nsmdsad.cpp | 2 +- src/devices/bus/s100/nsmdsad.h | 2 +- src/devices/bus/s100/s100.cpp | 16 ++++++++-------- src/devices/bus/s100/s100.h | 16 ++++++++-------- src/devices/bus/s100/seals8k.cpp | 8 ++++---- src/devices/bus/s100/wunderbus.cpp | 16 ++++++++-------- src/devices/bus/s100/wunderbus.h | 4 ++-- src/devices/bus/vidbrain/exp.cpp | 8 ++++---- src/devices/bus/vidbrain/exp.h | 20 ++++++++++---------- src/devices/bus/vidbrain/money_minder.cpp | 4 ++-- src/devices/bus/vidbrain/money_minder.h | 4 ++-- src/devices/bus/vidbrain/std.cpp | 2 +- src/devices/bus/vidbrain/std.h | 2 +- src/devices/bus/vidbrain/timeshare.cpp | 4 ++-- src/devices/bus/vidbrain/timeshare.h | 4 ++-- src/mame/drivers/mpz80.cpp | 8 ++++---- 24 files changed, 76 insertions(+), 76 deletions(-) diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp index f3cff259db3..7c33182ea5d 100644 --- a/src/devices/bus/s100/dj2db.cpp +++ b/src/devices/bus/s100/dj2db.cpp @@ -301,7 +301,7 @@ void s100_dj2db_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset) +uint8_t s100_dj2db_device::s100_smemr_r(offs_t offset) { uint8_t data = 0; @@ -380,7 +380,7 @@ uint8_t s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset) // s100_mwrt_w - memory write //------------------------------------------------- -void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) +void s100_dj2db_device::s100_mwrt_w(offs_t offset, uint8_t data) { // if (!(m_board_enbl & m_phantom)) return; @@ -473,7 +473,7 @@ void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t // s100_sinp_r - I/O read //------------------------------------------------- -uint8_t s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset) +uint8_t s100_dj2db_device::s100_sinp_r(offs_t offset) { return 0xff; } @@ -483,7 +483,7 @@ uint8_t s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset) // s100_sout_w - I/O write //------------------------------------------------- -void s100_dj2db_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data) +void s100_dj2db_device::s100_sout_w(offs_t offset, uint8_t data) { if (offset == 0x41) { diff --git a/src/devices/bus/s100/dj2db.h b/src/devices/bus/s100/dj2db.h index e82b4431095..616113bb038 100644 --- a/src/devices/bus/s100/dj2db.h +++ b/src/devices/bus/s100/dj2db.h @@ -42,10 +42,10 @@ protected: virtual ioport_constructor device_input_ports() const override; // device_s100_card_interface overrides - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override; - virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) override; - virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) override; - virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t s100_smemr_r(offs_t offset) override; + virtual void s100_mwrt_w(offs_t offset, uint8_t data) override; + virtual uint8_t s100_sinp_r(offs_t offset) override; + virtual void s100_sout_w(offs_t offset, uint8_t data) override; virtual void s100_phantom_w(int state) override; private: diff --git a/src/devices/bus/s100/djdma.cpp b/src/devices/bus/s100/djdma.cpp index 39522d321b4..0ee7dab0a0c 100644 --- a/src/devices/bus/s100/djdma.cpp +++ b/src/devices/bus/s100/djdma.cpp @@ -146,7 +146,7 @@ void s100_djdma_device::device_reset() // s100_sout_w - I/O write //------------------------------------------------- -void s100_djdma_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data) +void s100_djdma_device::s100_sout_w(offs_t offset, uint8_t data) { // O4 = /ATTN (responds to address EF only) if (!BIT(m_cmdaddr[offset & 0xff], 3)) diff --git a/src/devices/bus/s100/djdma.h b/src/devices/bus/s100/djdma.h index 29d07c5860f..d9453aef25c 100644 --- a/src/devices/bus/s100/djdma.h +++ b/src/devices/bus/s100/djdma.h @@ -34,7 +34,7 @@ protected: virtual void device_reset() override; // bus-level overrides; - virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override; + virtual void s100_sout_w(offs_t offset, uint8_t data) override; // optional information overrides virtual void device_add_mconfig(machine_config &config) override; diff --git a/src/devices/bus/s100/mm65k16s.cpp b/src/devices/bus/s100/mm65k16s.cpp index 27cdc021d39..ae098a2e29c 100644 --- a/src/devices/bus/s100/mm65k16s.cpp +++ b/src/devices/bus/s100/mm65k16s.cpp @@ -233,7 +233,7 @@ void s100_mm65k16s_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -uint8_t s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset) +uint8_t s100_mm65k16s_device::s100_smemr_r(offs_t offset) { uint8_t data = 0xff; @@ -250,7 +250,7 @@ uint8_t s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset) // s100_mwrt_w - memory write //------------------------------------------------- -void s100_mm65k16s_device::s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) +void s100_mm65k16s_device::s100_mwrt_w(offs_t offset, uint8_t data) { if (offset < 0xf800) { diff --git a/src/devices/bus/s100/mm65k16s.h b/src/devices/bus/s100/mm65k16s.h index e46d13f955e..10fa1daff7a 100644 --- a/src/devices/bus/s100/mm65k16s.h +++ b/src/devices/bus/s100/mm65k16s.h @@ -38,8 +38,8 @@ protected: virtual void device_reset() override; // device_s100_card_interface overrides - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override; - virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t s100_smemr_r(offs_t offset) override; + virtual void s100_mwrt_w(offs_t offset, uint8_t data) override; virtual void s100_phantom_w(int state) override; private: diff --git a/src/devices/bus/s100/nsmdsa.cpp b/src/devices/bus/s100/nsmdsa.cpp index a4adcfbe1b5..90d19b3fcb3 100644 --- a/src/devices/bus/s100/nsmdsa.cpp +++ b/src/devices/bus/s100/nsmdsa.cpp @@ -105,7 +105,7 @@ void s100_mds_a_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -uint8_t s100_mds_a_device::s100_smemr_r(address_space &space, offs_t offset) +uint8_t s100_mds_a_device::s100_smemr_r(offs_t offset) { return 0xff; } diff --git a/src/devices/bus/s100/nsmdsa.h b/src/devices/bus/s100/nsmdsa.h index 9f12f491bb5..a36f39127ec 100644 --- a/src/devices/bus/s100/nsmdsa.h +++ b/src/devices/bus/s100/nsmdsa.h @@ -39,7 +39,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_s100_card_interface overrides - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override; + virtual uint8_t s100_smemr_r(offs_t offset) override; private: required_device_array m_floppy; diff --git a/src/devices/bus/s100/nsmdsad.cpp b/src/devices/bus/s100/nsmdsad.cpp index 4c071576cca..d1358e85bf0 100644 --- a/src/devices/bus/s100/nsmdsad.cpp +++ b/src/devices/bus/s100/nsmdsad.cpp @@ -107,7 +107,7 @@ void s100_mds_ad_device::device_reset() // s100_smemr_r - memory read //------------------------------------------------- -uint8_t s100_mds_ad_device::s100_smemr_r(address_space &space, offs_t offset) +uint8_t s100_mds_ad_device::s100_smemr_r(offs_t offset) { return 0xff; } diff --git a/src/devices/bus/s100/nsmdsad.h b/src/devices/bus/s100/nsmdsad.h index 01d80e35b9c..ce5a248d553 100644 --- a/src/devices/bus/s100/nsmdsad.h +++ b/src/devices/bus/s100/nsmdsad.h @@ -39,7 +39,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_s100_card_interface overrides - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) override; + virtual uint8_t s100_smemr_r(offs_t offset) override; private: required_device_array m_floppy; diff --git a/src/devices/bus/s100/s100.cpp b/src/devices/bus/s100/s100.cpp index dd28ca385d3..23333ce500f 100644 --- a/src/devices/bus/s100/s100.cpp +++ b/src/devices/bus/s100/s100.cpp @@ -135,7 +135,7 @@ void s100_bus_device::add_card(device_s100_card_interface *card) // smemr_r - memory read //------------------------------------------------- -READ8_MEMBER( s100_bus_device::smemr_r ) +uint8_t s100_bus_device::smemr_r(offs_t offset) { uint8_t data = 0xff; @@ -143,7 +143,7 @@ READ8_MEMBER( s100_bus_device::smemr_r ) while (entry) { - data &= entry->s100_smemr_r(space, offset); + data &= entry->s100_smemr_r(offset); entry = entry->next(); } @@ -155,13 +155,13 @@ READ8_MEMBER( s100_bus_device::smemr_r ) // mwrt_w - memory write //------------------------------------------------- -WRITE8_MEMBER( s100_bus_device::mwrt_w ) +void s100_bus_device::mwrt_w(offs_t offset, uint8_t data) { device_s100_card_interface *entry = m_device_list.first(); while (entry) { - entry->s100_mwrt_w(space, offset, data); + entry->s100_mwrt_w(offset, data); entry = entry->next(); } } @@ -171,7 +171,7 @@ WRITE8_MEMBER( s100_bus_device::mwrt_w ) // sinp_r - I/O read //------------------------------------------------- -READ8_MEMBER( s100_bus_device::sinp_r ) +uint8_t s100_bus_device::sinp_r(offs_t offset) { uint8_t data = 0xff; @@ -179,7 +179,7 @@ READ8_MEMBER( s100_bus_device::sinp_r ) while (entry) { - data &= entry->s100_sinp_r(space, offset); + data &= entry->s100_sinp_r(offset); entry = entry->next(); } @@ -191,13 +191,13 @@ READ8_MEMBER( s100_bus_device::sinp_r ) // sout_w - I/O write //------------------------------------------------- -WRITE8_MEMBER( s100_bus_device::sout_w ) +void s100_bus_device::sout_w(offs_t offset, uint8_t data) { device_s100_card_interface *entry = m_device_list.first(); while (entry) { - entry->s100_sout_w(space, offset, data); + entry->s100_sout_w(offset, data); entry = entry->next(); } } diff --git a/src/devices/bus/s100/s100.h b/src/devices/bus/s100/s100.h index ed97700bf5f..f231520f694 100644 --- a/src/devices/bus/s100/s100.h +++ b/src/devices/bus/s100/s100.h @@ -99,12 +99,12 @@ public: virtual void s100_vi7_w(int state) { } // memory access - virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0xff; } - virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t s100_smemr_r(offs_t offset) { return 0xff; } + virtual void s100_mwrt_w(offs_t offset, uint8_t data) { } // I/O access - virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0xff; } - virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { } + virtual uint8_t s100_sinp_r(offs_t offset) { return 0xff; } + virtual void s100_sout_w(offs_t offset, uint8_t data) { } // configuration access virtual void s100_phlda_w(int state) { } @@ -159,11 +159,11 @@ public: void add_card(device_s100_card_interface *card); - DECLARE_READ8_MEMBER( smemr_r ); - DECLARE_WRITE8_MEMBER( mwrt_w ); + uint8_t smemr_r(offs_t offset); + void mwrt_w(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER( sinp_r ); - DECLARE_WRITE8_MEMBER( sout_w ); + uint8_t sinp_r(offs_t offset); + void sout_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_write_irq(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_write_nmi(state); } diff --git a/src/devices/bus/s100/seals8k.cpp b/src/devices/bus/s100/seals8k.cpp index 9191f8566df..949c7d6d2c5 100644 --- a/src/devices/bus/s100/seals8k.cpp +++ b/src/devices/bus/s100/seals8k.cpp @@ -51,8 +51,8 @@ protected: virtual void device_start() override; // S-100 memory access handlers - virtual u8 s100_smemr_r(address_space &space, offs_t offset) override; - virtual void s100_mwrt_w(address_space &space, offs_t offset, u8 data) override; + virtual u8 s100_smemr_r(offs_t offset) override; + virtual void s100_mwrt_w(offs_t offset, u8 data) override; // internal state std::unique_ptr m_ram; @@ -203,7 +203,7 @@ bool s100_8k_sc_device::board_selected(offs_t offset) const // s100_smemr_r - memory read //------------------------------------------------- -u8 s100_8k_sc_device::s100_smemr_r(address_space &space, offs_t offset) +u8 s100_8k_sc_device::s100_smemr_r(offs_t offset) { if (board_selected(offset)) return m_ram[offset & 0x1fff]; @@ -216,7 +216,7 @@ u8 s100_8k_sc_device::s100_smemr_r(address_space &space, offs_t offset) // s100_mwrt_w - memory write //------------------------------------------------- -void s100_8k_sc_device::s100_mwrt_w(address_space &space, offs_t offset, u8 data) +void s100_8k_sc_device::s100_mwrt_w(offs_t offset, u8 data) { if (board_selected(offset)) m_ram[offset & 0x1fff] = data; diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp index 9d307d9053b..c7db4417dcb 100644 --- a/src/devices/bus/s100/wunderbus.cpp +++ b/src/devices/bus/s100/wunderbus.cpp @@ -300,7 +300,7 @@ void s100_wunderbus_device::s100_vi2_w(int state) // s100_sinp_r - I/O read //------------------------------------------------- -uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset) +uint8_t s100_wunderbus_device::s100_sinp_r(offs_t offset) { uint8_t address = (m_7c->read() & 0x3e) << 2; if ((offset & 0xf8) != address) return 0xff; @@ -388,15 +388,15 @@ uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset) break; case 1: - data = m_ace1->ins8250_r(space, offset & 0x07); + data = m_ace1->ins8250_r(machine().dummy_space(), offset & 0x07); break; case 2: - data = m_ace2->ins8250_r(space, offset & 0x07); + data = m_ace2->ins8250_r(machine().dummy_space(), offset & 0x07); break; case 3: - data = m_ace3->ins8250_r(space, offset & 0x07); + data = m_ace3->ins8250_r(machine().dummy_space(), offset & 0x07); break; } } @@ -409,7 +409,7 @@ uint8_t s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset) // s100_sout_w - I/O write //------------------------------------------------- -void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, uint8_t data) +void s100_wunderbus_device::s100_sout_w(offs_t offset, uint8_t data) { uint8_t address = (m_7c->read() & 0x3e) << 2; if ((offset & 0xf8) != address) return; @@ -511,15 +511,15 @@ void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, uin break; case 1: - m_ace1->ins8250_w(space, offset & 0x07, data); + m_ace1->ins8250_w(machine().dummy_space(), offset & 0x07, data); break; case 2: - m_ace2->ins8250_w(space, offset & 0x07, data); + m_ace2->ins8250_w(machine().dummy_space(), offset & 0x07, data); break; case 3: - m_ace3->ins8250_w(space, offset & 0x07, data); + m_ace3->ins8250_w(machine().dummy_space(), offset & 0x07, data); break; } } diff --git a/src/devices/bus/s100/wunderbus.h b/src/devices/bus/s100/wunderbus.h index 540c5cd8b6c..ca9a6d0e641 100644 --- a/src/devices/bus/s100/wunderbus.h +++ b/src/devices/bus/s100/wunderbus.h @@ -44,8 +44,8 @@ protected: virtual void s100_vi0_w(int state) override; virtual void s100_vi1_w(int state) override; virtual void s100_vi2_w(int state) override; - virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) override; - virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) override; + virtual uint8_t s100_sinp_r(offs_t offset) override; + virtual void s100_sout_w(offs_t offset, uint8_t data) override; private: DECLARE_WRITE_LINE_MEMBER( pic_int_w ); diff --git a/src/devices/bus/vidbrain/exp.cpp b/src/devices/bus/vidbrain/exp.cpp index c490c0605b2..808907678cc 100644 --- a/src/devices/bus/vidbrain/exp.cpp +++ b/src/devices/bus/vidbrain/exp.cpp @@ -153,13 +153,13 @@ std::string videobrain_expansion_slot_device::get_default_card_software(get_defa // bo_r - cartridge data read //------------------------------------------------- -uint8_t videobrain_expansion_slot_device::bo_r(address_space &space, offs_t offset, int cs1, int cs2) +uint8_t videobrain_expansion_slot_device::bo_r(offs_t offset, int cs1, int cs2) { uint8_t data = 0; if (m_cart != nullptr) { - data = m_cart->videobrain_bo_r(space, offset, cs1, cs2); + data = m_cart->videobrain_bo_r(offset, cs1, cs2); } return data; @@ -170,11 +170,11 @@ uint8_t videobrain_expansion_slot_device::bo_r(address_space &space, offs_t offs // bo_w - cartridge data write //------------------------------------------------- -void videobrain_expansion_slot_device::bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) +void videobrain_expansion_slot_device::bo_w(offs_t offset, uint8_t data, int cs1, int cs2) { if (m_cart != nullptr) { - m_cart->videobrain_bo_w(space, offset, data, cs1, cs2); + m_cart->videobrain_bo_w(offset, data, cs1, cs2); } } diff --git a/src/devices/bus/vidbrain/exp.h b/src/devices/bus/vidbrain/exp.h index 37c58300030..e841df6c32c 100644 --- a/src/devices/bus/vidbrain/exp.h +++ b/src/devices/bus/vidbrain/exp.h @@ -73,8 +73,8 @@ protected: virtual uint8_t* videobrain_ram_pointer(running_machine &machine, size_t size); // runtime - virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) { return 0; } - virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) { } + virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) { return 0; } + virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) { } virtual void videobrain_extres_w() { } videobrain_expansion_slot_device *m_slot; @@ -109,15 +109,15 @@ public: auto extres_wr_callback() { return m_write_extres.bind(); } // computer interface - uint8_t bo_r(address_space &space, offs_t offset, int cs1, int cs2); - void bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2); + uint8_t bo_r(offs_t offset, int cs1, int cs2); + void bo_w(offs_t offset, uint8_t data, int cs1, int cs2); - DECLARE_READ8_MEMBER( cs1_r ) { return bo_r(space, offset + 0x1000, 0, 1); } - DECLARE_WRITE8_MEMBER( cs1_w ) { bo_w(space, offset + 0x1000, data, 0, 1); } - DECLARE_READ8_MEMBER( cs2_r ) { return bo_r(space, offset + 0x1800, 1, 0); } - DECLARE_WRITE8_MEMBER( cs2_w ) { bo_w(space, offset + 0x1800, data, 1, 0); } - DECLARE_READ8_MEMBER( unmap_r ) { return bo_r(space, offset + 0x3000, 1, 0); } - DECLARE_WRITE8_MEMBER( unmap_w ) { bo_w(space, offset + 0x3000, data, 1, 0); } + uint8_t cs1_r(offs_t offset) { return bo_r(offset + 0x1000, 0, 1); } + void cs1_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1000, data, 0, 1); } + uint8_t cs2_r(offs_t offset) { return bo_r(offset + 0x1800, 1, 0); } + void cs2_w(offs_t offset, uint8_t data) { bo_w(offset + 0x1800, data, 1, 0); } + uint8_t unmap_r(offs_t offset) { return bo_r(offset + 0x3000, 1, 0); } + void unmap_w(offs_t offset, uint8_t data) { bo_w(offset + 0x3000, data, 1, 0); } // cartridge interface DECLARE_WRITE_LINE_MEMBER( extres_w ) { m_write_extres(state); } diff --git a/src/devices/bus/vidbrain/money_minder.cpp b/src/devices/bus/vidbrain/money_minder.cpp index 81220a499b6..b0f4826ca5d 100644 --- a/src/devices/bus/vidbrain/money_minder.cpp +++ b/src/devices/bus/vidbrain/money_minder.cpp @@ -47,7 +47,7 @@ void videobrain_money_minder_cartridge_device::device_start() // videobrain_cd_r - cartridge data read //------------------------------------------------- -uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) +uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2) { uint8_t data = 0; @@ -68,7 +68,7 @@ uint8_t videobrain_money_minder_cartridge_device::videobrain_bo_r(address_space // videobrain_bo_w - cartridge data write //------------------------------------------------- -void videobrain_money_minder_cartridge_device::videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) +void videobrain_money_minder_cartridge_device::videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) { if (offset >= 0x3800) { diff --git a/src/devices/bus/vidbrain/money_minder.h b/src/devices/bus/vidbrain/money_minder.h index 20ead06960e..23f219c4962 100644 --- a/src/devices/bus/vidbrain/money_minder.h +++ b/src/devices/bus/vidbrain/money_minder.h @@ -33,8 +33,8 @@ protected: virtual void device_start() override; // device_videobrain_expansion_card_interface overrides - virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override; - virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) override; + virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override; + virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) override; }; diff --git a/src/devices/bus/vidbrain/std.cpp b/src/devices/bus/vidbrain/std.cpp index 82a6fc2761e..55b5c3ce22d 100644 --- a/src/devices/bus/vidbrain/std.cpp +++ b/src/devices/bus/vidbrain/std.cpp @@ -47,7 +47,7 @@ void videobrain_standard_cartridge_device::device_start() // videobrain_bo_r - cartridge data read //------------------------------------------------- -uint8_t videobrain_standard_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) +uint8_t videobrain_standard_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2) { uint8_t data = 0; diff --git a/src/devices/bus/vidbrain/std.h b/src/devices/bus/vidbrain/std.h index 2dbbde3231f..7939501909f 100644 --- a/src/devices/bus/vidbrain/std.h +++ b/src/devices/bus/vidbrain/std.h @@ -33,7 +33,7 @@ protected: virtual void device_start() override; // device_videobrain_expansion_card_interface overrides - virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override; + virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override; }; diff --git a/src/devices/bus/vidbrain/timeshare.cpp b/src/devices/bus/vidbrain/timeshare.cpp index f4997a55ddc..709f16f5c74 100644 --- a/src/devices/bus/vidbrain/timeshare.cpp +++ b/src/devices/bus/vidbrain/timeshare.cpp @@ -47,7 +47,7 @@ void videobrain_timeshare_cartridge_device::device_start() // videobrain_bo_r - cartridge data read //------------------------------------------------- -uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) +uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(offs_t offset, int cs1, int cs2) { uint8_t data = 0; @@ -67,7 +67,7 @@ uint8_t videobrain_timeshare_cartridge_device::videobrain_bo_r(address_space &sp // videobrain_bo_w - cartridge data write //------------------------------------------------- -void videobrain_timeshare_cartridge_device::videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) +void videobrain_timeshare_cartridge_device::videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) { if (!cs2) { diff --git a/src/devices/bus/vidbrain/timeshare.h b/src/devices/bus/vidbrain/timeshare.h index 971c5674320..7885772149d 100644 --- a/src/devices/bus/vidbrain/timeshare.h +++ b/src/devices/bus/vidbrain/timeshare.h @@ -33,8 +33,8 @@ protected: virtual void device_start() override; // device_videobrain_expansion_card_interface overrides - virtual uint8_t videobrain_bo_r(address_space &space, offs_t offset, int cs1, int cs2) override; - virtual void videobrain_bo_w(address_space &space, offs_t offset, uint8_t data, int cs1, int cs2) override; + virtual uint8_t videobrain_bo_r(offs_t offset, int cs1, int cs2) override; + virtual void videobrain_bo_w(offs_t offset, uint8_t data, int cs1, int cs2) override; }; diff --git a/src/mame/drivers/mpz80.cpp b/src/mame/drivers/mpz80.cpp index 0ef8260530c..0785a308562 100644 --- a/src/mame/drivers/mpz80.cpp +++ b/src/mame/drivers/mpz80.cpp @@ -219,7 +219,7 @@ READ8_MEMBER( mpz80_state::mmu_r ) } else { - data = m_s100->smemr_r(space, m_addr); + data = m_s100->smemr_r(m_addr); } return data; @@ -267,7 +267,7 @@ WRITE8_MEMBER( mpz80_state::mmu_w ) } else { - m_s100->mwrt_w(space, m_addr, data); + m_s100->mwrt_w(m_addr, data); } } @@ -294,7 +294,7 @@ inline offs_t mpz80_state::get_io_address(offs_t offset) READ8_MEMBER( mpz80_state::mmu_io_r ) { - return m_s100->sinp_r(space, get_io_address(offset)); + return m_s100->sinp_r(get_io_address(offset)); } @@ -304,7 +304,7 @@ READ8_MEMBER( mpz80_state::mmu_io_r ) WRITE8_MEMBER( mpz80_state::mmu_io_w ) { - m_s100->sout_w(space, get_io_address(offset), data); + m_s100->sout_w(get_io_address(offset), data); } From ea78bea4ee84ab0bc5aab964920c5be4d4163f8a Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 01:04:05 -0500 Subject: [PATCH 27/42] bus/wangpc, upd7220: Eliminate address_space arguments from handlers (nw) --- src/devices/bus/compis/hrg.cpp | 4 ++-- src/devices/bus/isa/num9rev.cpp | 2 +- src/devices/bus/wangpc/emb.cpp | 8 +++---- src/devices/bus/wangpc/emb.h | 8 +++---- src/devices/bus/wangpc/lic.cpp | 8 +++---- src/devices/bus/wangpc/lic.h | 8 +++---- src/devices/bus/wangpc/lvc.cpp | 8 +++---- src/devices/bus/wangpc/lvc.h | 8 +++---- src/devices/bus/wangpc/mcc.cpp | 12 +++++----- src/devices/bus/wangpc/mcc.h | 4 ++-- src/devices/bus/wangpc/mvc.cpp | 8 +++---- src/devices/bus/wangpc/mvc.h | 8 +++---- src/devices/bus/wangpc/rtc.cpp | 8 +++---- src/devices/bus/wangpc/rtc.h | 8 +++---- src/devices/bus/wangpc/tig.cpp | 24 +++++++++---------- src/devices/bus/wangpc/tig.h | 8 +++---- src/devices/bus/wangpc/wangpc.cpp | 24 +++++++++---------- src/devices/bus/wangpc/wangpc.h | 40 +++++++++++++++---------------- src/devices/bus/wangpc/wdc.cpp | 28 +++++++++++----------- src/devices/bus/wangpc/wdc.h | 12 +++++----- src/devices/video/upd7220.cpp | 8 +++---- src/devices/video/upd7220.h | 8 +++---- src/mame/drivers/apc.cpp | 8 +++---- src/mame/drivers/mikromik.cpp | 4 ++-- src/mame/drivers/rainbow.cpp | 7 ++---- src/mame/drivers/wangpc.cpp | 4 ++-- src/mame/video/pc9801.cpp | 4 ++-- 27 files changed, 139 insertions(+), 142 deletions(-) diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp index 3c1a5fe53be..7aa8aa72f7e 100644 --- a/src/devices/bus/compis/hrg.cpp +++ b/src/devices/bus/compis/hrg.cpp @@ -170,7 +170,7 @@ uint8_t compis_hrg_device::pcs6_6_r(offs_t offset) uint8_t data = 0xff; if (offset < 2) - data = m_crtc->read(machine().dummy_space(), offset & 0x01); + data = m_crtc->read(offset & 0x01); else // monochrome only, hblank? vblank? if(offset == 2) @@ -207,5 +207,5 @@ void compis_hrg_device::pcs6_6_w(offs_t offset, uint8_t data) //logerror("%s PCS 6:6 write %04x : %02x\n", machine().describe_context(), offset, data); // 0x336 is likely the color plane register - if (offset < 2) m_crtc->write(machine().dummy_space(), offset & 0x01, data); + if (offset < 2) m_crtc->write(offset & 0x01, data); } diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp index 16aab8762fe..ebe44a379f4 100644 --- a/src/devices/bus/isa/num9rev.cpp +++ b/src/devices/bus/isa/num9rev.cpp @@ -94,7 +94,7 @@ void isa8_number_9_rev_device::device_start() { set_isa_device(); - m_isa->install_memory(0xc0000, 0xc0001, read8_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220)); + m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8sm_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220)); m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(FUNC(isa8_number_9_rev_device::pal8_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal8_w), this)); m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(FUNC(isa8_number_9_rev_device::bank_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::bank_w), this)); m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(FUNC(isa8_number_9_rev_device::overlay_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::overlay_w), this)); diff --git a/src/devices/bus/wangpc/emb.cpp b/src/devices/bus/wangpc/emb.cpp index 8f555391bea..8a1817d1666 100644 --- a/src/devices/bus/wangpc/emb.cpp +++ b/src/devices/bus/wangpc/emb.cpp @@ -85,7 +85,7 @@ void wangpc_emb_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_emb_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_emb_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -105,7 +105,7 @@ uint16_t wangpc_emb_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_emb_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_emb_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { for (int bank = 0; bank < 4; bank++) { @@ -121,7 +121,7 @@ void wangpc_emb_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_emb_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_emb_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -149,7 +149,7 @@ uint16_t wangpc_emb_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_emb_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_emb_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset)) { diff --git a/src/devices/bus/wangpc/emb.h b/src/devices/bus/wangpc/emb.h index bdaa7698b51..1e175ae6867 100644 --- a/src/devices/bus/wangpc/emb.h +++ b/src/devices/bus/wangpc/emb.h @@ -34,10 +34,10 @@ protected: virtual void device_reset() override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; private: optional_shared_ptr m_ram; diff --git a/src/devices/bus/wangpc/lic.cpp b/src/devices/bus/wangpc/lic.cpp index aa158b4bf72..f56c673fd26 100644 --- a/src/devices/bus/wangpc/lic.cpp +++ b/src/devices/bus/wangpc/lic.cpp @@ -92,7 +92,7 @@ void wangpc_lic_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_lic_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_lic_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -104,7 +104,7 @@ uint16_t wangpc_lic_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_lic_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_lic_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { } @@ -113,7 +113,7 @@ void wangpc_lic_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_lic_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_lic_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -135,7 +135,7 @@ uint16_t wangpc_lic_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_lic_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_lic_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset)) { diff --git a/src/devices/bus/wangpc/lic.h b/src/devices/bus/wangpc/lic.h index f3a27f0bc77..8ead2c65f0a 100644 --- a/src/devices/bus/wangpc/lic.h +++ b/src/devices/bus/wangpc/lic.h @@ -36,10 +36,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; }; diff --git a/src/devices/bus/wangpc/lvc.cpp b/src/devices/bus/wangpc/lvc.cpp index 7e7cbe47ad5..60ec03e5674 100644 --- a/src/devices/bus/wangpc/lvc.cpp +++ b/src/devices/bus/wangpc/lvc.cpp @@ -203,7 +203,7 @@ void wangpc_lvc_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -222,7 +222,7 @@ uint16_t wangpc_lvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_lvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_lvc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (OPTION_VRAM && (offset >= 0xe0000/2) && (offset < 0xf0000/2)) { @@ -237,7 +237,7 @@ void wangpc_lvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_lvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_lvc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -270,7 +270,7 @@ uint16_t wangpc_lvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_lvc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_lvc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset)) { diff --git a/src/devices/bus/wangpc/lvc.h b/src/devices/bus/wangpc/lvc.h index 7b4f9203007..3fa858adf1c 100644 --- a/src/devices/bus/wangpc/lvc.h +++ b/src/devices/bus/wangpc/lvc.h @@ -36,10 +36,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; private: MC6845_UPDATE_ROW( crtc_update_row ); diff --git a/src/devices/bus/wangpc/mcc.cpp b/src/devices/bus/wangpc/mcc.cpp index d5c8bf4b941..5f483cee5fd 100644 --- a/src/devices/bus/wangpc/mcc.cpp +++ b/src/devices/bus/wangpc/mcc.cpp @@ -129,7 +129,7 @@ void wangpc_mcc_device::device_reset() // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_mcc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -143,7 +143,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset case 0x06/2: if (ACCESSING_BITS_0_7) { - data = 0xff00 | m_sio->cd_ba_r(space, offset >> 1); + data = 0xff00 | m_sio->cd_ba_r(machine().dummy_space(), offset >> 1); } break; @@ -153,7 +153,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset case 0x0e/2: if (ACCESSING_BITS_0_7) { - data = 0xff00 | m_dart->cd_ba_r(space, offset >> 1); + data = 0xff00 | m_dart->cd_ba_r(machine().dummy_space(), offset >> 1); } break; @@ -198,7 +198,7 @@ uint16_t wangpc_mcc_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_mcc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_mcc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset) && ACCESSING_BITS_0_7) { @@ -208,14 +208,14 @@ void wangpc_mcc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u case 0x02/2: case 0x04/2: case 0x06/2: - m_sio->cd_ba_w(space, offset >> 1, data & 0xff); + m_sio->cd_ba_w(machine().dummy_space(), offset >> 1, data & 0xff); break; case 0x08/2: case 0x0a/2: case 0x0c/2: case 0x0e/2: - m_dart->cd_ba_w(space, offset >> 1, data & 0xff); + m_dart->cd_ba_w(machine().dummy_space(), offset >> 1, data & 0xff); break; case 0x12/2: diff --git a/src/devices/bus/wangpc/mcc.h b/src/devices/bus/wangpc/mcc.h index d09f2e23cba..58b8931f5fa 100644 --- a/src/devices/bus/wangpc/mcc.h +++ b/src/devices/bus/wangpc/mcc.h @@ -36,8 +36,8 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; private: inline void set_irq(int state); diff --git a/src/devices/bus/wangpc/mvc.cpp b/src/devices/bus/wangpc/mvc.cpp index f88970491a7..fbe4db1fe4a 100644 --- a/src/devices/bus/wangpc/mvc.cpp +++ b/src/devices/bus/wangpc/mvc.cpp @@ -226,7 +226,7 @@ void wangpc_mvc_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -254,7 +254,7 @@ uint16_t wangpc_mvc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_mvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_mvc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (OPTION_VRAM) { @@ -278,7 +278,7 @@ void wangpc_mvc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_mvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_mvc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -302,7 +302,7 @@ uint16_t wangpc_mvc_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_mvc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_mvc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset) && ACCESSING_BITS_0_7) { diff --git a/src/devices/bus/wangpc/mvc.h b/src/devices/bus/wangpc/mvc.h index 4620126c04e..aee0cdf51b2 100644 --- a/src/devices/bus/wangpc/mvc.h +++ b/src/devices/bus/wangpc/mvc.h @@ -36,10 +36,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; private: MC6845_UPDATE_ROW( crtc_update_row ); diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp index bdf392f9bed..4512939003f 100644 --- a/src/devices/bus/wangpc/rtc.cpp +++ b/src/devices/bus/wangpc/rtc.cpp @@ -214,7 +214,7 @@ void wangpc_rtc_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -226,7 +226,7 @@ uint16_t wangpc_rtc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_rtc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_rtc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { } @@ -235,7 +235,7 @@ void wangpc_rtc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_rtc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_rtc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -257,7 +257,7 @@ uint16_t wangpc_rtc_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_rtc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_rtc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset)) { diff --git a/src/devices/bus/wangpc/rtc.h b/src/devices/bus/wangpc/rtc.h index 4f0b22372f2..9233222a4f9 100644 --- a/src/devices/bus/wangpc/rtc.h +++ b/src/devices/bus/wangpc/rtc.h @@ -41,10 +41,10 @@ protected: virtual ioport_constructor device_input_ports() const override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; private: required_device m_maincpu; diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp index 4d3827ad21a..fa18e4189ce 100644 --- a/src/devices/bus/wangpc/tig.cpp +++ b/src/devices/bus/wangpc/tig.cpp @@ -196,7 +196,7 @@ uint32_t wangpc_tig_device::screen_update(screen_device &screen, bitmap_rgb32 &b // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_tig_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -206,12 +206,12 @@ uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset { case 0x20/2: case 0x22/2: - data = m_hgdc0->read(space, offset); + data = m_hgdc0->read(offset); break; case 0x24/2: case 0x26/2: - data = m_hgdc1->read(space, offset); + data = m_hgdc1->read(offset); break; case 0xfe/2: @@ -228,7 +228,7 @@ uint16_t wangpc_tig_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_tig_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset) && ACCESSING_BITS_0_7) { @@ -243,12 +243,12 @@ void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u case 0x20/2: case 0x22/2: - m_hgdc0->write(space, offset, data); + m_hgdc0->write(offset, data); break; case 0x24/2: case 0x26/2: - m_hgdc1->write(space, offset, data); + m_hgdc1->write(offset, data); break; case 0x28/2: @@ -275,17 +275,17 @@ void wangpc_tig_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u // wangpcbus_dack_r - DMA read //------------------------------------------------- -uint8_t wangpc_tig_device::wangpcbus_dack_r(address_space &space, int line) +uint8_t wangpc_tig_device::wangpcbus_dack_r(int line) { uint8_t data; if (DMA_GRAPHICS) { - data = m_hgdc1->dack_r(space, 0); + data = m_hgdc1->dack_r(); } else { - data = m_hgdc0->dack_r(space, 0); + data = m_hgdc0->dack_r(); } return data; @@ -296,15 +296,15 @@ uint8_t wangpc_tig_device::wangpcbus_dack_r(address_space &space, int line) // wangpcbus_dack_w - DMA write //------------------------------------------------- -void wangpc_tig_device::wangpcbus_dack_w(address_space &space, int line, uint8_t data) +void wangpc_tig_device::wangpcbus_dack_w(int line, uint8_t data) { if (DMA_GRAPHICS) { - m_hgdc1->dack_w(space, 0, data); + m_hgdc1->dack_w(data); } else { - m_hgdc0->dack_w(space, 0, data); + m_hgdc0->dack_w(data); } } diff --git a/src/devices/bus/wangpc/tig.h b/src/devices/bus/wangpc/tig.h index 4a86f6ecb40..0e95eb42676 100644 --- a/src/devices/bus/wangpc/tig.h +++ b/src/devices/bus/wangpc/tig.h @@ -38,10 +38,10 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint8_t wangpcbus_dack_r(address_space &space, int line) override; - virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint8_t wangpcbus_dack_r(int line) override; + virtual void wangpcbus_dack_w(int line, uint8_t data) override; virtual bool wangpcbus_have_dack(int line) override; private: diff --git a/src/devices/bus/wangpc/wangpc.cpp b/src/devices/bus/wangpc/wangpc.cpp index 36ed25bfdff..540ed94c1b3 100644 --- a/src/devices/bus/wangpc/wangpc.cpp +++ b/src/devices/bus/wangpc/wangpc.cpp @@ -104,7 +104,7 @@ void wangpcbus_device::add_card(device_wangpcbus_card_interface *card, int sid) // mrdc_r - memory read //------------------------------------------------- -READ16_MEMBER( wangpcbus_device::mrdc_r ) +uint16_t wangpcbus_device::mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -112,7 +112,7 @@ READ16_MEMBER( wangpcbus_device::mrdc_r ) while (entry) { - data &= entry->wangpcbus_mrdc_r(space, offset + 0x40000/2, mem_mask); + data &= entry->wangpcbus_mrdc_r(offset + 0x40000/2, mem_mask); entry = entry->next(); } @@ -124,13 +124,13 @@ READ16_MEMBER( wangpcbus_device::mrdc_r ) // amwc_w - memory write //------------------------------------------------- -WRITE16_MEMBER( wangpcbus_device::amwc_w ) +void wangpcbus_device::amwc_w(offs_t offset, uint16_t data, uint16_t mem_mask) { device_wangpcbus_card_interface *entry = m_device_list.first(); while (entry) { - entry->wangpcbus_amwc_w(space, offset + 0x40000/2, mem_mask, data); + entry->wangpcbus_amwc_w(offset + 0x40000/2, mem_mask, data); entry = entry->next(); } } @@ -140,7 +140,7 @@ WRITE16_MEMBER( wangpcbus_device::amwc_w ) // sad_r - I/O read //------------------------------------------------- -READ16_MEMBER( wangpcbus_device::sad_r ) +uint16_t wangpcbus_device::sad_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -148,7 +148,7 @@ READ16_MEMBER( wangpcbus_device::sad_r ) while (entry) { - data &= entry->wangpcbus_iorc_r(space, offset + 0x1100/2, mem_mask); + data &= entry->wangpcbus_iorc_r(offset + 0x1100/2, mem_mask); entry = entry->next(); } @@ -160,13 +160,13 @@ READ16_MEMBER( wangpcbus_device::sad_r ) // sad_w - I/O write //------------------------------------------------- -WRITE16_MEMBER( wangpcbus_device::sad_w ) +void wangpcbus_device::sad_w(offs_t offset, uint16_t data, uint16_t mem_mask) { device_wangpcbus_card_interface *entry = m_device_list.first(); while (entry) { - entry->wangpcbus_aiowc_w(space, offset + 0x1100/2, mem_mask, data); + entry->wangpcbus_aiowc_w(offset + 0x1100/2, mem_mask, data); entry = entry->next(); } } @@ -176,7 +176,7 @@ WRITE16_MEMBER( wangpcbus_device::sad_w ) // dack_r - DMA read //------------------------------------------------- -uint8_t wangpcbus_device::dack_r(address_space &space, int line) +uint8_t wangpcbus_device::dack_r(int line) { uint8_t retVal = 0xff; device_wangpcbus_card_interface *entry = m_device_list.first(); @@ -185,7 +185,7 @@ uint8_t wangpcbus_device::dack_r(address_space &space, int line) { if (entry->wangpcbus_have_dack(line)) { - retVal = entry->wangpcbus_dack_r(space, line); + retVal = entry->wangpcbus_dack_r(line); break; } @@ -200,7 +200,7 @@ uint8_t wangpcbus_device::dack_r(address_space &space, int line) // dack_w - DMA write //------------------------------------------------- -void wangpcbus_device::dack_w(address_space &space, int line, uint8_t data) +void wangpcbus_device::dack_w(int line, uint8_t data) { device_wangpcbus_card_interface *entry = m_device_list.first(); @@ -208,7 +208,7 @@ void wangpcbus_device::dack_w(address_space &space, int line, uint8_t data) { if (entry->wangpcbus_have_dack(line)) { - entry->wangpcbus_dack_w(space, line, data); + entry->wangpcbus_dack_w(line, data); } entry = entry->next(); diff --git a/src/devices/bus/wangpc/wangpc.h b/src/devices/bus/wangpc/wangpc.h index 2b3a7860fc1..bb8c7a3c4ac 100644 --- a/src/devices/bus/wangpc/wangpc.h +++ b/src/devices/bus/wangpc/wangpc.h @@ -92,23 +92,23 @@ public: void add_card(device_wangpcbus_card_interface *card, int sid); // computer interface - DECLARE_READ16_MEMBER( mrdc_r ); - DECLARE_WRITE16_MEMBER( amwc_w ); + uint16_t mrdc_r(offs_t offset, uint16_t mem_mask = 0xffff); + void amwc_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); - DECLARE_READ16_MEMBER( sad_r ); - DECLARE_WRITE16_MEMBER( sad_w ); + uint16_t sad_r(offs_t offset, uint16_t mem_mask = 0xffff); + void sad_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); - uint8_t dack_r(address_space &space, int line); - void dack_w(address_space &space, int line, uint8_t data); + uint8_t dack_r(int line); + void dack_w(int line, uint8_t data); - DECLARE_READ8_MEMBER( dack0_r ) { return dack_r(space, 0); } - DECLARE_WRITE8_MEMBER( dack0_w ) { dack_w(space, 0, data); } - DECLARE_READ8_MEMBER( dack1_r ) { return dack_r(space, 1); } - DECLARE_WRITE8_MEMBER( dack1_w ) { dack_w(space, 1, data); } - DECLARE_READ8_MEMBER( dack2_r ) { return dack_r(space, 2); } - DECLARE_WRITE8_MEMBER( dack2_w ) { dack_w(space, 2, data); } - DECLARE_READ8_MEMBER( dack3_r ) { return dack_r(space, 3); } - DECLARE_WRITE8_MEMBER( dack3_w ) { dack_w(space, 3, data); } + uint8_t dack0_r() { return dack_r(0); } + void dack0_w(uint8_t data) { dack_w(0, data); } + uint8_t dack1_r() { return dack_r(1); } + void dack1_w(uint8_t data) { dack_w(1, data); } + uint8_t dack2_r() { return dack_r(2); } + void dack2_w(uint8_t data) { dack_w(2, data); } + uint8_t dack3_r() { return dack_r(3); } + void dack3_w(uint8_t data) { dack_w(3, data); } DECLARE_WRITE_LINE_MEMBER( tc_w ); @@ -160,17 +160,17 @@ public: device_wangpcbus_card_interface *next() const { return m_next; } // memory access - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; } - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { } + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { return 0; } + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { } // I/O access - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) { return 0; } - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) { } + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { return 0; } + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { } bool sad(offs_t offset) const { return (offset & 0xf80) == (0x800 | (m_sid << 7)); } // DMA - virtual uint8_t wangpcbus_dack_r(address_space &space, int line) { return 0; } - virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) { } + virtual uint8_t wangpcbus_dack_r(int line) { return 0; } + virtual void wangpcbus_dack_w(int line, uint8_t data) { } virtual void wangpcbus_tc_w(int state) { } virtual bool wangpcbus_have_dack(int line) { return false; } diff --git a/src/devices/bus/wangpc/wdc.cpp b/src/devices/bus/wangpc/wdc.cpp index 6dd36b7d545..0f2598541ce 100644 --- a/src/devices/bus/wangpc/wdc.cpp +++ b/src/devices/bus/wangpc/wdc.cpp @@ -173,7 +173,7 @@ void wangpc_wdc_device::device_reset() // wangpcbus_mrdc_r - memory read //------------------------------------------------- -uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -185,7 +185,7 @@ uint16_t wangpc_wdc_device::wangpcbus_mrdc_r(address_space &space, offs_t offset // wangpcbus_amwc_w - memory write //------------------------------------------------- -void wangpc_wdc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_wdc_device::wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { } @@ -194,7 +194,7 @@ void wangpc_wdc_device::wangpcbus_amwc_w(address_space &space, offs_t offset, ui // wangpcbus_iorc_r - I/O read //------------------------------------------------- -uint16_t wangpc_wdc_device::wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) +uint16_t wangpc_wdc_device::wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) { uint16_t data = 0xffff; @@ -228,7 +228,7 @@ uint16_t wangpc_wdc_device::wangpcbus_iorc_r(address_space &space, offs_t offset // wangpcbus_aiowc_w - I/O write //------------------------------------------------- -void wangpc_wdc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) +void wangpc_wdc_device::wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) { if (sad(offset) && ACCESSING_BITS_0_7) { @@ -263,7 +263,7 @@ void wangpc_wdc_device::wangpcbus_aiowc_w(address_space &space, offs_t offset, u // wangpcbus_dack_r - DMA acknowledge read //------------------------------------------------- -uint8_t wangpc_wdc_device::wangpcbus_dack_r(address_space &space, int line) +uint8_t wangpc_wdc_device::wangpcbus_dack_r(int line) { return 0; } @@ -273,7 +273,7 @@ uint8_t wangpc_wdc_device::wangpcbus_dack_r(address_space &space, int line) // wangpcbus_dack_r - DMA acknowledge write //------------------------------------------------- -void wangpc_wdc_device::wangpcbus_dack_w(address_space &space, int line, uint8_t data) +void wangpc_wdc_device::wangpcbus_dack_w(int line, uint8_t data) { } @@ -325,11 +325,11 @@ WRITE8_MEMBER( wangpc_wdc_device::status_w ) } -READ8_MEMBER( wangpc_wdc_device::ctc_ch0_r ) { return m_ctc->read(space, 0); } -WRITE8_MEMBER( wangpc_wdc_device::ctc_ch0_w ) { m_ctc->write(space, 0, data); } -READ8_MEMBER( wangpc_wdc_device::ctc_ch1_r ) { return m_ctc->read(space, 1); } -WRITE8_MEMBER( wangpc_wdc_device::ctc_ch1_w ) { m_ctc->write(space, 1, data); } -READ8_MEMBER( wangpc_wdc_device::ctc_ch2_r ) { return m_ctc->read(space, 2); } -WRITE8_MEMBER( wangpc_wdc_device::ctc_ch2_w ) { m_ctc->write(space, 2, data); } -READ8_MEMBER( wangpc_wdc_device::ctc_ch3_r ) { return m_ctc->read(space, 3); } -WRITE8_MEMBER( wangpc_wdc_device::ctc_ch3_w ) { m_ctc->write(space, 3, data); } +READ8_MEMBER( wangpc_wdc_device::ctc_ch0_r ) { return m_ctc->read(machine().dummy_space(), 0); } +WRITE8_MEMBER( wangpc_wdc_device::ctc_ch0_w ) { m_ctc->write(machine().dummy_space(), 0, data); } +READ8_MEMBER( wangpc_wdc_device::ctc_ch1_r ) { return m_ctc->read(machine().dummy_space(), 1); } +WRITE8_MEMBER( wangpc_wdc_device::ctc_ch1_w ) { m_ctc->write(machine().dummy_space(), 1, data); } +READ8_MEMBER( wangpc_wdc_device::ctc_ch2_r ) { return m_ctc->read(machine().dummy_space(), 2); } +WRITE8_MEMBER( wangpc_wdc_device::ctc_ch2_w ) { m_ctc->write(machine().dummy_space(), 2, data); } +READ8_MEMBER( wangpc_wdc_device::ctc_ch3_r ) { return m_ctc->read(machine().dummy_space(), 3); } +WRITE8_MEMBER( wangpc_wdc_device::ctc_ch3_w ) { m_ctc->write(machine().dummy_space(), 3, data); } diff --git a/src/devices/bus/wangpc/wdc.h b/src/devices/bus/wangpc/wdc.h index e270a961750..c945ba6707d 100644 --- a/src/devices/bus/wangpc/wdc.h +++ b/src/devices/bus/wangpc/wdc.h @@ -39,12 +39,12 @@ protected: virtual void device_add_mconfig(machine_config &config) override; // device_wangpcbus_card_interface overrides - virtual uint16_t wangpcbus_mrdc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_amwc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint16_t wangpcbus_iorc_r(address_space &space, offs_t offset, uint16_t mem_mask) override; - virtual void wangpcbus_aiowc_w(address_space &space, offs_t offset, uint16_t mem_mask, uint16_t data) override; - virtual uint8_t wangpcbus_dack_r(address_space &space, int line) override; - virtual void wangpcbus_dack_w(address_space &space, int line, uint8_t data) override; + virtual uint16_t wangpcbus_mrdc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_amwc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint16_t wangpcbus_iorc_r(offs_t offset, uint16_t mem_mask) override; + virtual void wangpcbus_aiowc_w(offs_t offset, uint16_t mem_mask, uint16_t data) override; + virtual uint8_t wangpcbus_dack_r(int line) override; + virtual void wangpcbus_dack_w(int line, uint8_t data) override; virtual bool wangpcbus_have_dack(int line) override; private: diff --git a/src/devices/video/upd7220.cpp b/src/devices/video/upd7220.cpp index 75cc9daa01b..d8697222485 100644 --- a/src/devices/video/upd7220.cpp +++ b/src/devices/video/upd7220.cpp @@ -1448,7 +1448,7 @@ void upd7220_device::continue_command() // read - //------------------------------------------------- -READ8_MEMBER( upd7220_device::read ) +uint8_t upd7220_device::read(offs_t offset) { uint8_t data; @@ -1479,7 +1479,7 @@ READ8_MEMBER( upd7220_device::read ) // write - //------------------------------------------------- -WRITE8_MEMBER( upd7220_device::write ) +void upd7220_device::write(offs_t offset, uint8_t data) { if (offset & 1) { @@ -1502,7 +1502,7 @@ WRITE8_MEMBER( upd7220_device::write ) // dack_r - //------------------------------------------------- -READ8_MEMBER( upd7220_device::dack_r ) +uint8_t upd7220_device::dack_r() { return 0; } @@ -1512,7 +1512,7 @@ READ8_MEMBER( upd7220_device::dack_r ) // dack_w - //------------------------------------------------- -WRITE8_MEMBER( upd7220_device::dack_w ) +void upd7220_device::dack_w(uint8_t data) { } diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h index 43748f7fa63..7c7370c0cd9 100644 --- a/src/devices/video/upd7220.h +++ b/src/devices/video/upd7220.h @@ -109,11 +109,11 @@ public: auto vsync_wr_callback() { return m_write_vsync.bind(); } auto blank_wr_callback() { return m_write_blank.bind(); } - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); - DECLARE_READ8_MEMBER( dack_r ); - DECLARE_WRITE8_MEMBER( dack_w ); + uint8_t dack_r(); + void dack_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER( ext_sync_w ); DECLARE_WRITE_LINE_MEMBER( lpen_w ); diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp index a1311fbc024..1e9a44801cf 100644 --- a/src/mame/drivers/apc.cpp +++ b/src/mame/drivers/apc.cpp @@ -344,9 +344,9 @@ READ8_MEMBER(apc_state::apc_gdc_r) uint8_t res; if(offset & 1) - res = m_hgdc2->read(space, (offset & 2) >> 1); // upd7220 bitmap port + res = m_hgdc2->read((offset & 2) >> 1); // upd7220 bitmap port else - res = m_hgdc1->read(space, (offset & 2) >> 1); // upd7220 character port + res = m_hgdc1->read((offset & 2) >> 1); // upd7220 character port return res; } @@ -354,9 +354,9 @@ READ8_MEMBER(apc_state::apc_gdc_r) WRITE8_MEMBER(apc_state::apc_gdc_w) { if(offset & 1) - m_hgdc2->write(space, (offset & 2) >> 1,data); // upd7220 bitmap port + m_hgdc2->write((offset & 2) >> 1,data); // upd7220 bitmap port else - m_hgdc1->write(space, (offset & 2) >> 1,data); // upd7220 character port + m_hgdc1->write((offset & 2) >> 1,data); // upd7220 character port } READ8_MEMBER(apc_state::apc_kbd_r) diff --git a/src/mame/drivers/mikromik.cpp b/src/mame/drivers/mikromik.cpp index 5be831c4c2c..4c333c4379d 100644 --- a/src/mame/drivers/mikromik.cpp +++ b/src/mame/drivers/mikromik.cpp @@ -123,7 +123,7 @@ READ8_MEMBER( mm1_state::read ) break; case 7: - data = m_hgdc->read(space, offset & 0x01); + data = m_hgdc->read(offset & 0x01); break; } } @@ -192,7 +192,7 @@ WRITE8_MEMBER( mm1_state::write ) break; case 7: - m_hgdc->write(space, offset & 0x01, data); + m_hgdc->write(offset & 0x01, data); break; } } diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index e48152c5f13..9a42b6f3c1f 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -2947,11 +2947,8 @@ READ8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_r) break; case 6: - data = m_hgdc->read(space, offset & 0x00); - break; - case 7: - data = m_hgdc->read(space, offset & 0x01); + data = m_hgdc->read(offset & 0x01); break; default: @@ -3169,7 +3166,7 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w) case 6: case 7: - m_hgdc->write(space, offset & 0x01, data); + m_hgdc->write(offset & 0x01, data); break; } // switch diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index 1085c74930b..9c448093a7d 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -876,7 +876,7 @@ WRITE8_MEMBER( wangpc_state::memw_w ) READ8_MEMBER( wangpc_state::ior2_r ) { if (m_disable_dreq2) - return m_bus->dack_r(space, 2); + return m_bus->dack_r(2); else return m_fdc->dma_r(); } @@ -884,7 +884,7 @@ READ8_MEMBER( wangpc_state::ior2_r ) WRITE8_MEMBER( wangpc_state::iow2_w ) { if (m_disable_dreq2) - m_bus->dack_w(space, 2, data); + m_bus->dack_w(2, data); else m_fdc->dma_w(data); } diff --git a/src/mame/video/pc9801.cpp b/src/mame/video/pc9801.cpp index 34d8d3e04c7..c6fee1e569d 100644 --- a/src/mame/video/pc9801.cpp +++ b/src/mame/video/pc9801.cpp @@ -321,7 +321,7 @@ READ8_MEMBER(pc9801_state::pc9801_a0_r) { case 0x00: case 0x02: - return m_hgdc2->read(space, (offset & 2) >> 1); + return m_hgdc2->read((offset & 2) >> 1); /* TODO: double check these two */ case 0x04: return m_vram_disp & 1; @@ -366,7 +366,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_a0_w) { case 0x00: case 0x02: - m_hgdc2->write(space, (offset & 2) >> 1,data); + m_hgdc2->write((offset & 2) >> 1,data); return; case 0x04: m_vram_disp = data & 1; From 2bf7666664f5ccbf6dd2acf2ae043c91142ba723 Mon Sep 17 00:00:00 2001 From: bmcphail Date: Mon, 25 Feb 2019 10:33:40 -0500 Subject: [PATCH 28/42] Fix problem with bac06 NW The previous emulation logic change was correct, however Sly Spy, Hippodrome, Birdy Try suffered from an ordering bug - tilemap.cpp in the core cached the tile indices before the game updated the dynamic colmun/row major bit. It seems the correct fix is to make sure tilemap::mappings_update() should be called when the column/row bit changes, however this is currently a private function. I've put in a hack at line 396 so that mappings_update() is called as a side effect of a flip. The better fix would be just to expose mappings_update for general driver use, but I didn't want to make that larger change without approval. --- src/mame/video/decbac06 - Copy (2).cpp | 592 +++++++++++++++++++++++++ src/mame/video/decbac06.cpp | 60 ++- src/mame/video/decmxc06.cpp | 9 +- 3 files changed, 645 insertions(+), 16 deletions(-) create mode 100644 src/mame/video/decbac06 - Copy (2).cpp diff --git a/src/mame/video/decbac06 - Copy (2).cpp b/src/mame/video/decbac06 - Copy (2).cpp new file mode 100644 index 00000000000..051d79ed126 --- /dev/null +++ b/src/mame/video/decbac06 - Copy (2).cpp @@ -0,0 +1,592 @@ +// license:BSD-3-Clause +// copyright-holders:Bryan McPhail, David Haywood +/* + Deco BAC06 tilemap generator: + + this a direct relative of the later chip implemented in deco16ic.c + we could implement this as either an 8-bit or a 16-bit chip, for now + I'm using the 16-bit implementation from dec0.c + + used by: + + actfancr.c + dec0.c + dec8.c (oscar, cobracom, ghostb) + madmotor.c + stadhero.c + pcktgal.c + + Notes (from dec0.c) + + All games contain three BAC06 background generator chips, usual (software) +configuration is 2 chips of 16*16 tiles, 1 of 8*8. + + Playfield control registers: + bank 0: + 0: + bit 0 (0x1) set = 8*8 tiles, else 16*16 tiles + Bit 1 (0x2) set = row major tile layout, else column major* + bit 2 (0x4) set enables rowscroll + bit 3 (0x8) set enables colscroll + bit 7 (0x80) set in playfield 1 is reverse screen (set via dip-switch) + bit 7 (0x80) in other playfields unknown + 2: unknown (00 in bg, 03 in fg+text - maybe controls pf transparency?) + 4: unknown (always 00) [Used to access 2nd bank of tiles in Stadium Hero) + 6: playfield shape: 00 = 4x1, 01 = 2x2, 02 = 1x4 (low 4 bits only) + + bank 1: + 0: horizontal scroll + 2: vertical scroll + 4: colscroll shifter (low 4 bits, top 4 bits do nothing) + 6: rowscroll shifter (low 4 bits, top 4 bits do nothing) + + Row & column scroll can be applied simultaneously or by themselves. + The shift register controls the granularity of the scroll offsets + (more details given later). + + * Bandit is the only game known to use column major tile layout, when in this + mode X scrolling is also inverted, and tile character data is flipped on X. + +Playfield priority (Bad Dudes, etc): + In the bottommost playfield, pens 8-15 can have priority over the next playfield. + In that next playfield, pens 8-15 can have priority over sprites. + +Bit 0: Playfield inversion +Bit 1: Enable playfield mixing (for palettes 8-15 only) +Bit 2: Enable playfield/sprite mixing (for palettes 8-15 only) + +Priority word (Midres): + Bit 0 set = Playfield 3 drawn over Playfield 2 + ~ = Playfield 2 drawn over Playfield 3 + Bit 1 set = Sprites are drawn inbetween playfields + ~ = Sprites are on top of playfields + Bit 2 + Bit 3 set = ... + + Note that priority mixing is handled outside of the BAC-06 chip. + +*/ + +#include "emu.h" +#include "decbac06.h" + +DEFINE_DEVICE_TYPE(DECO_BAC06, deco_bac06_device, "deco_back06", "DECO BAC06 Tilemap") + +deco_bac06_device::deco_bac06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : device_t(mconfig, DECO_BAC06, tag, owner, clock) + , m_pf_data(nullptr) + , m_pf_rowscroll(nullptr) + , m_pf_colscroll(nullptr) + , m_tile_region_8(0) + , m_tile_region_16(0) + , m_supports_8x8(true) + , m_supports_16x16(true) + , m_supports_rc_scroll(true) + , m_gfxcolmask(0) + , m_rambank(0) + , m_gfxregion8x8(0) + , m_gfxregion16x16(0) + , m_wide(0) + , m_bppmult(0) + , m_bppmask(0) + , m_gfxdecode(*this, finder_base::DUMMY_TAG) +{ + for (int i = 0; i < 8; i++) + { + m_pf_control_0[i] = 0; + m_pf_control_1[i] = 0; + } +} + +void deco_bac06_device::device_start() +{ + if(!m_gfxdecode->started()) + throw device_missing_dependencies(); + + m_pf_data = make_unique_clear(0x4000 / 2); // 0x2000 is the maximum needed, some games / chip setups map less and mirror - stadium hero banks this to 0x4000?! + m_pf_rowscroll = make_unique_clear(0x2000 / 2); + m_pf_colscroll = make_unique_clear(0x2000 / 2); + + create_tilemaps(m_gfxregion8x8, m_gfxregion16x16); + m_gfxcolmask = 0x0f; + + m_bppmult = 0x10; + m_bppmask = 0x0f; + m_rambank = 0; + m_flip_screen = false; + + save_pointer(NAME(m_pf_data), 0x4000/2); + save_pointer(NAME(m_pf_rowscroll), 0x2000/2); + save_pointer(NAME(m_pf_colscroll), 0x2000/2); + save_item(NAME(m_pf_control_0)); + save_item(NAME(m_pf_control_1)); + save_item(NAME(m_gfxcolmask)); + save_item(NAME(m_rambank)); + save_item(NAME(m_flip_screen)); +} + +void deco_bac06_device::device_reset() +{ +} + +void deco_bac06_device::set_flip_screen(bool flip) +{ + if (m_flip_screen != flip) + { + m_flip_screen = flip; + for (int i = 0; i < 3; i++) + { + m_pf8x8_tilemap[i]->set_flip(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); + m_pf16x16_tilemap[i]->set_flip(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); + } + } +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_scan) +{ + if ((m_pf_control_0[0]&2)==0) + return (row & 0xf) + ((0x3f - (col & 0x3f)) << 4); + return (col & 0xf) + ((row & 0xf) << 4) + ((col & 0x1f0) << 4); +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_scan) +{ + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0xf) + ((col & 0x1f) << 4) + ((col & 0xf0) << 5); + return (col & 0xf) + ((row & 0x1f) << 4) + ((col & 0xf0) << 5); +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_scan) +{ + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (col & 0xf) + ((row & 0x3f) << 4) + ((row & 0x70) << 6); + return (col & 0xf) + ((row & 0x3f) << 4) + ((col & 0x70) << 6); +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_8x8_scan) +{ + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x60) << 5); + return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_8x8_scan) +{ + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0x1f) + ((col & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6); + return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x20) << 5) + ((col & 0x20) << 6); +} + +TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_8x8_scan) +{ + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0x1f) + ((col & 0x7f) << 5); + return (col & 0x1f) + ((row & 0x7f) << 5); +} + +TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf8x8_tile_info) +{ + if (m_rambank&1) tile_index+=0x1000; + int tile=m_pf_data[tile_index]; + int colourpri=(tile>>12); + int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; + SET_TILE_INFO_MEMBER(m_tile_region_8,tile&0xfff,0,flags); + tileinfo.category = colourpri; +} + +TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf16x16_tile_info) +{ + if (m_rambank&1) tile_index+=0x1000; + int tile=m_pf_data[tile_index]; + int colourpri=(tile>>12); + int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; + SET_TILE_INFO_MEMBER(m_tile_region_16,tile&0xfff,0,flags); + tileinfo.category = colourpri; +} + +void deco_bac06_device::create_tilemaps(int region8x8, int region16x16) +{ + m_tile_region_8 = region8x8; + m_tile_region_16 = region16x16; + + m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32); + m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64); + m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128); + + + if (m_wide==2) + { + m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 256, 16); + m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 128, 32); + m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 64, 64); + } + else if (m_wide==1) + { + m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 128, 16); + m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 64, 32); + m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 32, 64); + } + else + { + m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16,16, 64, 16); + m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16,16, 32, 32); + m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16,16, 16, 64); + } +} + +void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap, + const rectangle &cliprect, + tilemap_t *tilemap_ptr, + const uint16_t *rowscroll_ptr, + const uint16_t *colscroll_ptr, + const uint16_t *control0, + const uint16_t *control1, + int flags, + uint16_t penmask, + uint16_t pencondition, + uint16_t colprimask, + uint16_t colpricondition + ) +{ + const bitmap_ind16 &src_bitmap = tilemap_ptr->pixmap(); + const bitmap_ind8 &flags_bitmap = tilemap_ptr->flagsmap(); + int x, y, p, colpri; + int column_offset=0, src_x=0, src_y=0; + uint32_t scrollx = 0; + uint32_t scrolly = 0; + + if (control1) + { + if (control0 && (control0[0]&2)==0) // Use of column major mode inverts scroll direction + scrollx = -control1[0] - 0x100; + else + scrollx = control1[0]; + scrolly = control1[1]; + } + + int width_mask; + int height_mask; + int row_scroll_enabled = 0; + int col_scroll_enabled = 0; + + if (m_supports_rc_scroll) + { + if (control0) + { + row_scroll_enabled = (rowscroll_ptr && (control0[0] & 0x4)); + col_scroll_enabled = (colscroll_ptr && (control0[0] & 0x8)); + } + } + + width_mask = src_bitmap.width() - 1; + height_mask = src_bitmap.height() - 1; + + /* Column scroll & row scroll may per applied per pixel, there are + shift registers for each which control the granularity of the row/col + offset (down to per line level for row, and per 8 lines for column). + + Nb: The row & col selectors are _not_ affected by the shape of the + playfield (ie, 256*1024, 512*512 or 1024*256). So even if the tilemap + width is only 256, 'src_x' should not wrap at 256 in the code below (to + do so would mean the top half of row RAM would never be accessed which + is incorrect). + + Nb2: Real hardware exhibits a strange bug with column scroll on 'mode 2' + (256*1024) - the first column has a strange additional offset, but + curiously the first 'wrap' (at scroll offset 256) does not have this offset, + it is displayed as expected. The bug is confimed to only affect this mode, + the other two modes work as expected. This bug is not emulated, as it + doesn't affect any games. + */ + + if (m_flip_screen) + src_y = (src_bitmap.height() - 256) - scrolly; + else + src_y = scrolly; + + for (y=0; y<=cliprect.bottom(); y++) { + if (row_scroll_enabled) + src_x=scrollx + rowscroll_ptr[(src_y >> (control1[3]&0xf))&(0x1ff>>(control1[3]&0xf))]; + else + src_x=scrollx; + + if (m_flip_screen) + src_x=(src_bitmap.width() - 256) - src_x; + + for (x=0; x<=cliprect.right(); x++) { + if (col_scroll_enabled) + column_offset=colscroll_ptr[((src_x >> 3) >> (control1[2]&0xf))&(0x3f>>(control1[2]&0xf))]; + + p = src_bitmap.pix16((src_y + column_offset)&height_mask, src_x&width_mask); + colpri = flags_bitmap.pix8((src_y + column_offset)&height_mask, src_x&width_mask)&0xf; + + src_x++; + if ((flags&TILEMAP_DRAW_OPAQUE) || (p&m_bppmask)) + { + if ((p&penmask)==pencondition) + if((colpri&colprimask)==colpricondition) + bitmap.pix16(y, x) = p+(colpri&m_gfxcolmask)*m_bppmult; + } + } + src_y++; + } +} + +void deco_bac06_device::deco_bac06_pf_draw(bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,uint16_t penmask, uint16_t pencondition,uint16_t colprimask, uint16_t colpricondition) +{ + tilemap_t* tm = nullptr; + + int tm_dimensions = m_pf_control_0[3] & 0x3; + if (tm_dimensions == 3) tm_dimensions = 1; // 3 is invalid / the same as 1? + + if (m_pf_control_0[0]&0x1) // is 8x8 tiles mode selected? + { + if (m_supports_8x8) + { + tm = m_pf8x8_tilemap[tm_dimensions]; + } + else if (m_supports_16x16) + { + tm = m_pf16x16_tilemap[tm_dimensions]; + } + } + else // 16x16 tiles mode is selected + { + if (m_supports_16x16) + { + tm = m_pf16x16_tilemap[tm_dimensions]; + } + else if (m_supports_8x8) + { + tm = m_pf8x8_tilemap[tm_dimensions]; + } + } + + if (tm) + custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),m_pf_control_0,m_pf_control_1,flags, penmask, pencondition, colprimask, colpricondition); + +} + +// used for pocket gal bootleg, which doesn't set registers properly and simply expects a fixed size tilemap. +void deco_bac06_device::deco_bac06_pf_draw_bootleg(bitmap_ind16 &bitmap,const rectangle &cliprect,int flags, int mode, int type) +{ + tilemap_t* tm = nullptr; + if (!mode) tm = m_pf8x8_tilemap[type]; + else tm = m_pf16x16_tilemap[type]; + + custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),nullptr,nullptr,flags, 0, 0, 0, 0); +} + + + +WRITE16_MEMBER( deco_bac06_device::pf_control_0_w ) +{ + int oldRegister0 = m_pf_control_0[0]; + + offset &= 3; + + COMBINE_DATA(&m_pf_control_0[offset]); + + bool dirtyAll = false; + if (offset==0) + { + if ((oldRegister0&2)!=(m_pf_control_0[offset]&2)) + { + int flip = m_flip_screen; + set_flip_screen(flip^1); + set_flip_screen(flip); // Hack to force tilemap.cpp mappings_update() to be called + dirtyAll = true; + } + } + if (offset==2) + { + int newbank = m_pf_control_0[offset]&1; + if ((newbank&1) != (m_rambank&1)) + { + // I don't know WHY Stadium Hero uses this as a bank but the RAM test expects it.. + // I'm curious as to if anything else sets it tho + if (strcmp(machine().system().name,"stadhero")) + printf("tilemap ram bank change to %d\n", newbank&1); + + dirtyAll = true; + m_rambank = newbank&1; + } + } + + if (dirtyAll) + { + m_pf8x8_tilemap[0]->mark_all_dirty(); + m_pf8x8_tilemap[1]->mark_all_dirty(); + m_pf8x8_tilemap[2]->mark_all_dirty(); + m_pf16x16_tilemap[0]->mark_all_dirty(); + m_pf16x16_tilemap[1]->mark_all_dirty(); + m_pf16x16_tilemap[2]->mark_all_dirty(); + } +} + +READ16_MEMBER( deco_bac06_device::pf_control_1_r ) +{ + offset &= 7; + return m_pf_control_1[offset]; +} + +WRITE16_MEMBER( deco_bac06_device::pf_control_1_w ) +{ + offset &= 7; + COMBINE_DATA(&m_pf_control_1[offset]); +} + +WRITE16_MEMBER( deco_bac06_device::pf_data_w ) +{ + if (m_rambank&1) offset+=0x1000; + + COMBINE_DATA(&m_pf_data[offset]); + m_pf8x8_tilemap[0]->mark_tile_dirty(offset); + m_pf8x8_tilemap[1]->mark_tile_dirty(offset); + m_pf8x8_tilemap[2]->mark_tile_dirty(offset); + m_pf16x16_tilemap[0]->mark_tile_dirty(offset); + m_pf16x16_tilemap[1]->mark_tile_dirty(offset); + m_pf16x16_tilemap[2]->mark_tile_dirty(offset); +} + +READ16_MEMBER( deco_bac06_device::pf_data_r ) +{ + if (m_rambank&1) offset+=0x1000; + + return m_pf_data[offset]; +} + +WRITE8_MEMBER( deco_bac06_device::pf_data_8bit_w ) +{ + if (offset&1) + pf_data_w(space,offset/2,data,0x00ff); + else + pf_data_w(space,offset/2,data<<8,0xff00); +} + +READ8_MEMBER( deco_bac06_device::pf_data_8bit_r ) +{ + if (offset&1) /* MSB */ + return pf_data_r(space,offset/2,0x00ff); + else + return pf_data_r(space,offset/2,0xff00)>>8; +} + +WRITE16_MEMBER( deco_bac06_device::pf_rowscroll_w ) +{ + COMBINE_DATA(&m_pf_rowscroll[offset]); +} + +WRITE16_MEMBER( deco_bac06_device::pf_colscroll_w ) +{ + COMBINE_DATA(&m_pf_colscroll[offset]); +} + +READ16_MEMBER( deco_bac06_device::pf_rowscroll_r ) +{ + return m_pf_rowscroll[offset]; +} + +READ16_MEMBER( deco_bac06_device::pf_colscroll_r ) +{ + return m_pf_colscroll[offset]; +} + +/* used by dec8.c */ +WRITE8_MEMBER( deco_bac06_device::pf_control0_8bit_w ) +{ + if (offset&1) + pf_control_0_w(space,offset/2,data,0x00ff); // oscar (mirrors?) + else + pf_control_0_w(space,offset/2,data,0x00ff); +} + +/* used by dec8.c */ +READ8_MEMBER( deco_bac06_device::pf_control1_8bit_r ) +{ + if (offset&1) + return pf_control_1_r(space,offset/2,0x00ff); + else + return pf_control_1_r(space,offset/2,0xff00)>>8; +} + +/* used by dec8.c */ +WRITE8_MEMBER( deco_bac06_device::pf_control1_8bit_w ) +{ + if (offset<4) // these registers are 16-bit? + { + if (offset&1) + pf_control_1_w(space,offset/2,data,0x00ff); + else + pf_control_1_w(space,offset/2,data<<8,0xff00); + } + else // these registers are 8-bit and mirror? (triothep vs actfancr) + { + if (offset&1) + pf_control_1_w(space,offset/2,data,0x00ff); + else + pf_control_1_w(space,offset/2,data,0x00ff); + } +} + +READ8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_r ) +{ + if (offset&1) + return pf_rowscroll_r(space,offset/2,0x00ff); + else + return pf_rowscroll_r(space,offset/2,0xff00)>>8; +} + + +WRITE8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_w ) +{ + if (offset&1) + pf_rowscroll_w(space,offset/2,data,0x00ff); + else + pf_rowscroll_w(space,offset/2,data<<8,0xff00); +} + +READ8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_swap_r ) +{ + if (offset&1) + return pf_rowscroll_r(space,offset/2,0xff00)>>8; + else + return pf_rowscroll_r(space,offset/2,0x00ff); +} + +WRITE8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_swap_w ) +{ + if (offset&1) + pf_rowscroll_w(space,offset/2,data<<8,0xff00); + else + pf_rowscroll_w(space,offset/2,data,0x00ff); +} + + + +/* used by hippodrm */ +WRITE8_MEMBER( deco_bac06_device::pf_control0_8bit_packed_w ) +{ + if (offset&1) + pf_control_0_w(space,offset/2,data<<8,0xff00); + else + pf_control_0_w(space,offset/2,data,0x00ff); +} + +/* used by hippodrm */ +WRITE8_MEMBER( deco_bac06_device::pf_control1_8bit_swap_w ) +{ + pf_control1_8bit_w(space, offset^1, data); +} + +/* used by hippodrm */ +READ8_MEMBER( deco_bac06_device::pf_data_8bit_swap_r ) +{ + return pf_data_8bit_r(space, offset^1); +} + +/* used by hippodrm */ +WRITE8_MEMBER( deco_bac06_device::pf_data_8bit_swap_w ) +{ + pf_data_8bit_w(space, offset^1, data); +} diff --git a/src/mame/video/decbac06.cpp b/src/mame/video/decbac06.cpp index 590a569e245..051d79ed126 100644 --- a/src/mame/video/decbac06.cpp +++ b/src/mame/video/decbac06.cpp @@ -25,7 +25,7 @@ configuration is 2 chips of 16*16 tiles, 1 of 8*8. bank 0: 0: bit 0 (0x1) set = 8*8 tiles, else 16*16 tiles - Bit 1 (0x2) unknown + Bit 1 (0x2) set = row major tile layout, else column major* bit 2 (0x4) set enables rowscroll bit 3 (0x8) set enables colscroll bit 7 (0x80) set in playfield 1 is reverse screen (set via dip-switch) @@ -44,6 +44,9 @@ configuration is 2 chips of 16*16 tiles, 1 of 8*8. The shift register controls the granularity of the scroll offsets (more details given later). + * Bandit is the only game known to use column major tile layout, when in this + mode X scrolling is also inverted, and tile character data is flipped on X. + Playfield priority (Bad Dudes, etc): In the bottommost playfield, pens 8-15 can have priority over the next playfield. In that next playfield, pens 8-15 can have priority over sprites. @@ -60,6 +63,8 @@ Priority word (Midres): Bit 2 Bit 3 set = ... + Note that priority mixing is handled outside of the BAC-06 chip. + */ #include "emu.h" @@ -139,31 +144,43 @@ void deco_bac06_device::set_flip_screen(bool flip) TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_scan) { + if ((m_pf_control_0[0]&2)==0) + return (row & 0xf) + ((0x3f - (col & 0x3f)) << 4); return (col & 0xf) + ((row & 0xf) << 4) + ((col & 0x1f0) << 4); } TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_scan) { + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0xf) + ((col & 0x1f) << 4) + ((col & 0xf0) << 5); return (col & 0xf) + ((row & 0x1f) << 4) + ((col & 0xf0) << 5); } TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_scan) { + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (col & 0xf) + ((row & 0x3f) << 4) + ((row & 0x70) << 6); return (col & 0xf) + ((row & 0x3f) << 4) + ((col & 0x70) << 6); } TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_8x8_scan) { + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x60) << 5); return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); } TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_8x8_scan) { + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0x1f) + ((col & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6); return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x20) << 5) + ((col & 0x20) << 6); } TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_8x8_scan) { + //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game + // return (row & 0x1f) + ((col & 0x7f) << 5); return (col & 0x1f) + ((row & 0x7f) << 5); } @@ -172,7 +189,8 @@ TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf8x8_tile_info) if (m_rambank&1) tile_index+=0x1000; int tile=m_pf_data[tile_index]; int colourpri=(tile>>12); - SET_TILE_INFO_MEMBER(m_tile_region_8,tile&0xfff,0,0); + int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; + SET_TILE_INFO_MEMBER(m_tile_region_8,tile&0xfff,0,flags); tileinfo.category = colourpri; } @@ -181,7 +199,8 @@ TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf16x16_tile_info) if (m_rambank&1) tile_index+=0x1000; int tile=m_pf_data[tile_index]; int colourpri=(tile>>12); - SET_TILE_INFO_MEMBER(m_tile_region_16,tile&0xfff,0,0); + int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; + SET_TILE_INFO_MEMBER(m_tile_region_16,tile&0xfff,0,flags); tileinfo.category = colourpri; } @@ -238,7 +257,10 @@ void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap, if (control1) { - scrollx = control1[0]; + if (control0 && (control0[0]&2)==0) // Use of column major mode inverts scroll direction + scrollx = -control1[0] - 0x100; + else + scrollx = control1[0]; scrolly = control1[1]; } @@ -359,10 +381,23 @@ void deco_bac06_device::deco_bac06_pf_draw_bootleg(bitmap_ind16 &bitmap,const re WRITE16_MEMBER( deco_bac06_device::pf_control_0_w ) { + int oldRegister0 = m_pf_control_0[0]; + offset &= 3; COMBINE_DATA(&m_pf_control_0[offset]); + bool dirtyAll = false; + if (offset==0) + { + if ((oldRegister0&2)!=(m_pf_control_0[offset]&2)) + { + int flip = m_flip_screen; + set_flip_screen(flip^1); + set_flip_screen(flip); // Hack to force tilemap.cpp mappings_update() to be called + dirtyAll = true; + } + } if (offset==2) { int newbank = m_pf_control_0[offset]&1; @@ -373,15 +408,20 @@ WRITE16_MEMBER( deco_bac06_device::pf_control_0_w ) if (strcmp(machine().system().name,"stadhero")) printf("tilemap ram bank change to %d\n", newbank&1); + dirtyAll = true; m_rambank = newbank&1; - m_pf8x8_tilemap[0]->mark_all_dirty(); - m_pf8x8_tilemap[1]->mark_all_dirty(); - m_pf8x8_tilemap[2]->mark_all_dirty(); - m_pf16x16_tilemap[0]->mark_all_dirty(); - m_pf16x16_tilemap[1]->mark_all_dirty(); - m_pf16x16_tilemap[2]->mark_all_dirty(); } } + + if (dirtyAll) + { + m_pf8x8_tilemap[0]->mark_all_dirty(); + m_pf8x8_tilemap[1]->mark_all_dirty(); + m_pf8x8_tilemap[2]->mark_all_dirty(); + m_pf16x16_tilemap[0]->mark_all_dirty(); + m_pf16x16_tilemap[1]->mark_all_dirty(); + m_pf16x16_tilemap[2]->mark_all_dirty(); + } } READ16_MEMBER( deco_bac06_device::pf_control_1_r ) diff --git a/src/mame/video/decmxc06.cpp b/src/mame/video/decmxc06.cpp index 76e15e189cc..fbf91e3cbaa 100644 --- a/src/mame/video/decmxc06.cpp +++ b/src/mame/video/decmxc06.cpp @@ -61,7 +61,7 @@ void deco_mxc06_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli offs = 0; while (offs < m_ramsize / 2) { - int sx, sy, code, color, w, h, flipx, flipy, incy, flash, mult, x, y; + int sx, sy, code, color, w, h, flipx, flipy, incy, flash, mult, x, y, parentFlipY; sy = spriteram[offs]; sx = spriteram[offs + 2]; @@ -70,12 +70,9 @@ void deco_mxc06_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli flash = sx & 0x800; flipx = sy & 0x2000; - flipy = sy & 0x4000; + parentFlipY = flipy = sy & 0x4000; h = (1 << ((sy & 0x1800) >> 11)); /* 1x, 2x, 4x, 8x height */ w = (1 << ((sy & 0x0600) >> 9)); /* 1x, 2x, 4x, 8x width */ - /* multi width used only on the title screen? */ - - sx = sx & 0x01ff; sy = sy & 0x01ff; @@ -112,7 +109,7 @@ void deco_mxc06_device::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cli code &= ~(h - 1); // not affected by flipscreen - if (spriteram[offs] & 0x4000) + if (parentFlipY) // in the case of multi-width sprites the y flip bit is set by the parent incy = -1; else { From d63a891a5854b4d9d28baafeeee02cec0199ea19 Mon Sep 17 00:00:00 2001 From: bmcphail Date: Mon, 25 Feb 2019 10:39:27 -0500 Subject: [PATCH 29/42] woops, delete file not meant to be checked in nw --- src/mame/video/decbac06 - Copy (2).cpp | 592 ------------------------- 1 file changed, 592 deletions(-) delete mode 100644 src/mame/video/decbac06 - Copy (2).cpp diff --git a/src/mame/video/decbac06 - Copy (2).cpp b/src/mame/video/decbac06 - Copy (2).cpp deleted file mode 100644 index 051d79ed126..00000000000 --- a/src/mame/video/decbac06 - Copy (2).cpp +++ /dev/null @@ -1,592 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Bryan McPhail, David Haywood -/* - Deco BAC06 tilemap generator: - - this a direct relative of the later chip implemented in deco16ic.c - we could implement this as either an 8-bit or a 16-bit chip, for now - I'm using the 16-bit implementation from dec0.c - - used by: - - actfancr.c - dec0.c - dec8.c (oscar, cobracom, ghostb) - madmotor.c - stadhero.c - pcktgal.c - - Notes (from dec0.c) - - All games contain three BAC06 background generator chips, usual (software) -configuration is 2 chips of 16*16 tiles, 1 of 8*8. - - Playfield control registers: - bank 0: - 0: - bit 0 (0x1) set = 8*8 tiles, else 16*16 tiles - Bit 1 (0x2) set = row major tile layout, else column major* - bit 2 (0x4) set enables rowscroll - bit 3 (0x8) set enables colscroll - bit 7 (0x80) set in playfield 1 is reverse screen (set via dip-switch) - bit 7 (0x80) in other playfields unknown - 2: unknown (00 in bg, 03 in fg+text - maybe controls pf transparency?) - 4: unknown (always 00) [Used to access 2nd bank of tiles in Stadium Hero) - 6: playfield shape: 00 = 4x1, 01 = 2x2, 02 = 1x4 (low 4 bits only) - - bank 1: - 0: horizontal scroll - 2: vertical scroll - 4: colscroll shifter (low 4 bits, top 4 bits do nothing) - 6: rowscroll shifter (low 4 bits, top 4 bits do nothing) - - Row & column scroll can be applied simultaneously or by themselves. - The shift register controls the granularity of the scroll offsets - (more details given later). - - * Bandit is the only game known to use column major tile layout, when in this - mode X scrolling is also inverted, and tile character data is flipped on X. - -Playfield priority (Bad Dudes, etc): - In the bottommost playfield, pens 8-15 can have priority over the next playfield. - In that next playfield, pens 8-15 can have priority over sprites. - -Bit 0: Playfield inversion -Bit 1: Enable playfield mixing (for palettes 8-15 only) -Bit 2: Enable playfield/sprite mixing (for palettes 8-15 only) - -Priority word (Midres): - Bit 0 set = Playfield 3 drawn over Playfield 2 - ~ = Playfield 2 drawn over Playfield 3 - Bit 1 set = Sprites are drawn inbetween playfields - ~ = Sprites are on top of playfields - Bit 2 - Bit 3 set = ... - - Note that priority mixing is handled outside of the BAC-06 chip. - -*/ - -#include "emu.h" -#include "decbac06.h" - -DEFINE_DEVICE_TYPE(DECO_BAC06, deco_bac06_device, "deco_back06", "DECO BAC06 Tilemap") - -deco_bac06_device::deco_bac06_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, DECO_BAC06, tag, owner, clock) - , m_pf_data(nullptr) - , m_pf_rowscroll(nullptr) - , m_pf_colscroll(nullptr) - , m_tile_region_8(0) - , m_tile_region_16(0) - , m_supports_8x8(true) - , m_supports_16x16(true) - , m_supports_rc_scroll(true) - , m_gfxcolmask(0) - , m_rambank(0) - , m_gfxregion8x8(0) - , m_gfxregion16x16(0) - , m_wide(0) - , m_bppmult(0) - , m_bppmask(0) - , m_gfxdecode(*this, finder_base::DUMMY_TAG) -{ - for (int i = 0; i < 8; i++) - { - m_pf_control_0[i] = 0; - m_pf_control_1[i] = 0; - } -} - -void deco_bac06_device::device_start() -{ - if(!m_gfxdecode->started()) - throw device_missing_dependencies(); - - m_pf_data = make_unique_clear(0x4000 / 2); // 0x2000 is the maximum needed, some games / chip setups map less and mirror - stadium hero banks this to 0x4000?! - m_pf_rowscroll = make_unique_clear(0x2000 / 2); - m_pf_colscroll = make_unique_clear(0x2000 / 2); - - create_tilemaps(m_gfxregion8x8, m_gfxregion16x16); - m_gfxcolmask = 0x0f; - - m_bppmult = 0x10; - m_bppmask = 0x0f; - m_rambank = 0; - m_flip_screen = false; - - save_pointer(NAME(m_pf_data), 0x4000/2); - save_pointer(NAME(m_pf_rowscroll), 0x2000/2); - save_pointer(NAME(m_pf_colscroll), 0x2000/2); - save_item(NAME(m_pf_control_0)); - save_item(NAME(m_pf_control_1)); - save_item(NAME(m_gfxcolmask)); - save_item(NAME(m_rambank)); - save_item(NAME(m_flip_screen)); -} - -void deco_bac06_device::device_reset() -{ -} - -void deco_bac06_device::set_flip_screen(bool flip) -{ - if (m_flip_screen != flip) - { - m_flip_screen = flip; - for (int i = 0; i < 3; i++) - { - m_pf8x8_tilemap[i]->set_flip(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - m_pf16x16_tilemap[i]->set_flip(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); - } - } -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_scan) -{ - if ((m_pf_control_0[0]&2)==0) - return (row & 0xf) + ((0x3f - (col & 0x3f)) << 4); - return (col & 0xf) + ((row & 0xf) << 4) + ((col & 0x1f0) << 4); -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_scan) -{ - //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game - // return (row & 0xf) + ((col & 0x1f) << 4) + ((col & 0xf0) << 5); - return (col & 0xf) + ((row & 0x1f) << 4) + ((col & 0xf0) << 5); -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_scan) -{ - //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game - // return (col & 0xf) + ((row & 0x3f) << 4) + ((row & 0x70) << 6); - return (col & 0xf) + ((row & 0x3f) << 4) + ((col & 0x70) << 6); -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape0_8x8_scan) -{ - //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game - // return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x60) << 5); - return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape1_8x8_scan) -{ - //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game - // return (row & 0x1f) + ((col & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) << 6); - return (col & 0x1f) + ((row & 0x1f) << 5) + ((row & 0x20) << 5) + ((col & 0x20) << 6); -} - -TILEMAP_MAPPER_MEMBER(deco_bac06_device::tile_shape2_8x8_scan) -{ - //if (m_pf_control_0[0]&2) // Needs testing on real hardware, not used by any game - // return (row & 0x1f) + ((col & 0x7f) << 5); - return (col & 0x1f) + ((row & 0x7f) << 5); -} - -TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf8x8_tile_info) -{ - if (m_rambank&1) tile_index+=0x1000; - int tile=m_pf_data[tile_index]; - int colourpri=(tile>>12); - int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; - SET_TILE_INFO_MEMBER(m_tile_region_8,tile&0xfff,0,flags); - tileinfo.category = colourpri; -} - -TILE_GET_INFO_MEMBER(deco_bac06_device::get_pf16x16_tile_info) -{ - if (m_rambank&1) tile_index+=0x1000; - int tile=m_pf_data[tile_index]; - int colourpri=(tile>>12); - int flags=(m_pf_control_0[0]&2) ? 0 : TILE_FLIPX; - SET_TILE_INFO_MEMBER(m_tile_region_16,tile&0xfff,0,flags); - tileinfo.category = colourpri; -} - -void deco_bac06_device::create_tilemaps(int region8x8, int region16x16) -{ - m_tile_region_8 = region8x8; - m_tile_region_16 = region16x16; - - m_pf8x8_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_8x8_scan),this), 8, 8,128, 32); - m_pf8x8_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_8x8_scan),this), 8, 8, 64, 64); - m_pf8x8_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf8x8_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_8x8_scan),this), 8, 8, 32,128); - - - if (m_wide==2) - { - m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 256, 16); - m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 128, 32); - m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 64, 64); - } - else if (m_wide==1) - { - m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16, 16, 128, 16); - m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16, 16, 64, 32); - m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this), tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16, 16, 32, 64); - } - else - { - m_pf16x16_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape0_scan),this), 16,16, 64, 16); - m_pf16x16_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape1_scan),this), 16,16, 32, 32); - m_pf16x16_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(deco_bac06_device::get_pf16x16_tile_info),this),tilemap_mapper_delegate(FUNC(deco_bac06_device::tile_shape2_scan),this), 16,16, 16, 64); - } -} - -void deco_bac06_device::custom_tilemap_draw(bitmap_ind16 &bitmap, - const rectangle &cliprect, - tilemap_t *tilemap_ptr, - const uint16_t *rowscroll_ptr, - const uint16_t *colscroll_ptr, - const uint16_t *control0, - const uint16_t *control1, - int flags, - uint16_t penmask, - uint16_t pencondition, - uint16_t colprimask, - uint16_t colpricondition - ) -{ - const bitmap_ind16 &src_bitmap = tilemap_ptr->pixmap(); - const bitmap_ind8 &flags_bitmap = tilemap_ptr->flagsmap(); - int x, y, p, colpri; - int column_offset=0, src_x=0, src_y=0; - uint32_t scrollx = 0; - uint32_t scrolly = 0; - - if (control1) - { - if (control0 && (control0[0]&2)==0) // Use of column major mode inverts scroll direction - scrollx = -control1[0] - 0x100; - else - scrollx = control1[0]; - scrolly = control1[1]; - } - - int width_mask; - int height_mask; - int row_scroll_enabled = 0; - int col_scroll_enabled = 0; - - if (m_supports_rc_scroll) - { - if (control0) - { - row_scroll_enabled = (rowscroll_ptr && (control0[0] & 0x4)); - col_scroll_enabled = (colscroll_ptr && (control0[0] & 0x8)); - } - } - - width_mask = src_bitmap.width() - 1; - height_mask = src_bitmap.height() - 1; - - /* Column scroll & row scroll may per applied per pixel, there are - shift registers for each which control the granularity of the row/col - offset (down to per line level for row, and per 8 lines for column). - - Nb: The row & col selectors are _not_ affected by the shape of the - playfield (ie, 256*1024, 512*512 or 1024*256). So even if the tilemap - width is only 256, 'src_x' should not wrap at 256 in the code below (to - do so would mean the top half of row RAM would never be accessed which - is incorrect). - - Nb2: Real hardware exhibits a strange bug with column scroll on 'mode 2' - (256*1024) - the first column has a strange additional offset, but - curiously the first 'wrap' (at scroll offset 256) does not have this offset, - it is displayed as expected. The bug is confimed to only affect this mode, - the other two modes work as expected. This bug is not emulated, as it - doesn't affect any games. - */ - - if (m_flip_screen) - src_y = (src_bitmap.height() - 256) - scrolly; - else - src_y = scrolly; - - for (y=0; y<=cliprect.bottom(); y++) { - if (row_scroll_enabled) - src_x=scrollx + rowscroll_ptr[(src_y >> (control1[3]&0xf))&(0x1ff>>(control1[3]&0xf))]; - else - src_x=scrollx; - - if (m_flip_screen) - src_x=(src_bitmap.width() - 256) - src_x; - - for (x=0; x<=cliprect.right(); x++) { - if (col_scroll_enabled) - column_offset=colscroll_ptr[((src_x >> 3) >> (control1[2]&0xf))&(0x3f>>(control1[2]&0xf))]; - - p = src_bitmap.pix16((src_y + column_offset)&height_mask, src_x&width_mask); - colpri = flags_bitmap.pix8((src_y + column_offset)&height_mask, src_x&width_mask)&0xf; - - src_x++; - if ((flags&TILEMAP_DRAW_OPAQUE) || (p&m_bppmask)) - { - if ((p&penmask)==pencondition) - if((colpri&colprimask)==colpricondition) - bitmap.pix16(y, x) = p+(colpri&m_gfxcolmask)*m_bppmult; - } - } - src_y++; - } -} - -void deco_bac06_device::deco_bac06_pf_draw(bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,uint16_t penmask, uint16_t pencondition,uint16_t colprimask, uint16_t colpricondition) -{ - tilemap_t* tm = nullptr; - - int tm_dimensions = m_pf_control_0[3] & 0x3; - if (tm_dimensions == 3) tm_dimensions = 1; // 3 is invalid / the same as 1? - - if (m_pf_control_0[0]&0x1) // is 8x8 tiles mode selected? - { - if (m_supports_8x8) - { - tm = m_pf8x8_tilemap[tm_dimensions]; - } - else if (m_supports_16x16) - { - tm = m_pf16x16_tilemap[tm_dimensions]; - } - } - else // 16x16 tiles mode is selected - { - if (m_supports_16x16) - { - tm = m_pf16x16_tilemap[tm_dimensions]; - } - else if (m_supports_8x8) - { - tm = m_pf8x8_tilemap[tm_dimensions]; - } - } - - if (tm) - custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),m_pf_control_0,m_pf_control_1,flags, penmask, pencondition, colprimask, colpricondition); - -} - -// used for pocket gal bootleg, which doesn't set registers properly and simply expects a fixed size tilemap. -void deco_bac06_device::deco_bac06_pf_draw_bootleg(bitmap_ind16 &bitmap,const rectangle &cliprect,int flags, int mode, int type) -{ - tilemap_t* tm = nullptr; - if (!mode) tm = m_pf8x8_tilemap[type]; - else tm = m_pf16x16_tilemap[type]; - - custom_tilemap_draw(bitmap,cliprect,tm,m_pf_rowscroll.get(),m_pf_colscroll.get(),nullptr,nullptr,flags, 0, 0, 0, 0); -} - - - -WRITE16_MEMBER( deco_bac06_device::pf_control_0_w ) -{ - int oldRegister0 = m_pf_control_0[0]; - - offset &= 3; - - COMBINE_DATA(&m_pf_control_0[offset]); - - bool dirtyAll = false; - if (offset==0) - { - if ((oldRegister0&2)!=(m_pf_control_0[offset]&2)) - { - int flip = m_flip_screen; - set_flip_screen(flip^1); - set_flip_screen(flip); // Hack to force tilemap.cpp mappings_update() to be called - dirtyAll = true; - } - } - if (offset==2) - { - int newbank = m_pf_control_0[offset]&1; - if ((newbank&1) != (m_rambank&1)) - { - // I don't know WHY Stadium Hero uses this as a bank but the RAM test expects it.. - // I'm curious as to if anything else sets it tho - if (strcmp(machine().system().name,"stadhero")) - printf("tilemap ram bank change to %d\n", newbank&1); - - dirtyAll = true; - m_rambank = newbank&1; - } - } - - if (dirtyAll) - { - m_pf8x8_tilemap[0]->mark_all_dirty(); - m_pf8x8_tilemap[1]->mark_all_dirty(); - m_pf8x8_tilemap[2]->mark_all_dirty(); - m_pf16x16_tilemap[0]->mark_all_dirty(); - m_pf16x16_tilemap[1]->mark_all_dirty(); - m_pf16x16_tilemap[2]->mark_all_dirty(); - } -} - -READ16_MEMBER( deco_bac06_device::pf_control_1_r ) -{ - offset &= 7; - return m_pf_control_1[offset]; -} - -WRITE16_MEMBER( deco_bac06_device::pf_control_1_w ) -{ - offset &= 7; - COMBINE_DATA(&m_pf_control_1[offset]); -} - -WRITE16_MEMBER( deco_bac06_device::pf_data_w ) -{ - if (m_rambank&1) offset+=0x1000; - - COMBINE_DATA(&m_pf_data[offset]); - m_pf8x8_tilemap[0]->mark_tile_dirty(offset); - m_pf8x8_tilemap[1]->mark_tile_dirty(offset); - m_pf8x8_tilemap[2]->mark_tile_dirty(offset); - m_pf16x16_tilemap[0]->mark_tile_dirty(offset); - m_pf16x16_tilemap[1]->mark_tile_dirty(offset); - m_pf16x16_tilemap[2]->mark_tile_dirty(offset); -} - -READ16_MEMBER( deco_bac06_device::pf_data_r ) -{ - if (m_rambank&1) offset+=0x1000; - - return m_pf_data[offset]; -} - -WRITE8_MEMBER( deco_bac06_device::pf_data_8bit_w ) -{ - if (offset&1) - pf_data_w(space,offset/2,data,0x00ff); - else - pf_data_w(space,offset/2,data<<8,0xff00); -} - -READ8_MEMBER( deco_bac06_device::pf_data_8bit_r ) -{ - if (offset&1) /* MSB */ - return pf_data_r(space,offset/2,0x00ff); - else - return pf_data_r(space,offset/2,0xff00)>>8; -} - -WRITE16_MEMBER( deco_bac06_device::pf_rowscroll_w ) -{ - COMBINE_DATA(&m_pf_rowscroll[offset]); -} - -WRITE16_MEMBER( deco_bac06_device::pf_colscroll_w ) -{ - COMBINE_DATA(&m_pf_colscroll[offset]); -} - -READ16_MEMBER( deco_bac06_device::pf_rowscroll_r ) -{ - return m_pf_rowscroll[offset]; -} - -READ16_MEMBER( deco_bac06_device::pf_colscroll_r ) -{ - return m_pf_colscroll[offset]; -} - -/* used by dec8.c */ -WRITE8_MEMBER( deco_bac06_device::pf_control0_8bit_w ) -{ - if (offset&1) - pf_control_0_w(space,offset/2,data,0x00ff); // oscar (mirrors?) - else - pf_control_0_w(space,offset/2,data,0x00ff); -} - -/* used by dec8.c */ -READ8_MEMBER( deco_bac06_device::pf_control1_8bit_r ) -{ - if (offset&1) - return pf_control_1_r(space,offset/2,0x00ff); - else - return pf_control_1_r(space,offset/2,0xff00)>>8; -} - -/* used by dec8.c */ -WRITE8_MEMBER( deco_bac06_device::pf_control1_8bit_w ) -{ - if (offset<4) // these registers are 16-bit? - { - if (offset&1) - pf_control_1_w(space,offset/2,data,0x00ff); - else - pf_control_1_w(space,offset/2,data<<8,0xff00); - } - else // these registers are 8-bit and mirror? (triothep vs actfancr) - { - if (offset&1) - pf_control_1_w(space,offset/2,data,0x00ff); - else - pf_control_1_w(space,offset/2,data,0x00ff); - } -} - -READ8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_r ) -{ - if (offset&1) - return pf_rowscroll_r(space,offset/2,0x00ff); - else - return pf_rowscroll_r(space,offset/2,0xff00)>>8; -} - - -WRITE8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_w ) -{ - if (offset&1) - pf_rowscroll_w(space,offset/2,data,0x00ff); - else - pf_rowscroll_w(space,offset/2,data<<8,0xff00); -} - -READ8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_swap_r ) -{ - if (offset&1) - return pf_rowscroll_r(space,offset/2,0xff00)>>8; - else - return pf_rowscroll_r(space,offset/2,0x00ff); -} - -WRITE8_MEMBER( deco_bac06_device::pf_rowscroll_8bit_swap_w ) -{ - if (offset&1) - pf_rowscroll_w(space,offset/2,data<<8,0xff00); - else - pf_rowscroll_w(space,offset/2,data,0x00ff); -} - - - -/* used by hippodrm */ -WRITE8_MEMBER( deco_bac06_device::pf_control0_8bit_packed_w ) -{ - if (offset&1) - pf_control_0_w(space,offset/2,data<<8,0xff00); - else - pf_control_0_w(space,offset/2,data,0x00ff); -} - -/* used by hippodrm */ -WRITE8_MEMBER( deco_bac06_device::pf_control1_8bit_swap_w ) -{ - pf_control1_8bit_w(space, offset^1, data); -} - -/* used by hippodrm */ -READ8_MEMBER( deco_bac06_device::pf_data_8bit_swap_r ) -{ - return pf_data_8bit_r(space, offset^1); -} - -/* used by hippodrm */ -WRITE8_MEMBER( deco_bac06_device::pf_data_8bit_swap_w ) -{ - pf_data_8bit_w(space, offset^1, data); -} From 59c5e5cef742609f675f005a03698da2cbf5806b Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 25 Feb 2019 20:27:33 +0100 Subject: [PATCH 30/42] sc1/sc2: small update (nw) --- src/mame/drivers/sc1.cpp | 52 ++++++++++++++++--------- src/mame/drivers/sc2.cpp | 55 +++++++++++++++------------ src/mame/layout/sc1.lay | 82 +++++++++++++++------------------------- src/mame/layout/sc2.lay | 77 ++++++++++++------------------------- 4 files changed, 120 insertions(+), 146 deletions(-) diff --git a/src/mame/drivers/sc1.cpp b/src/mame/drivers/sc1.cpp index 68579ca10c1..045bbd8f4ee 100644 --- a/src/mame/drivers/sc1.cpp +++ b/src/mame/drivers/sc1.cpp @@ -2,19 +2,24 @@ // copyright-holders:Sandro Ronco /*************************************************************************** -Schachcomputer SC 1 +Schachcomputer SC 1 driver -ToDo: -- speaker -- LEDs +VEB Mikroelektronik's 1st chess computer. It was canceled before wide release. + +TODO: +- speaker, it's very noisy if hooked up as it is now, missing enable-bit? + it still toggles matrix d1 if T(tone off) is pressed +- LEDs, they're not on digit d7 - 7seg sometimes flashes +- setting level doesn't work? game should boot with "PS 1" ****************************************************************************/ #include "emu.h" #include "cpu/z80/z80.h" #include "machine/z80pio.h" -#include "sound/spkrdev.h" +#include "sound/dac.h" +#include "sound/volt_reg.h" #include "speaker.h" #include "sc1.lh" @@ -29,9 +34,10 @@ public: driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_pio(*this, "z80pio"), - m_speaker(*this, "speaker"), + m_dac(*this, "dac"), m_keypad(*this, "LINE%u", 1), - m_digits(*this, "digit%u", 0U) + m_digits(*this, "digit%u", 0U), + m_leds(*this, "led%u", 0U) { } void sc1(machine_config &config); @@ -42,24 +48,28 @@ protected: private: required_device m_maincpu; required_device m_pio; - required_device m_speaker; + required_device m_dac; required_ioport_array<8> m_keypad; + output_finder<4> m_digits; + output_finder<2> m_leds; void sc1_io(address_map &map); void sc1_mem(address_map &map); uint8_t m_matrix; - DECLARE_WRITE8_MEMBER( matrix_w ); - DECLARE_WRITE8_MEMBER( pio_port_a_w ); - DECLARE_READ8_MEMBER( pio_port_b_r ); + DECLARE_WRITE8_MEMBER(matrix_w); + DECLARE_WRITE8_MEMBER(pio_port_a_w); + DECLARE_READ8_MEMBER(pio_port_b_r); }; void sc1_state::machine_start() { m_digits.resolve(); + m_leds.resolve(); + m_matrix = 0; save_item(NAME(m_matrix)); } @@ -69,8 +79,9 @@ void sc1_state::machine_start() ***************************************************************************/ -WRITE8_MEMBER( sc1_state::pio_port_a_w ) +WRITE8_MEMBER(sc1_state::pio_port_a_w) { + // digit segment data uint8_t digit = bitswap<8>(data,3,4,6,0,1,2,7,5) & 0x7f; if (m_matrix & 0x04) @@ -90,12 +101,16 @@ WRITE8_MEMBER( sc1_state::pio_port_a_w ) ***************************************************************************/ -WRITE8_MEMBER( sc1_state::matrix_w ) +WRITE8_MEMBER(sc1_state::matrix_w) { + // d1: speaker out + //m_dac->write(BIT(data, 1)); + + // keypad/led mux m_matrix = data; } -READ8_MEMBER( sc1_state::pio_port_b_r ) +READ8_MEMBER(sc1_state::pio_port_b_r) { uint8_t data = 0; @@ -157,7 +172,7 @@ static INPUT_PORTS_START( sc1 ) PORT_START("LINE8") PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) INPUT_PORTS_END @@ -179,8 +194,9 @@ void sc1_state::sc1(machine_config &config) m_pio->in_pb_callback().set(FUNC(sc1_state::pio_port_b_r)); /* sound hardware */ - SPEAKER(config, "mono").front_center(); - SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); + SPEAKER(config, "speaker").front_center(); + DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25); + VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); } @@ -197,4 +213,4 @@ ROM_END /* Driver */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1981, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) +COMP( 1981, sc1, 0, 0, sc1, sc1, sc1_state, empty_init, "VEB Mikroelektronik Erfurt", "Schachcomputer SC 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/drivers/sc2.cpp b/src/mame/drivers/sc2.cpp index 4d265c0a336..10d59c906c4 100644 --- a/src/mame/drivers/sc2.cpp +++ b/src/mame/drivers/sc2.cpp @@ -2,7 +2,22 @@ // copyright-holders:Sandro Ronco /*************************************************************************** - Schachcomputer SC 2 +Schachcomputer SC 2 driver + +VEB Mikroelektronik's 2nd chess computer. The chess program is based on +Fidelity Chess Challenger 10. + +keypad legend: + +R - Rückstellen (reset) +K - Programmstufen (level) +W - Figurenwahl (white/black) +P - Problemeingabe (problem mode) +T - Tonabschaltung (sound on/off) +L - Löschen (clear) +Q - Quittierung (enter) + +Fidelity CC10 synonyms: RE, LV, RV, PB, ♪, CL, EN ****************************************************************************/ @@ -33,9 +48,11 @@ public: void sc2(machine_config &config); + // Rückstellen is also tied to CPU RESET + DECLARE_INPUT_CHANGED_MEMBER(reset_button) { m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE); } + protected: virtual void machine_start() override; - virtual void machine_reset() override; private: required_device m_maincpu; @@ -54,7 +71,6 @@ private: uint8_t m_digit_data; void sc2_update_display(); - DECLARE_READ8_MEMBER(pio_port_a_r); DECLARE_READ8_MEMBER(pio_port_b_r); DECLARE_WRITE8_MEMBER(pio_port_a_w); DECLARE_WRITE8_MEMBER(pio_port_b_w); @@ -67,16 +83,13 @@ void sc2_state::machine_start() m_digits.resolve(); m_leds.resolve(); - save_item(NAME(m_kp_matrix)); - save_item(NAME(m_led_selected)); - save_item(NAME(m_digit_data)); -} - -void sc2_state::machine_reset() -{ m_kp_matrix = 0; m_led_selected = 0; m_digit_data = 0; + + save_item(NAME(m_kp_matrix)); + save_item(NAME(m_led_selected)); + save_item(NAME(m_digit_data)); } @@ -109,14 +122,12 @@ void sc2_state::sc2_io(address_map &map) void sc2_state::sc2_update_display() { - uint8_t digit_data = bitswap<8>(m_digit_data,7,0,1,2,3,4,5,6) & 0x7f; - // latch display data for (int i = 0; i < 4; i++) { if (!BIT(m_led_selected, i)) { - m_digits[i] = digit_data; + m_digits[i] = m_digit_data & 0x7f; // schach/matt leds if (i < 2) @@ -125,14 +136,9 @@ void sc2_state::sc2_update_display() } } -READ8_MEMBER( sc2_state::pio_port_a_r ) -{ - return m_digit_data; -} - READ8_MEMBER( sc2_state::pio_port_b_r ) { - uint8_t data = m_led_selected & 0x0f; + uint8_t data = 0x0f; // read keypad matrix for (int i = 0; i < 4; i++) @@ -144,11 +150,13 @@ READ8_MEMBER( sc2_state::pio_port_b_r ) WRITE8_MEMBER( sc2_state::pio_port_a_w ) { - m_digit_data = data; + // digit segment data + m_digit_data = bitswap<8>(data,7,0,1,2,3,4,5,6); } WRITE8_MEMBER( sc2_state::pio_port_b_w ) { + // d0-d3: keypad mux(active high), led mux(active low) if (data != 0xf1 && data != 0xf2 && data != 0xf4 && data != 0xf8) { m_led_selected = data; @@ -165,8 +173,8 @@ static INPUT_PORTS_START( sc2 ) PORT_START("LINE1") PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("T") PORT_CODE(KEYCODE_T) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) - PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) + PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Q") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_START("LINE2") PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A1") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CODE(KEYCODE_A) @@ -183,7 +191,7 @@ static INPUT_PORTS_START( sc2 ) PORT_START("LINE4") PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("W") PORT_CODE(KEYCODE_W) - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, sc2_state, reset_button, nullptr) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("P") PORT_CODE(KEYCODE_O) INPUT_PORTS_END @@ -202,7 +210,6 @@ void sc2_state::sc2(machine_config &config) /* devices */ Z80PIO(config, m_pio, 9.8304_MHz_XTAL/4); - m_pio->in_pa_callback().set(FUNC(sc2_state::pio_port_a_r)); m_pio->out_pa_callback().set(FUNC(sc2_state::pio_port_a_w)); m_pio->in_pb_callback().set(FUNC(sc2_state::pio_port_b_r)); m_pio->out_pb_callback().set(FUNC(sc2_state::pio_port_b_w)); diff --git a/src/mame/layout/sc1.lay b/src/mame/layout/sc1.lay index e7878d89293..e87ed0fd85d 100644 --- a/src/mame/layout/sc1.lay +++ b/src/mame/layout/sc1.lay @@ -1,62 +1,40 @@ + + + + + - - - + + - - - - - - - - - - - - - - - - - - - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/sc2.lay b/src/mame/layout/sc2.lay index ffb27d79e96..1c3db18b2ba 100644 --- a/src/mame/layout/sc2.lay +++ b/src/mame/layout/sc2.lay @@ -1,62 +1,35 @@ + + + - - - + + - - - - - - - - - - - - - - - - - - - - + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + From e1038d3d497b7cf7fadcf4fb5f58b8ff20f693d1 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 25 Feb 2019 21:05:25 +0100 Subject: [PATCH 31/42] screen.h: added constructor for SVG screens and removed a couple of macros (nw) mame\drivers: remove most MCFG and MACHINE_CONFIG macros from drivers starting with P, Q and R (nw) --- src/mame/drivers/pntnpuzl.cpp | 409 ---------------------------------- 1 file changed, 409 deletions(-) delete mode 100644 src/mame/drivers/pntnpuzl.cpp diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp deleted file mode 100644 index e8272f42498..00000000000 --- a/src/mame/drivers/pntnpuzl.cpp +++ /dev/null @@ -1,409 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:David Haywood -/* paint & puzzle */ -/* video is standard VGA */ -/* -OK, here's a somewhat complete rundown of the PCB. - -Main PCB -Reb B -Label: -Board Num. -90 - -The PCB has no silkscreen or reference designators. All locations -provided here are from the published schematics. - -U1 64 pin IC -MC68000P12 -OB26M8829 - -U2 32 pin IC -27C010A -Label: -Paint N Puzzle -Ver. 1.09 -Odd - -U3 32 pin IC -27C010A -Label: -Paint N Puzzle -Ver. 1.09 -Even - -U4 & U5 28 pin ICs -Mosel -MS62256L-85PC -8911 5D - -U14 28 pin IC -MicroTouch Systems -c 1992 -19-507 Rev 2 -ICS1578N 9334 (ASIC 1578 on schematic) - -U15 48 pin IC -P8798 (8797 on schematic) -L3372718E -Intel -Label: -MicroTouch -5603670 REV 1.0 - -U17 8 pin IC -National 8538A -93C46N --connected to U15 - -U35 18 pin IC -PIC16C54-HS/P -9344 CGA - -U36 5 pin audio amp -LM383T - -U37 8 pin IC -National 8538A -93C46N --connected to U41 - -U41 40 pin IC -8926S -UM6522A - -Y1 -ECS-120 -32-1 -China -connected to U14 -Other side is unreadable (schematic reads 12.000MHz?) - -Y2 -16.000MHz -connected to U35 - -CN1 JAMMA -CN2 ISA? Video card slot -CN3 Touchscreen input (12 pins) -CN4 2 pins, unused - -1 blue potentiometer connected to audio amp - -There is no dedicated sound generator, and sounds are just bleeps -really. The sounds come from a binary-weighted DAC attached to the -PIC's RB outputs: - -R34 7.5K -R33 15.4K -R32 30.9K -R31 61.8K -R30 124K -R29 249K -R28 499K -R27 1M - ------------------------------------------------ -Video card (has proper silk screen and designators) -JAX-8327A - -X1 -40.000MHz - -J1 -open -J2 -closed -J3 -open - -U1/2 unpopulated but have sockets - -U3 20 pin IC -KM44C256BT-8 -22BY -Korea - -U4 20 pin IC -KM44C256BT-8 -22BY -Korea - -U5 160 pin QFP -Trident -TVGA9000i -34'3 Japan - -U6 28 pin IC -Quadtel -TVGA9000i BIOS Software -c 1993 Ver D3.51 LH - -CN1 standard DB15 VGA connector (15KHz) -*/ - -#include "emu.h" -#include "cpu/m68000/m68000.h" -#include "cpu/mcs96/i8x9x.h" -#include "machine/6522via.h" -#include "machine/eepromser.h" -#include "video/pc_vga.h" -#include "screen.h" - - -class pntnpuzl_state : public driver_device -{ -public: - pntnpuzl_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device(mconfig, type, tag), - m_maincpu(*this,"maincpu"), - m_via(*this, "via") - { } - - void pntnpuzl(machine_config &config); - - void init_pip(); - - DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); - -private: - uint16_t m_pntpzl_200000; - uint16_t m_serial; - uint16_t m_serial_out; - uint16_t m_read_count; - int m_touchscr[5]; - - required_device m_maincpu; - DECLARE_WRITE16_MEMBER(pntnpuzl_200000_w); - DECLARE_WRITE16_MEMBER(pntnpuzl_280018_w); - DECLARE_READ16_MEMBER(pntnpuzl_280014_r); - DECLARE_READ16_MEMBER(pntnpuzl_28001a_r); - DECLARE_READ16_MEMBER(irq1_ack_r); - DECLARE_READ16_MEMBER(irq2_ack_r); - DECLARE_READ16_MEMBER(irq4_ack_r); - required_device m_via; - void mcu_map(address_map &map); - void pntnpuzl_map(address_map &map); -}; - - - -/* -reading works this way: -280016 = 00 -28001A = 08 -wait for bit 3 of 28001A to be 1 (after a timeout, fail) -280010 = 3d -280012 = 00 -280016 = 04 -read 280014 (throw away result) -wait for bit 2 of 28001A to be 1 -read data from 280014 - -during startup it expects this series: -write read -01 52 0d 01 50 4e 38 31 0d ---> 80 0c -01 4d 51 0d ---> 80 0c -01 46 54 0d ---> 80 0c -01 46 4e 30 38 0d ---> 80 0c -01 53 45 32 0d ---> 80 0c -01 03 46 31 38 0d ---> 80 0c -*/ - -WRITE16_MEMBER(pntnpuzl_state::pntnpuzl_200000_w) -{ -// logerror("200000: %04x\n",data); - // bit 12: set to 1 when going to serial output to 280018 - if ((m_pntpzl_200000 & 0x1000) && !(data & 0x1000)) - { - m_serial_out = (m_serial>>1) & 0xff; - m_read_count = 0; - logerror("serial out: %02x\n",m_serial_out); - } - - m_pntpzl_200000 = data; -} - -WRITE16_MEMBER(pntnpuzl_state::pntnpuzl_280018_w) -{ -// logerror("%04x: 280018: %04x\n",m_maincpu->pc(),data); - m_serial >>= 1; - if (data & 0x2000) - m_serial |= 0x400; - - m_via->write(0x18/2, data >> 8); -} - -READ16_MEMBER(pntnpuzl_state::pntnpuzl_280014_r) -{ - static const int startup[3] = { 0x80, 0x0c, 0x00 }; - int res; - - (void)m_via->read(0x14/2); - - if (m_serial_out == 0x11) - { - if (ioport("IN0")->read() & 0x10) - { - m_touchscr[0] = 0x1b; - m_touchscr[2] = bitswap<8>(ioport("TOUCHX")->read(),0,1,2,3,4,5,6,7); - m_touchscr[4] = bitswap<8>(ioport("TOUCHY")->read(),0,1,2,3,4,5,6,7); - } - else - m_touchscr[0] = 0; - - if (m_read_count >= 10) m_read_count = 0; - res = m_touchscr[m_read_count/2]; - m_read_count++; - } - else - { - if (m_read_count >= 6) m_read_count = 0; - res = startup[m_read_count/2]; - m_read_count++; - } - logerror("read 280014: %02x\n",res); - return res << 8; -} - -READ16_MEMBER(pntnpuzl_state::pntnpuzl_28001a_r) -{ - return 0x4c00; -} - -READ16_MEMBER(pntnpuzl_state::irq1_ack_r) -{ -// m_maincpu->set_input_line(1, CLEAR_LINE); - return 0; -} - -READ16_MEMBER(pntnpuzl_state::irq2_ack_r) -{ -// m_maincpu->set_input_line(2, CLEAR_LINE); - return 0; -} - -READ16_MEMBER(pntnpuzl_state::irq4_ack_r) -{ -// m_maincpu->set_input_line(4, CLEAR_LINE); - return 0; -} - - -void pntnpuzl_state::pntnpuzl_map(address_map &map) -{ - map(0x000000, 0x07ffff).rom(); - map(0x080000, 0x080001).r(FUNC(pntnpuzl_state::irq1_ack_r)); - map(0x100000, 0x100001).r(FUNC(pntnpuzl_state::irq2_ack_r)); - map(0x180000, 0x180001).r(FUNC(pntnpuzl_state::irq4_ack_r)); - map(0x200000, 0x200001).w(FUNC(pntnpuzl_state::pntnpuzl_200000_w)); - map(0x280000, 0x28001f).rw(m_via, FUNC(via6522_device::read), FUNC(via6522_device::write)).umask16(0xff00); - map(0x280014, 0x280015).r(FUNC(pntnpuzl_state::pntnpuzl_280014_r)); - map(0x280018, 0x280019).w(FUNC(pntnpuzl_state::pntnpuzl_280018_w)); - map(0x28001a, 0x28001b).r(FUNC(pntnpuzl_state::pntnpuzl_28001a_r)); - - /* standard VGA */ - map(0x3a0000, 0x3bffff).rw("vga", FUNC(vga_device::mem_r), FUNC(vga_device::mem_w)); - map(0x3c03b0, 0x3c03bf).rw("vga", FUNC(vga_device::port_03b0_r), FUNC(vga_device::port_03b0_w)); - map(0x3c03c0, 0x3c03cf).rw("vga", FUNC(vga_device::port_03c0_r), FUNC(vga_device::port_03c0_w)); - map(0x3c03d0, 0x3c03df).rw("vga", FUNC(vga_device::port_03d0_r), FUNC(vga_device::port_03d0_w)); - - map(0x400000, 0x407fff).ram(); -} - -void pntnpuzl_state::mcu_map(address_map &map) -{ - map(0x2000, 0x3fff).rom().region("mcu", 0); -} - - -INPUT_CHANGED_MEMBER(pntnpuzl_state::coin_inserted) -{ - /* TODO: change this! */ - if(newval) - m_maincpu->pulse_input_line((uint8_t)(uintptr_t)param, m_maincpu->minimum_quantum_time()); -} - -static INPUT_PORTS_START( pntnpuzl ) - PORT_START("IN0") /* fake inputs */ - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 1) PORT_IMPULSE(1) - PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_HIGH )PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 2) PORT_IMPULSE(1) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 4) PORT_IMPULSE(1) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - - /* game uses a touch screen */ - PORT_START("TOUCHX") - PORT_BIT( 0x7f, 0x40, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) - - PORT_START("TOUCHY") - PORT_BIT( 0x7f, 0x40, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) - - PORT_START("IN1") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) - PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) - - PORT_START("IN2") - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) - PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) - PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) - PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) - PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) - PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) -INPUT_PORTS_END - -MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl) - MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(pntnpuzl_map) - - EEPROM_93C46_16BIT(config, "eeprom"); - - VIA6522(config, m_via, 12_MHz_XTAL / 10); - m_via->readpa_handler().set_ioport("IN2"); - m_via->readpb_handler().set_ioport("IN1"); - m_via->writepb_handler().set("eeprom", FUNC(eeprom_serial_93cxx_device::di_write)).bit(4); - m_via->writepb_handler().append("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)).bit(6); - m_via->writepb_handler().append("eeprom", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(5); - // CB2 used for serial communication with 8798 - - i8x9x_device &mcu(P8098(config, "mcu", 12_MHz_XTAL)); // clock generated by ASIC - mcu.set_addrmap(AS_PROGRAM, &pntnpuzl_state::mcu_map); // FIXME: this is all internal - mcu.ach6_cb().set_constant(0x180); // ? - mcu.ach7_cb().set_constant(0x180); // ? - - /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update) - - MCFG_DEVICE_ADD("vga", VGA, 0) - MCFG_VIDEO_SET_SCREEN("screen") -MACHINE_CONFIG_END - -ROM_START( pntnpuzl ) - ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ - ROM_LOAD16_BYTE( "pntnpuzl.u2", 0x00001, 0x40000, CRC(dfda3f73) SHA1(cca8ccdd501a26cba07365b1238d7b434559bbc6) ) - ROM_LOAD16_BYTE( "pntnpuzl.u3", 0x00000, 0x40000, CRC(4173f250) SHA1(516fe6f91b925f71c36b97532608b82e63bda436) ) - - ROM_REGION( 0x2000, "mcu", 0 ) - ROM_LOAD( "pntnpzl8798.bin", 0x0000, 0x2000, CRC(3ff98e89) SHA1(c48665992cb5377b69902f2a352c9214602a0b84) ) - - ROM_REGION( 0x400, "pic", 0 ) - ROM_LOAD( "16c54.bin", 0x000, 0x400, NO_DUMP ) - - /* for reference, probably not used in any way by the game */ - ROM_REGION( 0x10000, "video_bios", 0 ) - ROM_LOAD( "trident_quadtel_tvga9000_isa16.bin", 0x0000, 0x10000, BAD_DUMP CRC(ad0e7351) SHA1(eb525460a80e1c1baa34642b93d54caf2607920d) ) -ROM_END - - -void pntnpuzl_state::init_pip() -{ -// uint16_t *rom = (uint16_t *)memregion("maincpu")->base(); -// rom[0x2696/2] = 0x4e71; -// rom[0x26a0/2] = 0x4e71; - -} - -GAME( 1993, pntnpuzl, 0, pntnpuzl, pntnpuzl, pntnpuzl_state, init_pip, ROT90, "Century Vending", "Paint 'N Puzzle", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) From 1c65b655603ac374c8cb3ce3bf8716921d89804b Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 25 Feb 2019 21:09:58 +0100 Subject: [PATCH 32/42] Revert "screen.h: added constructor for SVG screens and removed a couple of macros (nw)" This reverts commit e1038d3d497b7cf7fadcf4fb5f58b8ff20f693d1. --- src/mame/drivers/pntnpuzl.cpp | 409 ++++++++++++++++++++++++++++++++++ 1 file changed, 409 insertions(+) create mode 100644 src/mame/drivers/pntnpuzl.cpp diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp new file mode 100644 index 00000000000..e8272f42498 --- /dev/null +++ b/src/mame/drivers/pntnpuzl.cpp @@ -0,0 +1,409 @@ +// license:BSD-3-Clause +// copyright-holders:David Haywood +/* paint & puzzle */ +/* video is standard VGA */ +/* +OK, here's a somewhat complete rundown of the PCB. + +Main PCB +Reb B +Label: +Board Num. +90 + +The PCB has no silkscreen or reference designators. All locations +provided here are from the published schematics. + +U1 64 pin IC +MC68000P12 +OB26M8829 + +U2 32 pin IC +27C010A +Label: +Paint N Puzzle +Ver. 1.09 +Odd + +U3 32 pin IC +27C010A +Label: +Paint N Puzzle +Ver. 1.09 +Even + +U4 & U5 28 pin ICs +Mosel +MS62256L-85PC +8911 5D + +U14 28 pin IC +MicroTouch Systems +c 1992 +19-507 Rev 2 +ICS1578N 9334 (ASIC 1578 on schematic) + +U15 48 pin IC +P8798 (8797 on schematic) +L3372718E +Intel +Label: +MicroTouch +5603670 REV 1.0 + +U17 8 pin IC +National 8538A +93C46N +-connected to U15 + +U35 18 pin IC +PIC16C54-HS/P +9344 CGA + +U36 5 pin audio amp +LM383T + +U37 8 pin IC +National 8538A +93C46N +-connected to U41 + +U41 40 pin IC +8926S +UM6522A + +Y1 +ECS-120 +32-1 +China -connected to U14 +Other side is unreadable (schematic reads 12.000MHz?) + +Y2 +16.000MHz -connected to U35 + +CN1 JAMMA +CN2 ISA? Video card slot +CN3 Touchscreen input (12 pins) +CN4 2 pins, unused + +1 blue potentiometer connected to audio amp + +There is no dedicated sound generator, and sounds are just bleeps +really. The sounds come from a binary-weighted DAC attached to the +PIC's RB outputs: + +R34 7.5K +R33 15.4K +R32 30.9K +R31 61.8K +R30 124K +R29 249K +R28 499K +R27 1M + +----------------------------------------------- +Video card (has proper silk screen and designators) +JAX-8327A + +X1 +40.000MHz + +J1 -open +J2 -closed +J3 -open + +U1/2 unpopulated but have sockets + +U3 20 pin IC +KM44C256BT-8 +22BY +Korea + +U4 20 pin IC +KM44C256BT-8 +22BY +Korea + +U5 160 pin QFP +Trident +TVGA9000i +34'3 Japan + +U6 28 pin IC +Quadtel +TVGA9000i BIOS Software +c 1993 Ver D3.51 LH + +CN1 standard DB15 VGA connector (15KHz) +*/ + +#include "emu.h" +#include "cpu/m68000/m68000.h" +#include "cpu/mcs96/i8x9x.h" +#include "machine/6522via.h" +#include "machine/eepromser.h" +#include "video/pc_vga.h" +#include "screen.h" + + +class pntnpuzl_state : public driver_device +{ +public: + pntnpuzl_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device(mconfig, type, tag), + m_maincpu(*this,"maincpu"), + m_via(*this, "via") + { } + + void pntnpuzl(machine_config &config); + + void init_pip(); + + DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); + +private: + uint16_t m_pntpzl_200000; + uint16_t m_serial; + uint16_t m_serial_out; + uint16_t m_read_count; + int m_touchscr[5]; + + required_device m_maincpu; + DECLARE_WRITE16_MEMBER(pntnpuzl_200000_w); + DECLARE_WRITE16_MEMBER(pntnpuzl_280018_w); + DECLARE_READ16_MEMBER(pntnpuzl_280014_r); + DECLARE_READ16_MEMBER(pntnpuzl_28001a_r); + DECLARE_READ16_MEMBER(irq1_ack_r); + DECLARE_READ16_MEMBER(irq2_ack_r); + DECLARE_READ16_MEMBER(irq4_ack_r); + required_device m_via; + void mcu_map(address_map &map); + void pntnpuzl_map(address_map &map); +}; + + + +/* +reading works this way: +280016 = 00 +28001A = 08 +wait for bit 3 of 28001A to be 1 (after a timeout, fail) +280010 = 3d +280012 = 00 +280016 = 04 +read 280014 (throw away result) +wait for bit 2 of 28001A to be 1 +read data from 280014 + +during startup it expects this series: +write read +01 52 0d 01 50 4e 38 31 0d ---> 80 0c +01 4d 51 0d ---> 80 0c +01 46 54 0d ---> 80 0c +01 46 4e 30 38 0d ---> 80 0c +01 53 45 32 0d ---> 80 0c +01 03 46 31 38 0d ---> 80 0c +*/ + +WRITE16_MEMBER(pntnpuzl_state::pntnpuzl_200000_w) +{ +// logerror("200000: %04x\n",data); + // bit 12: set to 1 when going to serial output to 280018 + if ((m_pntpzl_200000 & 0x1000) && !(data & 0x1000)) + { + m_serial_out = (m_serial>>1) & 0xff; + m_read_count = 0; + logerror("serial out: %02x\n",m_serial_out); + } + + m_pntpzl_200000 = data; +} + +WRITE16_MEMBER(pntnpuzl_state::pntnpuzl_280018_w) +{ +// logerror("%04x: 280018: %04x\n",m_maincpu->pc(),data); + m_serial >>= 1; + if (data & 0x2000) + m_serial |= 0x400; + + m_via->write(0x18/2, data >> 8); +} + +READ16_MEMBER(pntnpuzl_state::pntnpuzl_280014_r) +{ + static const int startup[3] = { 0x80, 0x0c, 0x00 }; + int res; + + (void)m_via->read(0x14/2); + + if (m_serial_out == 0x11) + { + if (ioport("IN0")->read() & 0x10) + { + m_touchscr[0] = 0x1b; + m_touchscr[2] = bitswap<8>(ioport("TOUCHX")->read(),0,1,2,3,4,5,6,7); + m_touchscr[4] = bitswap<8>(ioport("TOUCHY")->read(),0,1,2,3,4,5,6,7); + } + else + m_touchscr[0] = 0; + + if (m_read_count >= 10) m_read_count = 0; + res = m_touchscr[m_read_count/2]; + m_read_count++; + } + else + { + if (m_read_count >= 6) m_read_count = 0; + res = startup[m_read_count/2]; + m_read_count++; + } + logerror("read 280014: %02x\n",res); + return res << 8; +} + +READ16_MEMBER(pntnpuzl_state::pntnpuzl_28001a_r) +{ + return 0x4c00; +} + +READ16_MEMBER(pntnpuzl_state::irq1_ack_r) +{ +// m_maincpu->set_input_line(1, CLEAR_LINE); + return 0; +} + +READ16_MEMBER(pntnpuzl_state::irq2_ack_r) +{ +// m_maincpu->set_input_line(2, CLEAR_LINE); + return 0; +} + +READ16_MEMBER(pntnpuzl_state::irq4_ack_r) +{ +// m_maincpu->set_input_line(4, CLEAR_LINE); + return 0; +} + + +void pntnpuzl_state::pntnpuzl_map(address_map &map) +{ + map(0x000000, 0x07ffff).rom(); + map(0x080000, 0x080001).r(FUNC(pntnpuzl_state::irq1_ack_r)); + map(0x100000, 0x100001).r(FUNC(pntnpuzl_state::irq2_ack_r)); + map(0x180000, 0x180001).r(FUNC(pntnpuzl_state::irq4_ack_r)); + map(0x200000, 0x200001).w(FUNC(pntnpuzl_state::pntnpuzl_200000_w)); + map(0x280000, 0x28001f).rw(m_via, FUNC(via6522_device::read), FUNC(via6522_device::write)).umask16(0xff00); + map(0x280014, 0x280015).r(FUNC(pntnpuzl_state::pntnpuzl_280014_r)); + map(0x280018, 0x280019).w(FUNC(pntnpuzl_state::pntnpuzl_280018_w)); + map(0x28001a, 0x28001b).r(FUNC(pntnpuzl_state::pntnpuzl_28001a_r)); + + /* standard VGA */ + map(0x3a0000, 0x3bffff).rw("vga", FUNC(vga_device::mem_r), FUNC(vga_device::mem_w)); + map(0x3c03b0, 0x3c03bf).rw("vga", FUNC(vga_device::port_03b0_r), FUNC(vga_device::port_03b0_w)); + map(0x3c03c0, 0x3c03cf).rw("vga", FUNC(vga_device::port_03c0_r), FUNC(vga_device::port_03c0_w)); + map(0x3c03d0, 0x3c03df).rw("vga", FUNC(vga_device::port_03d0_r), FUNC(vga_device::port_03d0_w)); + + map(0x400000, 0x407fff).ram(); +} + +void pntnpuzl_state::mcu_map(address_map &map) +{ + map(0x2000, 0x3fff).rom().region("mcu", 0); +} + + +INPUT_CHANGED_MEMBER(pntnpuzl_state::coin_inserted) +{ + /* TODO: change this! */ + if(newval) + m_maincpu->pulse_input_line((uint8_t)(uintptr_t)param, m_maincpu->minimum_quantum_time()); +} + +static INPUT_PORTS_START( pntnpuzl ) + PORT_START("IN0") /* fake inputs */ + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 1) PORT_IMPULSE(1) + PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_HIGH )PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 2) PORT_IMPULSE(1) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, pntnpuzl_state,coin_inserted, 4) PORT_IMPULSE(1) + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + + /* game uses a touch screen */ + PORT_START("TOUCHX") + PORT_BIT( 0x7f, 0x40, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) + + PORT_START("TOUCHY") + PORT_BIT( 0x7f, 0x40, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0,0x7f) PORT_SENSITIVITY(25) PORT_KEYDELTA(13) + + PORT_START("IN1") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read) + PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNUSED ) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("IN2") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) +INPUT_PORTS_END + +MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl) + MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) + MCFG_DEVICE_PROGRAM_MAP(pntnpuzl_map) + + EEPROM_93C46_16BIT(config, "eeprom"); + + VIA6522(config, m_via, 12_MHz_XTAL / 10); + m_via->readpa_handler().set_ioport("IN2"); + m_via->readpb_handler().set_ioport("IN1"); + m_via->writepb_handler().set("eeprom", FUNC(eeprom_serial_93cxx_device::di_write)).bit(4); + m_via->writepb_handler().append("eeprom", FUNC(eeprom_serial_93cxx_device::cs_write)).bit(6); + m_via->writepb_handler().append("eeprom", FUNC(eeprom_serial_93cxx_device::clk_write)).bit(5); + // CB2 used for serial communication with 8798 + + i8x9x_device &mcu(P8098(config, "mcu", 12_MHz_XTAL)); // clock generated by ASIC + mcu.set_addrmap(AS_PROGRAM, &pntnpuzl_state::mcu_map); // FIXME: this is all internal + mcu.ach6_cb().set_constant(0x180); // ? + mcu.ach7_cb().set_constant(0x180); // ? + + /* video hardware */ + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) + MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update) + + MCFG_DEVICE_ADD("vga", VGA, 0) + MCFG_VIDEO_SET_SCREEN("screen") +MACHINE_CONFIG_END + +ROM_START( pntnpuzl ) + ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ + ROM_LOAD16_BYTE( "pntnpuzl.u2", 0x00001, 0x40000, CRC(dfda3f73) SHA1(cca8ccdd501a26cba07365b1238d7b434559bbc6) ) + ROM_LOAD16_BYTE( "pntnpuzl.u3", 0x00000, 0x40000, CRC(4173f250) SHA1(516fe6f91b925f71c36b97532608b82e63bda436) ) + + ROM_REGION( 0x2000, "mcu", 0 ) + ROM_LOAD( "pntnpzl8798.bin", 0x0000, 0x2000, CRC(3ff98e89) SHA1(c48665992cb5377b69902f2a352c9214602a0b84) ) + + ROM_REGION( 0x400, "pic", 0 ) + ROM_LOAD( "16c54.bin", 0x000, 0x400, NO_DUMP ) + + /* for reference, probably not used in any way by the game */ + ROM_REGION( 0x10000, "video_bios", 0 ) + ROM_LOAD( "trident_quadtel_tvga9000_isa16.bin", 0x0000, 0x10000, BAD_DUMP CRC(ad0e7351) SHA1(eb525460a80e1c1baa34642b93d54caf2607920d) ) +ROM_END + + +void pntnpuzl_state::init_pip() +{ +// uint16_t *rom = (uint16_t *)memregion("maincpu")->base(); +// rom[0x2696/2] = 0x4e71; +// rom[0x26a0/2] = 0x4e71; + +} + +GAME( 1993, pntnpuzl, 0, pntnpuzl, pntnpuzl, pntnpuzl_state, init_pip, ROT90, "Century Vending", "Paint 'N Puzzle", MACHINE_NO_SOUND | MACHINE_NOT_WORKING ) From bb815543a63e669ab79f397d2b16c0e7a7c0fdb9 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 25 Feb 2019 21:11:25 +0100 Subject: [PATCH 33/42] (nw) sorry, take 2 screen.h: added constructor for SVG screens and removed a couple of macros (nw) mame\drivers: remove most MCFG and MACHINE_CONFIG macros from drivers starting with P, Q and R (nw) --- src/emu/screen.h | 13 +- src/mame/drivers/hh_melps4.cpp | 34 ++--- src/mame/drivers/p112.cpp | 27 ++-- src/mame/drivers/p2000t.cpp | 55 +++---- src/mame/drivers/p8k.cpp | 26 ++-- src/mame/drivers/palestra.cpp | 4 +- src/mame/drivers/palmz22.cpp | 24 +-- src/mame/drivers/pangofun.cpp | 18 +-- src/mame/drivers/panicr.cpp | 28 ++-- src/mame/drivers/paradise.cpp | 62 ++++---- src/mame/drivers/paranoia.cpp | 25 +-- src/mame/drivers/pasha2.cpp | 36 +++-- src/mame/drivers/paso1600.cpp | 30 ++-- src/mame/drivers/pasopia.cpp | 19 +-- src/mame/drivers/pasopia7.cpp | 44 +++--- src/mame/drivers/pass.cpp | 40 +++-- src/mame/drivers/pastelg.cpp | 56 +++---- src/mame/drivers/patapata.cpp | 31 ++-- src/mame/drivers/pbaction.cpp | 22 +-- src/mame/drivers/pc.cpp | 170 ++++++++++----------- src/mame/drivers/pc100.cpp | 13 +- src/mame/drivers/pc1512.cpp | 90 +++++------ src/mame/drivers/pc2000.cpp | 2 +- src/mame/drivers/pc4.cpp | 23 +-- src/mame/drivers/pc6001.cpp | 79 +++++----- src/mame/drivers/pc8001.cpp | 48 +++--- src/mame/drivers/pc8401a.cpp | 22 +-- src/mame/drivers/pc8801.cpp | 47 +++--- src/mame/drivers/pc88va.cpp | 46 +++--- src/mame/drivers/pcat_nit.cpp | 26 ++-- src/mame/drivers/pce220.cpp | 75 ++++----- src/mame/drivers/pcfx.cpp | 17 ++- src/mame/drivers/pcktgal.cpp | 2 +- src/mame/drivers/pcm.cpp | 19 +-- src/mame/drivers/pcw16.cpp | 25 +-- src/mame/drivers/pcxt.cpp | 33 ++-- src/mame/drivers/pdp11.cpp | 10 +- src/mame/drivers/pegasus.cpp | 26 ++-- src/mame/drivers/pentagon.cpp | 21 ++- src/mame/drivers/perq.cpp | 5 +- src/mame/drivers/peyper.cpp | 13 +- src/mame/drivers/pg685.cpp | 59 ++++---- src/mame/drivers/pgm.cpp | 2 +- src/mame/drivers/pgm3.cpp | 30 ++-- src/mame/drivers/photon.cpp | 30 ++-- src/mame/drivers/photon2.cpp | 27 ++-- src/mame/drivers/pinball2k.cpp | 20 +-- src/mame/drivers/pingpong.cpp | 35 +++-- src/mame/drivers/pinkiri8.cpp | 35 +++-- src/mame/drivers/pirates.cpp | 28 ++-- src/mame/drivers/piratesh.cpp | 2 +- src/mame/drivers/pitagjr.cpp | 23 +-- src/mame/drivers/pk8000.cpp | 29 ++-- src/mame/drivers/pk8020.cpp | 29 ++-- src/mame/drivers/pktgaldx.cpp | 80 +++++----- src/mame/drivers/playmark.cpp | 224 +++++++++++++-------------- src/mame/drivers/plus4.cpp | 12 +- src/mame/drivers/pmi80.cpp | 11 +- src/mame/drivers/pockchal.cpp | 22 ++- src/mame/drivers/pockstat.cpp | 16 +- src/mame/drivers/pofo.cpp | 30 ++-- src/mame/drivers/poisk1.cpp | 22 +-- src/mame/drivers/pokechmp.cpp | 20 ++- src/mame/drivers/poker72.cpp | 25 +-- src/mame/drivers/poly.cpp | 24 +-- src/mame/drivers/poly88.cpp | 34 ++--- src/mame/drivers/polyplay.cpp | 17 ++- src/mame/drivers/poolshrk.cpp | 27 ++-- src/mame/drivers/pooyan.cpp | 24 +-- src/mame/drivers/popobear.cpp | 34 ++--- src/mame/drivers/popper.cpp | 21 +-- src/mame/drivers/portrait.cpp | 29 ++-- src/mame/drivers/potgoldu.cpp | 12 +- src/mame/drivers/powerbal.cpp | 80 +++++----- src/mame/drivers/powerstack.cpp | 9 +- src/mame/drivers/pp01.cpp | 27 ++-- src/mame/drivers/ppmast93.cpp | 38 ++--- src/mame/drivers/prestige.cpp | 51 ++++--- src/mame/drivers/primo.cpp | 70 ++++----- src/mame/drivers/prof180x.cpp | 23 +-- src/mame/drivers/prof80.cpp | 2 +- src/mame/drivers/progolf.cpp | 38 ++--- src/mame/drivers/proteus.cpp | 15 +- src/mame/drivers/proteus3.cpp | 23 +-- src/mame/drivers/pse.cpp | 10 +- src/mame/drivers/psion.cpp | 84 +++++------ src/mame/drivers/pturn.cpp | 31 ++-- src/mame/drivers/puckpkmn.cpp | 32 ++-- src/mame/drivers/punchout.cpp | 58 ++++--- src/mame/drivers/pv1000.cpp | 12 +- src/mame/drivers/pv2000.cpp | 10 +- src/mame/drivers/pv9234.cpp | 24 +-- src/mame/drivers/pwrview.cpp | 19 +-- src/mame/drivers/px4.cpp | 37 ++--- src/mame/drivers/px8.cpp | 43 +++--- src/mame/drivers/pzletime.cpp | 26 ++-- src/mame/drivers/ql.cpp | 42 +++--- src/mame/drivers/quakeat.cpp | 30 ++-- src/mame/drivers/queen.cpp | 8 +- src/mame/drivers/quizdna.cpp | 53 +++---- src/mame/drivers/quizo.cpp | 28 ++-- src/mame/drivers/quizpani.cpp | 31 ++-- src/mame/drivers/qvt70.cpp | 9 +- src/mame/drivers/qx10.cpp | 8 +- src/mame/drivers/r2dtank.cpp | 20 +-- src/mame/drivers/rad_eu3a05.cpp | 28 ++-- src/mame/drivers/rad_eu3a14.cpp | 42 +++--- src/mame/drivers/radio86.cpp | 59 ++++---- src/mame/drivers/rainbow.cpp | 56 ++++--- src/mame/drivers/rampart.cpp | 28 ++-- src/mame/drivers/ramtek.cpp | 10 +- src/mame/drivers/rbisland.cpp | 75 +++++---- src/mame/drivers/rbmk.cpp | 42 +++--- src/mame/drivers/rc702.cpp | 15 +- src/mame/drivers/rcorsair.cpp | 34 ++--- src/mame/drivers/rd110.cpp | 19 +-- src/mame/drivers/realbrk.cpp | 64 ++++---- src/mame/drivers/redalert.cpp | 48 +++--- src/mame/drivers/relief.cpp | 29 ++-- src/mame/drivers/retofinv.cpp | 69 +++++---- src/mame/drivers/rex6000.cpp | 46 +++--- src/mame/drivers/rgum.cpp | 25 +-- src/mame/drivers/riscpc.cpp | 123 +++++++-------- src/mame/drivers/rltennis.cpp | 26 ++-- src/mame/drivers/rm380z.cpp | 52 ++++--- src/mame/drivers/rmnimbus.cpp | 2 +- src/mame/drivers/rmt32.cpp | 23 +-- src/mame/drivers/rockrage.cpp | 38 ++--- src/mame/drivers/rocnrope.cpp | 26 ++-- src/mame/drivers/rohga.cpp | 176 +++++++++++----------- src/mame/drivers/rollext.cpp | 31 ++-- src/mame/drivers/rollrace.cpp | 40 ++--- src/mame/drivers/ron.cpp | 22 +-- src/mame/drivers/roul.cpp | 33 ++-- src/mame/drivers/royalmah.cpp | 259 ++++++++++++++++---------------- src/mame/drivers/rpunch.cpp | 63 ++++---- src/mame/drivers/rt1715.cpp | 22 +-- src/mame/drivers/rx78.cpp | 30 ++-- src/mame/drivers/rzone.cpp | 51 +++---- 139 files changed, 2571 insertions(+), 2565 deletions(-) diff --git a/src/emu/screen.h b/src/emu/screen.h index edf9629c21a..a68893b8ba2 100644 --- a/src/emu/screen.h +++ b/src/emu/screen.h @@ -183,6 +183,12 @@ public: set_type(type); set_color(color); } + screen_device(const machine_config &mconfig, const char *tag, device_t *owner, const char *region) + : screen_device(mconfig, tag, owner, u32(0)) + { + set_type(SCREEN_TYPE_SVG); + set_svg_region(region); + } ~screen_device(); // configuration readers @@ -532,11 +538,6 @@ typedef device_type_iterator screen_device_iterator; #define MCFG_SCREEN_TYPE(_type) \ downcast(*device).set_type(SCREEN_TYPE_##_type); -#define MCFG_SCREEN_SVG_ADD(_tag, _region) \ - MCFG_DEVICE_ADD(_tag, SCREEN, 0) \ - MCFG_SCREEN_TYPE(SVG) \ - downcast(*device).set_svg_region(_region); - #define MCFG_SCREEN_RAW_PARAMS(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart) \ downcast(*device).set_raw(_pixclock, _htotal, _hbend, _hbstart, _vtotal, _vbend, _vbstart); @@ -551,8 +552,6 @@ typedef device_type_iterator screen_device_iterator; #define MCFG_SCREEN_VISIBLE_AREA(_minx, _maxx, _miny, _maxy) \ downcast(*device).set_visarea(_minx, _maxx, _miny, _maxy); -#define MCFG_SCREEN_DEFAULT_POSITION(_xscale, _xoffs, _yscale, _yoffs) \ - downcast(*device).set_default_position(_xscale, _xoffs, _yscale, _yoffs); #define MCFG_SCREEN_UPDATE_DRIVER(_class, _method) \ downcast(*device).set_screen_update(&_class::_method, #_class "::" #_method); #define MCFG_SCREEN_UPDATE_DEVICE(_device, _class, _method) \ diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp index 6f6f49451ce..044c7c2646b 100644 --- a/src/mame/drivers/hh_melps4.cpp +++ b/src/mame/drivers/hh_melps4.cpp @@ -294,8 +294,8 @@ static INPUT_PORTS_START( cfrogger ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -MACHINE_CONFIG_START(cfrogger_state::cfrogger) - +void cfrogger_state::cfrogger(machine_config &config) +{ /* basic machine hardware */ M58846(config, m_maincpu, 600_kHz_XTAL); m_maincpu->read_k().set(FUNC(cfrogger_state::input_r)); @@ -306,17 +306,16 @@ MACHINE_CONFIG_START(cfrogger_state::cfrogger) m_maincpu->write_t().set(FUNC(cfrogger_state::speaker_w)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(500, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 500-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(500, 1080); + screen.set_visarea(0, 500-1, 0, 1080-1); TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} @@ -409,8 +408,8 @@ static INPUT_PORTS_START( gjungler ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, nullptr) INPUT_PORTS_END -MACHINE_CONFIG_START(gjungler_state::gjungler) - +void gjungler_state::gjungler(machine_config &config) +{ /* basic machine hardware */ M58846(config, m_maincpu, 600_kHz_XTAL); m_maincpu->read_k().set(FUNC(gjungler_state::input_r)); @@ -422,17 +421,16 @@ MACHINE_CONFIG_START(gjungler_state::gjungler) m_maincpu->write_t().set(FUNC(gjungler_state::speaker_w)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(481, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 481-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(481, 1080); + screen.set_visarea(0, 481-1, 0, 1080-1); TIMER(config, "display_decay").configure_periodic(FUNC(hh_melps4_state::display_decay_tick), attotime::from_msec(1)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} diff --git a/src/mame/drivers/p112.cpp b/src/mame/drivers/p112.cpp index 178c57f5d9d..7b4c6cb4ad3 100644 --- a/src/mame/drivers/p112.cpp +++ b/src/mame/drivers/p112.cpp @@ -90,25 +90,24 @@ uint32_t p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bit return 0; } -MACHINE_CONFIG_START(p112_state::p112) +void p112_state::p112(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z180, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(p112_mem) - MCFG_DEVICE_IO_MAP(p112_io) - + Z180(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &p112_state::p112_mem); + m_maincpu->set_addrmap(AS_IO, &p112_state::p112_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(240, 320) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1) - MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(240, 320); + screen.set_visarea(0, 240-1, 0, 320-1); + screen.set_screen_update(FUNC(p112_state::screen_update_p112)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); - -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( p112 ) diff --git a/src/mame/drivers/p2000t.cpp b/src/mame/drivers/p2000t.cpp index a226b2b8a14..1f5a0fccc51 100644 --- a/src/mame/drivers/p2000t.cpp +++ b/src/mame/drivers/p2000t.cpp @@ -221,20 +221,21 @@ READ8_MEMBER( p2000t_state::videoram_r ) } /* Machine definition */ -MACHINE_CONFIG_START(p2000t_state::p2000t) +void p2000t_state::p2000t(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2500000) - MCFG_DEVICE_PROGRAM_MAP(p2000t_mem) - MCFG_DEVICE_IO_MAP(p2000t_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000t_state, p2000_interrupt) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &p2000t_state::p2000t_mem); + m_maincpu->set_addrmap(AS_IO, &p2000t_state::p2000t_io); + m_maincpu->set_vblank_int("screen", FUNC(p2000t_state::p2000_interrupt)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(40 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(40 * 12, 24 * 20); + screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update("saa5050", FUNC(saa5050_device::screen_update)); saa5050_device &saa5050(SAA5050(config, "saa5050", 6000000)); saa5050.d_cb().set(FUNC(p2000t_state::videoram_r)); @@ -242,28 +243,28 @@ MACHINE_CONFIG_START(p2000t_state::p2000t) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} /* Machine definition */ -MACHINE_CONFIG_START(p2000m_state::p2000m) +void p2000m_state::p2000m(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2500000) - MCFG_DEVICE_PROGRAM_MAP(p2000m_mem) - MCFG_DEVICE_IO_MAP(p2000t_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", p2000m_state, p2000_interrupt) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &p2000m_state::p2000m_mem); + m_maincpu->set_addrmap(AS_IO, &p2000m_state::p2000t_io); + m_maincpu->set_vblank_int("screen", FUNC(p2000m_state::p2000_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(80 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DRIVER(p2000m_state, screen_update_p2000m) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(80 * 12, 24 * 20); + screen.set_visarea(0, 80 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update(FUNC(p2000m_state::screen_update_p2000m)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_p2000m); PALETTE(config, m_palette, FUNC(p2000m_state::p2000m_palette), 4); @@ -271,7 +272,7 @@ MACHINE_CONFIG_START(p2000m_state::p2000m) /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} ROM_START(p2000t) diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp index ca0f224b832..79efb9f0aae 100644 --- a/src/mame/drivers/p8k.cpp +++ b/src/mame/drivers/p8k.cpp @@ -416,7 +416,8 @@ GFXDECODE_END ****************************************************************************/ -MACHINE_CONFIG_START(p8k_state::p8k) +void p8k_state::p8k(machine_config &config) +{ /* basic machine hardware */ z80_device& maincpu(Z80(config, "maincpu", 16_MHz_XTAL / 4)); maincpu.set_daisy_config(p8k_daisy_chain); @@ -481,17 +482,17 @@ MACHINE_CONFIG_START(p8k_state::p8k) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 3250) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5); +} -MACHINE_CONFIG_START(p8k_state::p8k_16) +void p8k_state::p8k_16(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z8001, XTAL(4'000'000) ) - MCFG_DEVICE_PROGRAM_MAP(p8k_16_memmap) - MCFG_DEVICE_DATA_MAP(p8k_16_datamap) - MCFG_DEVICE_IO_MAP(p8k_16_iomap) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("p8k_16_daisy", p8k_16_daisy_device, irq_callback) + Z8001(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &p8k_state::p8k_16_memmap); + m_maincpu->set_addrmap(AS_DATA, &p8k_state::p8k_16_datamap); + m_maincpu->set_addrmap(AS_IO, &p8k_state::p8k_16_iomap); + m_maincpu->set_irq_acknowledge_callback("p8k_16_daisy", FUNC(p8k_16_daisy_device::irq_callback)); P8K_16_DAISY(config, m_daisy, 0); m_daisy->set_daisy_config(p8k_16_daisy_chain); @@ -531,9 +532,8 @@ MACHINE_CONFIG_START(p8k_state::p8k_16) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 3250) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + BEEP(config, "beeper", 3250).add_route(ALL_OUTPUTS, "mono", 0.5); +} /* ROM definition */ ROM_START( p8000 ) diff --git a/src/mame/drivers/palestra.cpp b/src/mame/drivers/palestra.cpp index cac0d842f5f..a4c188675fd 100644 --- a/src/mame/drivers/palestra.cpp +++ b/src/mame/drivers/palestra.cpp @@ -72,8 +72,8 @@ INPUT_PORTS_END MACHINE_CONFIG_START(palestra_state::palestra) - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(palestra) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_palestra); MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_composite_monochrome, "fixfreq") diff --git a/src/mame/drivers/palmz22.cpp b/src/mame/drivers/palmz22.cpp index a0548582971..9afea7cc2c3 100644 --- a/src/mame/drivers/palmz22.cpp +++ b/src/mame/drivers/palmz22.cpp @@ -288,19 +288,19 @@ void palmz22_state::init_palmz22() { } -MACHINE_CONFIG_START(palmz22_state::palmz22) - MCFG_DEVICE_ADD(m_maincpu, ARM920T, 266000000) - MCFG_DEVICE_PROGRAM_MAP(map) +void palmz22_state::palmz22(machine_config &config) +{ + ARM920T(config, m_maincpu, 266000000); + m_maincpu->set_addrmap(AS_PROGRAM, &palmz22_state::map); - MCFG_PALETTE_ADD("palette", 32768) + PALETTE(config, "palette").set_entries(32768); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(160, 160) - MCFG_SCREEN_VISIBLE_AREA(0, 160 - 1, 0, 160 - 1) - - MCFG_SCREEN_UPDATE_DEVICE("s3c2410", s3c2410_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(160, 160); + screen.set_visarea(0, 160 - 1, 0, 160 - 1); + screen.set_screen_update("s3c2410", FUNC(s3c2410_device::screen_update)); S3C2410(config, m_s3c2410, 12000000); m_s3c2410->set_palette_tag("palette"); @@ -317,7 +317,7 @@ MACHINE_CONFIG_START(palmz22_state::palmz22) NAND(config, m_nand, 0); m_nand->set_nand_type(nand_device::chip::K9F5608U0D_J); m_nand->rnb_wr_callback().set(m_s3c2410, FUNC(s3c2410_device::frnb_w)); -MACHINE_CONFIG_END +} static INPUT_PORTS_START( palmz22 ) PORT_START( "PENB" ) diff --git a/src/mame/drivers/pangofun.cpp b/src/mame/drivers/pangofun.cpp index fb0478d8aa8..cf2895b11bd 100644 --- a/src/mame/drivers/pangofun.cpp +++ b/src/mame/drivers/pangofun.cpp @@ -179,21 +179,21 @@ void pangofun_state::machine_start() { } -MACHINE_CONFIG_START(pangofun_state::pangofun) +void pangofun_state::pangofun(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I486, 25000000 ) /* I486 ?? Mhz (25 according to POST) */ - MCFG_DEVICE_PROGRAM_MAP(pcat_map) - MCFG_DEVICE_IO_MAP(pcat_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I486(config, m_maincpu, 25000000); /* I486 ?? Mhz (25 according to POST) */ + m_maincpu->set_addrmap(AS_PROGRAM, &pangofun_state::pcat_map); + m_maincpu->set_addrmap(AS_IO, &pangofun_state::pcat_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_vga(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + subdevice("screen")->set_refresh_hz(60); + subdevice("screen")->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ pcat_common(config); -MACHINE_CONFIG_END +} ROM_START(pangofun) diff --git a/src/mame/drivers/panicr.cpp b/src/mame/drivers/panicr.cpp index b80c1171430..b22d278d528 100644 --- a/src/mame/drivers/panicr.cpp +++ b/src/mame/drivers/panicr.cpp @@ -602,22 +602,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(panicr_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xc8/4); } -MACHINE_CONFIG_START(panicr_state::panicr) - MCFG_DEVICE_ADD("maincpu", V20,MASTER_CLOCK/2) /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ - MCFG_DEVICE_PROGRAM_MAP(panicr_map) +void panicr_state::panicr(machine_config &config) +{ + V20(config, m_maincpu, MASTER_CLOCK/2); /* Sony 8623h9 CXQ70116D-8 (V20 compatible) */ + m_maincpu->set_addrmap(AS_PROGRAM, &panicr_state::panicr_map); TIMER(config, "scantimer").configure_scanline(FUNC(panicr_state::scanline), "screen", 0, 1); - MCFG_DEVICE_ADD("t5182", T5182, 0) + T5182(config, m_t5182, 0); - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(32*8, 32*8) -// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(32*8, 32*8); +// m_screen->set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + m_screen->set_screen_update(FUNC(panicr_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_panicr); PALETTE(config, m_palette, FUNC(panicr_state::panicr_palette), 256 * 4, 256); @@ -629,7 +629,7 @@ MACHINE_CONFIG_START(panicr_state::panicr) ymsnd.irq_handler().set(m_t5182, FUNC(t5182_device::ym2151_irq_handler)); ymsnd.add_route(0, "mono", 1.0); ymsnd.add_route(1, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( panicr ) diff --git a/src/mame/drivers/paradise.cpp b/src/mame/drivers/paradise.cpp index bf93a4dd828..4c73aef6164 100644 --- a/src/mame/drivers/paradise.cpp +++ b/src/mame/drivers/paradise.cpp @@ -731,23 +731,23 @@ INTERRUPT_GEN_MEMBER(paradise_state::irq) m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE); } -MACHINE_CONFIG_START(paradise_state::paradise) - +void paradise_state::paradise(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) /* Z8400B - 6mhz Verified */ - MCFG_DEVICE_PROGRAM_MAP(paradise_map) - MCFG_DEVICE_IO_MAP(paradise_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(paradise_state, irq, 4*54) /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */ + Z80(config, m_maincpu, XTAL(12'000'000)/2); /* Z8400B - 6mhz Verified */ + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::paradise_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::paradise_io_map); + m_maincpu->set_periodic_int(FUNC(paradise_state::irq), attotime::from_hz(4*54)); /* No nmi routine, timing is confirmed (i.e. three timing irqs for each vblank irq */ /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(54) /* 54 verified */ - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16) - MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(54); /* 54 verified */ + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 0+16, 256-1-16); + m_screen->set_screen_update(FUNC(paradise_state::screen_update_paradise)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_paradise); PALETTE(config, m_palette).set_entries(0x800 + 16); @@ -756,34 +756,32 @@ MACHINE_CONFIG_START(paradise_state::paradise) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + OKIM6295(config, "oki1", XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */ - MCFG_DEVICE_ADD("oki2", OKIM6295, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, XTAL(12'000'000)/12, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.50); /* verified on pcb */ +} -MACHINE_CONFIG_START(paradise_state::tgtball) +void paradise_state::tgtball(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(tgtball_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::tgtball_map); +} -MACHINE_CONFIG_START(paradise_state::torus) +void paradise_state::torus(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(torus_map) - MCFG_DEVICE_IO_MAP(torus_io_map) + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::torus_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::torus_io_map); m_gfxdecode->set_info(gfx_torus); m_screen->set_screen_update(FUNC(paradise_state::screen_update_torus)); config.device_remove("oki2"); -MACHINE_CONFIG_END +} void paradise_state::madball(machine_config &config) { @@ -794,14 +792,14 @@ void paradise_state::madball(machine_config &config) m_screen->set_screen_update(FUNC(paradise_state::screen_update_madball)); } -MACHINE_CONFIG_START(paradise_state::penky) +void paradise_state::penky(machine_config &config) +{ paradise(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(torus_map) - MCFG_DEVICE_IO_MAP(torus_io_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, ¶dise_state::torus_map); + m_maincpu->set_addrmap(AS_IO, ¶dise_state::torus_io_map); +} void paradise_state::penkyi(machine_config &config) diff --git a/src/mame/drivers/paranoia.cpp b/src/mame/drivers/paranoia.cpp index 5c215799342..affe48db73e 100644 --- a/src/mame/drivers/paranoia.cpp +++ b/src/mame/drivers/paranoia.cpp @@ -165,7 +165,8 @@ WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out) //logerror("Timer out %d\n", state); } -MACHINE_CONFIG_START(paranoia_state::paranoia) +void paranoia_state::paranoia(machine_config &config) +{ /* basic machine hardware */ H6280(config, m_maincpu, PCE_MAIN_CLOCK/3); m_maincpu->set_addrmap(AS_PROGRAM, ¶noia_state::pce_mem); @@ -177,13 +178,13 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) config.m_minimum_quantum = attotime::from_hz(60); - MCFG_DEVICE_ADD("sub", I8085A, 18000000/3) - MCFG_DEVICE_PROGRAM_MAP(paranoia_8085_map) - MCFG_DEVICE_IO_MAP(paranoia_8085_io_map) + i8085a_cpu_device &sub(I8085A(config, "sub", 18000000/3)); + sub.set_addrmap(AS_PROGRAM, ¶noia_state::paranoia_8085_map); + sub.set_addrmap(AS_IO, ¶noia_state::paranoia_8085_io_map); - MCFG_DEVICE_ADD("sub2", Z80, 18000000/6) - MCFG_DEVICE_PROGRAM_MAP(paranoia_z80_map) - MCFG_DEVICE_IO_MAP(paranoia_z80_io_map) + z80_device &sub2(Z80(config, "sub2", 18000000/6)); + sub2.set_addrmap(AS_PROGRAM, ¶noia_state::paranoia_z80_map); + sub2.set_addrmap(AS_IO, ¶noia_state::paranoia_z80_io_map); i8155_device &i8155(I8155(config, "i8155", 1000000 /*?*/)); i8155.out_pa_callback().set(FUNC(paranoia_state::i8155_a_w)); @@ -192,10 +193,10 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) i8155.out_to_callback().set(FUNC(paranoia_state::i8155_timer_out)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242) - MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update ) - MCFG_SCREEN_PALETTE("huc6260") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PCE_MAIN_CLOCK, huc6260_device::WPF, 64, 64 + 1024 + 64, huc6260_device::LPF, 18, 18 + 242); + screen.set_screen_update(FUNC(pce_common_state::screen_update)); + screen.set_palette(m_huc6260); HUC6260(config, m_huc6260, PCE_MAIN_CLOCK); m_huc6260->next_pixel_data().set("huc6270", FUNC(huc6270_device::next_pixel)); @@ -209,7 +210,7 @@ MACHINE_CONFIG_START(paranoia_state::paranoia) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +} ROM_START(paranoia) ROM_REGION( 0x40000, "maincpu", 0 ) diff --git a/src/mame/drivers/pasha2.cpp b/src/mame/drivers/pasha2.cpp index 9acbc634bb2..5885b1c6aba 100644 --- a/src/mame/drivers/pasha2.cpp +++ b/src/mame/drivers/pasha2.cpp @@ -398,41 +398,39 @@ void pasha2_state::machine_reset() m_vbuffer = 0; } -MACHINE_CONFIG_START(pasha2_state::pasha2) - +void pasha2_state::pasha2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", E116XT, 20000000*4) /* 4x internal multiplier */ - MCFG_DEVICE_PROGRAM_MAP(pasha2_map) - MCFG_DEVICE_IO_MAP(pasha2_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pasha2_state, irq0_line_hold) + E116XT(config, m_maincpu, 20000000*4); /* 4x internal multiplier */ + m_maincpu->set_addrmap(AS_PROGRAM, &pasha2_state::pasha2_map); + m_maincpu->set_addrmap(AS_IO, &pasha2_state::pasha2_io); + m_maincpu->set_vblank_int("screen", FUNC(pasha2_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", AT89C52, 12000000) /* clock from docs */ + AT89C52(config, m_audiocpu, 12000000); /* clock from docs */ /* TODO : ports are unimplemented; P0,P1,P2,P3 and Serial Port Used */ EEPROM_93C46_16BIT(config, "eeprom"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 512) - MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(512, 512); + screen.set_visarea(0, 383, 0, 239); + screen.set_screen_update(FUNC(pasha2_state::screen_update_pasha2)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_entries(0x200); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, m_oki[0], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, m_oki[1], 1000000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); //and ATMEL DREAM SAM9773 -MACHINE_CONFIG_END +} ROM_START( pasha2 ) ROM_REGION16_BE( 0x80000, "maincpu", 0 ) /* Hyperstone CPU Code */ diff --git a/src/mame/drivers/paso1600.cpp b/src/mame/drivers/paso1600.cpp index 010e921acaa..e01e46d17c4 100644 --- a/src/mame/drivers/paso1600.cpp +++ b/src/mame/drivers/paso1600.cpp @@ -304,25 +304,25 @@ WRITE8_MEMBER(paso1600_state::pc_dma_write_byte) space.write_byte(offset, data); } -MACHINE_CONFIG_START(paso1600_state::paso1600) +void paso1600_state::paso1600(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, 16000000/2) - MCFG_DEVICE_PROGRAM_MAP(paso1600_map) - MCFG_DEVICE_IO_MAP(paso1600_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) + I8086(config, m_maincpu, 16000000/2); + m_maincpu->set_addrmap(AS_PROGRAM, &paso1600_state::paso1600_map); + m_maincpu->set_addrmap(AS_IO, &paso1600_state::paso1600_io); + m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(paso1600_state::screen_update_paso1600)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_paso1600); - MCFG_PALETTE_ADD("palette", 8) -// MCFG_PALETTE_INIT(black_and_white) + PALETTE(config, m_palette).set_entries(8); /* Devices */ h46505_device &crtc(H46505(config, "crtc", 16000000/4)); /* unknown clock, hand tuned to get ~60 fps */ @@ -336,7 +336,7 @@ MACHINE_CONFIG_START(paso1600_state::paso1600) AM9517A(config, m_dma, 16000000/4); m_dma->in_memr_callback().set(FUNC(paso1600_state::pc_dma_read_byte)); m_dma->out_memw_callback().set(FUNC(paso1600_state::pc_dma_write_byte)); -MACHINE_CONFIG_END +} ROM_START( paso1600 ) ROM_REGION16_LE(0x2000,"ipl", 0) diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp index 48d53cb5fd3..3ce53dbc8a5 100644 --- a/src/mame/drivers/pasopia.cpp +++ b/src/mame/drivers/pasopia.cpp @@ -286,7 +286,8 @@ We preset all banks here, so that bankswitching will incur no speed penalty. m_pio_timer->adjust(attotime::from_hz(50), 0, attotime::from_hz(50)); } -MACHINE_CONFIG_START(pasopia_state::pasopia) +void pasopia_state::pasopia(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 4000000); @@ -295,14 +296,14 @@ MACHINE_CONFIG_START(pasopia_state::pasopia) m_maincpu->set_daisy_config(pasopia_daisy); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", h46505_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update("crtc", FUNC(h46505_device::screen_update)); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia); - MCFG_PALETTE_ADD("palette", 8) + PALETTE(config, m_palette).set_entries(8); /* Devices */ H46505(config, m_crtc, XTAL(4'000'000)/4); /* unknown clock, hand tuned to get ~60 fps */ @@ -334,7 +335,7 @@ MACHINE_CONFIG_START(pasopia_state::pasopia) m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio->out_pa_callback().set(FUNC(pasopia_state::mux_w)); m_pio->in_pb_callback().set(FUNC(pasopia_state::keyb_r)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pasopia ) diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp index 1cbdbc3f93d..4d39305960a 100644 --- a/src/mame/drivers/pasopia7.cpp +++ b/src/mame/drivers/pasopia7.cpp @@ -968,46 +968,50 @@ void pasopia7_state::p7_base(machine_config &config) FLOPPY_CONNECTOR(config, "fdc:1", pasopia7_floppies, "525hd", floppy_image_device::default_floppy_formats); } -MACHINE_CONFIG_START(pasopia7_state::p7_raster) +void pasopia7_state::p7_raster(machine_config &config) +{ p7_base(config); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 32-1); + m_screen->set_palette(m_palette); + m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7)); MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) - MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) + PALETTE(config, m_palette, palette_device::BRG_3BIT); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); H46505(config, m_crtc, VDP_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ - m_crtc->set_screen("screen"); + m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pasopia7_state::p7_lcd) +void pasopia7_state::p7_lcd(machine_config &config) +{ p7_base(config); - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + SCREEN(config, m_screen, SCREEN_TYPE_LCD); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 200-1); + m_screen->set_screen_update(FUNC(pasopia7_state::screen_update_pasopia7)); + m_screen->set_palette(m_palette); + MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) - MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7) - MCFG_SCREEN_PALETTE(m_palette) PALETTE(config, m_palette, FUNC(pasopia7_state::p7_lcd_palette), 8); GFXDECODE(config, "gfxdecode", m_palette, gfx_pasopia7); H46505(config, m_crtc, LCD_CLOCK); /* unknown clock, hand tuned to get ~60 fps */ - m_crtc->set_screen("screen"); + m_crtc->set_screen(m_screen); m_crtc->set_show_border_area(false); m_crtc->set_char_width(8); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pasopia7 ) diff --git a/src/mame/drivers/pass.cpp b/src/mame/drivers/pass.cpp index 4bc1a2f511f..da1d72c0a06 100644 --- a/src/mame/drivers/pass.cpp +++ b/src/mame/drivers/pass.cpp @@ -241,26 +241,26 @@ static GFXDECODE_START( gfx_pass ) GFXDECODE_END /* todo : is this correct? */ -MACHINE_CONFIG_START(pass_state::pass) - +void pass_state::pass(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14318180/2 ) - MCFG_DEVICE_PROGRAM_MAP(pass_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pass_state, irq1_line_hold) /* all the same */ + M68000(config, m_maincpu, 14318180/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pass_state::pass_map); + m_maincpu->set_vblank_int("screen", FUNC(pass_state::irq1_line_hold)); /* all the same */ - MCFG_DEVICE_ADD("audiocpu", Z80, 14318180/4 ) - MCFG_DEVICE_PROGRAM_MAP(pass_sound_map) - MCFG_DEVICE_IO_MAP(pass_sound_io_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(pass_state, irq0_line_hold, 60) /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */ + z80_device &audiocpu(Z80(config, "audiocpu", 14318180/4)); + audiocpu.set_addrmap(AS_PROGRAM, &pass_state::pass_sound_map); + audiocpu.set_addrmap(AS_IO, &pass_state::pass_sound_io_map); + audiocpu.set_periodic_int(FUNC(pass_state::irq0_line_hold), attotime::from_hz(60)); /* probably not accurate, unknown timing and generation (ym2203 sound chip?). */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(8*8, 48*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pass_state::screen_update_pass)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::xRGB_555, 0x200); GFXDECODE(config, m_gfxdecode, "palette", gfx_pass); @@ -271,12 +271,10 @@ MACHINE_CONFIG_START(pass_state::pass) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ymsnd", YM2203, 14318180/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + YM2203(config, "ymsnd", 14318180/4).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("oki", OKIM6295, 792000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 792000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.60); // clock frequency & pin 7 not verified +} ROM_START( pass ) diff --git a/src/mame/drivers/pastelg.cpp b/src/mame/drivers/pastelg.cpp index 3ec950a89e9..5a253adb99d 100644 --- a/src/mame/drivers/pastelg.cpp +++ b/src/mame/drivers/pastelg.cpp @@ -397,26 +397,26 @@ static INPUT_PORTS_START( galds ) INPUT_PORTS_END -MACHINE_CONFIG_START(pastelg_state::pastelg) - +void pastelg_state::pastelg(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ - MCFG_DEVICE_PROGRAM_MAP(pastelg_map) - MCFG_DEVICE_IO_MAP(pastelg_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) // nmiclock not written, chip is 1411M1 instead of 1413M3 + Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */ + m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map); + m_maincpu->set_addrmap(AS_IO, &pastelg_state::pastelg_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); // nmiclock not written, chip is 1411M1 instead of 1413M3 NB1413M3(config, m_nb1413m3, 0, NB1413M3_PASTELG); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 16, 240-1); + m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32); @@ -432,7 +432,7 @@ MACHINE_CONFIG_START(pastelg_state::pastelg) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} /* @@ -457,25 +457,25 @@ Note */ -MACHINE_CONFIG_START(pastelg_state::threeds) - +void pastelg_state::threeds(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 19968000/4) /* unknown divider, galds definitely relies on this for correct voice pitch */ - MCFG_DEVICE_PROGRAM_MAP(pastelg_map) - MCFG_DEVICE_IO_MAP(threeds_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pastelg_state, irq0_line_assert) + Z80(config, m_maincpu, 19968000/4); /* unknown divider, galds definitely relies on this for correct voice pitch */ + m_maincpu->set_addrmap(AS_PROGRAM, &pastelg_state::pastelg_map); + m_maincpu->set_addrmap(AS_IO, &pastelg_state::threeds_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pastelg_state::irq0_line_assert)); NB1413M3(config, m_nb1413m3, 0); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) - MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(256, 256); + m_screen->set_visarea(0, 256-1, 16, 240-1); + m_screen->set_screen_update(FUNC(pastelg_state::screen_update_pastelg)); + m_screen->set_palette("palette"); PALETTE(config, "palette", FUNC(pastelg_state::pastelg_palette), 32); @@ -491,7 +491,7 @@ MACHINE_CONFIG_START(pastelg_state::threeds) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( pastelg ) diff --git a/src/mame/drivers/patapata.cpp b/src/mame/drivers/patapata.cpp index de68c9d5c9a..9638f33ef2b 100644 --- a/src/mame/drivers/patapata.cpp +++ b/src/mame/drivers/patapata.cpp @@ -285,37 +285,36 @@ TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline) if (param==128) m_maincpu->set_input_line(1, HOLD_LINE); } -MACHINE_CONFIG_START(patapata_state::patapata) +void patapata_state::patapata(machine_config &config) +{ + M68000(config, m_maincpu, 16_MHz_XTAL); // 16 MHz XTAL, 16 MHz CPU + m_maincpu->set_addrmap(AS_PROGRAM, &patapata_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(patapata_state::irq4_line_hold)); // 1 + 4 valid? (4 main VBL) - MCFG_DEVICE_ADD("maincpu", M68000, 16_MHz_XTAL) // 16 MHz XTAL, 16 MHz CPU - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", patapata_state, irq4_line_hold) // 1 + 4 valid? (4 main VBL) TIMER(config, "scantimer").configure_scanline(FUNC(patapata_state::scanline), "screen", 0, 1); GFXDECODE(config, m_gfxdecode, "palette", gfx_patapata); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 60*8-1, 0*8, 44*8-1) - MCFG_SCREEN_UPDATE_DRIVER(patapata_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 60*8-1, 0*8, 44*8-1); + screen.set_screen_update(FUNC(patapata_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x600/2); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) + OKIM6295(config, "oki1", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified - MCFG_DEVICE_ADD("oki2", OKIM6295, 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW) // not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) + OKIM6295(config, "oki2", 16_MHz_XTAL / 4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.40); // not verified nmk112_device &nmk112(NMK112(config, "nmk112", 0)); // or 212? difficult to read (maybe 212 is 2* 112?) nmk112.set_rom0_tag("oki1"); nmk112.set_rom1_tag("oki2"); -MACHINE_CONFIG_END +} ROM_START( patapata ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */ diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp index 0e12ebdd703..e327f926ff3 100644 --- a/src/mame/drivers/pbaction.cpp +++ b/src/mame/drivers/pbaction.cpp @@ -448,8 +448,8 @@ static const z80_daisy_config daisy_chain[] = { nullptr } }; -MACHINE_CONFIG_START(pbaction_state::pbaction) - +void pbaction_state::pbaction(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction_map); @@ -463,14 +463,14 @@ MACHINE_CONFIG_START(pbaction_state::pbaction) m_ctc->intr_callback().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pbaction_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pbaction_state::screen_update_pbaction)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(pbaction_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pbaction); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 256); @@ -483,7 +483,7 @@ MACHINE_CONFIG_START(pbaction_state::pbaction) AY8910(config, "ay1", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay3", 12_MHz_XTAL/8).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} void pbaction_state::pbactionx(machine_config &config) { diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp index 2d8b7476bc4..64e490b327e 100644 --- a/src/mame/drivers/pc.cpp +++ b/src/mame/drivers/pc.cpp @@ -208,11 +208,11 @@ MACHINE_CONFIG_START(pc_state::pccga) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -254,13 +254,12 @@ Expansion: 8087 FPU ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::ataripc1) +void pc_state::ataripc1(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_360K) -MACHINE_CONFIG_END + subdevice("isa1")->set_default_option("ega"); + subdevice("isa2")->set_option_machine_config("fdc_xt", cfg_single_360K); +} ROM_START ( ataripc1 ) ROM_REGION(0x10000,"bios", 0) @@ -356,13 +355,14 @@ ToDo: The ROM for the CGA is available (see ROM section) ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::mpc1600) +void pc_state::mpc1600(machine_config &config) +{ pccga(config); - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false); subdevice(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( mpc1600 ) ROM_REGION(0x10000,"bios", 0) @@ -408,12 +408,12 @@ CPU: ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::comport) +void pc_state::comport(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") + subdevice("isa1")->set_default_option("ega"); subdevice(RAM_TAG)->set_default_size("128K").set_extra_options("256K, 512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( comport ) ROM_REGION(0x10000, "bios", 0) @@ -446,11 +446,11 @@ Expansion: Expansion box, with 5 ISA slots and space for a 5.25" drive and a har ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::dgone) +void pc_state::dgone(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) -MACHINE_CONFIG_END + subdevice("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K); +} ROM_START( dgone ) ROM_REGION(0x10000,"bios", 0) @@ -558,9 +558,8 @@ MACHINE_CONFIG_START(pc_state::epc) pccga(config); config.device_remove("maincpu"); MCFG_CPU_PC(pc8, epc, I8088, 4772720) - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("ega") - MCFG_DEVICE_ADD("i8251", I8251, 0) // clock? + subdevice("isa1")->set_default_option("ega"); + I8251(config, "i8251", 0); // clock? MACHINE_CONFIG_END ROM_START( epc ) @@ -623,10 +622,10 @@ MACHINE_CONFIG_START(pc_state::ibm5550) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -681,20 +680,16 @@ Misc: A Kaypro 16/2 is a configuration without harddisk but with two floppy disk ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::kaypro16) +void pc_state::kaypro16(machine_config &config) +{ pccga(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa3") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa4") - MCFG_SLOT_FIXED(true) - MCFG_DEVICE_MODIFY("isa5") - MCFG_SLOT_DEFAULT_OPTION(nullptr) + subdevice("isa1")->set_fixed(true); + subdevice("isa2")->set_fixed(true); + subdevice("isa3")->set_fixed(true); + subdevice("isa4")->set_fixed(true); + subdevice("isa5")->set_default_option(nullptr); subdevice(RAM_TAG)->set_default_size("256K").set_extra_options("512K, 640K"); -MACHINE_CONFIG_END +} ROM_START( kaypro16 ) ROM_REGION(0x10000, "bios", 0) @@ -706,11 +701,11 @@ ROM_END ******************************************************************************/ // MK-88 -MACHINE_CONFIG_START(pc_state::mk88) +void pc_state::mk88(machine_config &config) +{ poisk2(config); - MCFG_DEVICE_MODIFY("isa1") - MCFG_SLOT_DEFAULT_OPTION("cga_ec1841") -MACHINE_CONFIG_END + subdevice("isa1")->set_default_option("cga_ec1841"); +} // MK-88 ROM_START( mk88 ) @@ -751,14 +746,15 @@ Options: 8087 FPU, K101 memory upgrade in 64K steps, 1.2MB floppy and controller ******************************************************************************/ -MACHINE_CONFIG_START(pc_state::ncrpc4i) +void pc_state::ncrpc4i(machine_config & config) +{ pccga(config); //MCFG_DEVICE_MODIFY("mb:isa") - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); subdevice(RAM_TAG)->set_default_size("640K").set_extra_options("64K, 128K, 256K, 512K"); -MACHINE_CONFIG_END +} ROM_START( ncrpc4i ) ROM_REGION(0x10000,"bios", 0) @@ -789,14 +785,14 @@ static DEVICE_INPUT_DEFAULTS_START( m15 ) DEVICE_INPUT_DEFAULTS("DSW0", 0x01, 0x00) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(pc_state::m15) +void pc_state::m15(machine_config &config) +{ pccga(config); subdevice("mb")->set_input_default(DEVICE_INPUT_DEFAULTS_NAME(m15)); - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) + subdevice("isa2")->set_option_machine_config("fdc_xt", cfg_dual_720K); subdevice(RAM_TAG)->set_default_size("448K").set_extra_options("16K, 160K, 304K"); -MACHINE_CONFIG_END +} ROM_START( olivm15 ) ROM_REGION(0x10000,"bios", 0) @@ -825,12 +821,9 @@ MACHINE_CONFIG_START(pc_state::olytext30) pccga(config); config.device_remove("maincpu"); MCFG_CPU_PC(pc8, pc8, V20, XTAL(14'318'181)/3) /* 4,77 MHz */ - MCFG_DEVICE_MODIFY("isa2") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_single_720K) - MCFG_DEVICE_MODIFY("isa3") - MCFG_SLOT_DEFAULT_OPTION("") - MCFG_DEVICE_MODIFY("isa5") - MCFG_SLOT_DEFAULT_OPTION("hdc") + subdevice("isa2")->set_option_machine_config("fdc_xt", cfg_single_720K); + subdevice("isa3")->set_default_option(""); + subdevice("isa5")->set_default_option("hdc"); subdevice(RAM_TAG)->set_default_size("768K"); MACHINE_CONFIG_END @@ -852,10 +845,10 @@ MACHINE_CONFIG_START(pc_state::poisk2) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga_poisk2", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -944,12 +937,10 @@ MACHINE_CONFIG_START(pc_state::iskr3104) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(iskr3104)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "ega", false) // FIXME: determine ISA bus clock - MCFG_SLOT_OPTION_DEFAULT_BIOS("ega", "iskr3104") - - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "ega", false).set_option_default_bios("ega", "iskr3104"); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1022,12 +1013,12 @@ MACHINE_CONFIG_START(pc_state::siemens) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(siemens)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hercules", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hdc", false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "hercules", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, "hdc", false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1066,14 +1057,14 @@ MACHINE_CONFIG_START(pc_state::laser_turbo_xt) mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) // Multi I/O card (includes FDC) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa7", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa8", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "com", false); // Multi I/O card (includes FDC) + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa7", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa8", 0, "mb:isa", pc_isa8_cards, nullptr, false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); @@ -1145,11 +1136,10 @@ MACHINE_CONFIG_START(pc_state::zenith) mb.set_cputag(m_maincpu); mb.set_input_default(DEVICE_INPUT_DEFAULTS_NAME(pccga)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "cga", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false) - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_dual_720K) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "cga", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false).set_option_machine_config("fdc_xt", cfg_dual_720K); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, "lpt", false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, "com", false); /* keyboard */ PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83).set_pc_kbdc_slot(subdevice("mb:pc_kbdc")); diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp index 0ce792797a5..c4c446ed822 100644 --- a/src/mame/drivers/pc100.cpp +++ b/src/mame/drivers/pc100.cpp @@ -634,7 +634,8 @@ static void pc100_floppies(device_slot_interface &device) #define MASTER_CLOCK 6988800 -MACHINE_CONFIG_START(pc100_state::pc100) +void pc100_state::pc100(machine_config &config) +{ /* basic machine hardware */ I8086(config, m_maincpu, MASTER_CLOCK); m_maincpu->set_addrmap(AS_PROGRAM, &pc100_state::pc100_map); @@ -681,11 +682,11 @@ MACHINE_CONFIG_START(pc100_state::pc100) FLOPPY_CONNECTOR(config, "upd765:1", pc100_floppies, "525dd", floppy_image_device::default_floppy_formats); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); /* TODO: Unknown Pixel Clock and CRTC is dynamic */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512) - MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100) - MCFG_SCREEN_PALETTE("palette") + screen.set_raw(MASTER_CLOCK*4, 1024, 0, 768, 264*2, 0, 512); + screen.set_screen_update(FUNC(pc100_state::screen_update_pc100)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc100); PALETTE(config, m_palette).set_format(palette_device::xBGR_333, 16); @@ -693,7 +694,7 @@ MACHINE_CONFIG_START(pc100_state::pc100) SPEAKER(config, "mono").front_center(); BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pc100 ) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index 24680ba8376..5fab9bdacf8 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1152,14 +1152,15 @@ void pc1640_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( pc1512 ) +// machine_config( pc1512 ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512) - MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(pc1512_mem) - MCFG_DEVICE_IO_MAP(pc1512_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb) +void pc1512_state::pc1512(machine_config &config) +{ + I8086(config, m_maincpu, 24_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pc1512_state::pc1512_mem); + m_maincpu->set_addrmap(AS_IO, &pc1512_state::pc1512_io); + m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb)); // video pc1512_video(config); @@ -1252,9 +1253,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA clock + ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // internal ram RAM(config, RAM_TAG).set_default_size("512K").set_extra_options("544K,576K,608K,640K"); @@ -1262,41 +1263,42 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) // software list SOFTWARE_LIST(config, "flop_list").set_original("pc1512_flop"); SOFTWARE_LIST(config, "hdd_list").set_original("pc1512_hdd"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( pc1512dd ) +// machine_config( pc1512dd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512dd) +void pc1512_state::pc1512dd(machine_config &config) +{ pc1512(config); - MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1") - MCFG_SLOT_DEFAULT_OPTION("525dd") -MACHINE_CONFIG_END + subdevice(PC_FDC_XT_TAG ":1")->set_default_option("525dd"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1512hd ) +// machine_config( pc1512hd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1512_state::pc1512hd) +void pc1512_state::pc1512hd(machine_config &config) +{ pc1512(config); - MCFG_DEVICE_MODIFY("isa1") - //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen") - MCFG_SLOT_DEFAULT_OPTION("hdc") -MACHINE_CONFIG_END + //subdevice("isa1")->set_default_option("wdxt_gen"); + subdevice("isa1")->set_default_option("hdc"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640 ) +// machine_config( pc1640 ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640) - MCFG_DEVICE_ADD(I8086_TAG, I8086, 24_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(pc1640_mem) - MCFG_DEVICE_IO_MAP(pc1640_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A2_TAG, pic8259_device, inta_cb) +void pc1640_state::pc1640(machine_config &config) +{ + I8086(config, m_maincpu, 24_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pc1640_state::pc1640_mem); + m_maincpu->set_addrmap(AS_IO, &pc1640_state::pc1640_io); + m_maincpu->set_irq_acknowledge_callback(I8259A2_TAG, FUNC(pic8259_device::inta_cb)); // sound SPEAKER(config, "mono").front_center(); @@ -1386,11 +1388,11 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false) + ISA8_SLOT(config, "isa1", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, ISA_BUS_TAG, pc1640_isa8_cards, "iga", false); // internal ram RAM(config, RAM_TAG).set_default_size("640K"); @@ -1398,30 +1400,30 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) // software list SOFTWARE_LIST(config, "flop_list").set_original("pc1640_flop"); SOFTWARE_LIST(config, "hdd_list").set_original("pc1640_hdd"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640dd ) +// machine_config( pc1640dd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640dd) +void pc1640_state::pc1640dd(machine_config &config) +{ pc1640(config); - MCFG_DEVICE_MODIFY(PC_FDC_XT_TAG ":1") - MCFG_SLOT_DEFAULT_OPTION("525dd") -MACHINE_CONFIG_END + subdevice(PC_FDC_XT_TAG ":1")->set_default_option("525dd"); +} //------------------------------------------------- -// MACHINE_CONFIG( pc1640hd ) +// machine_config( pc1640hd ) //------------------------------------------------- -MACHINE_CONFIG_START(pc1640_state::pc1640hd) +void pc1640_state::pc1640hd(machine_config &config) +{ pc1640(config); - MCFG_DEVICE_MODIFY("isa1") - //MCFG_SLOT_DEFAULT_OPTION("wdxt_gen") - MCFG_SLOT_DEFAULT_OPTION("hdc") -MACHINE_CONFIG_END + //subdevice("isa1")->set_default_option("wdxt_gen"); + subdevice("isa1")->set_default_option("hdc"); +} diff --git a/src/mame/drivers/pc2000.cpp b/src/mame/drivers/pc2000.cpp index 0cf410cf845..9f111f5e8b3 100644 --- a/src/mame/drivers/pc2000.cpp +++ b/src/mame/drivers/pc2000.cpp @@ -957,7 +957,7 @@ void gl3000s_state::gl3000s(machine_config &config) SOFTWARE_LIST(config, "gl2000_cart").set_compatible("gl2000"); SOFTWARE_LIST(config, "misterx_cart").set_compatible("misterx"); -MACHINE_CONFIG_END +} void gl4004_state::gl4000(machine_config &config) { diff --git a/src/mame/drivers/pc4.cpp b/src/mame/drivers/pc4.cpp index a2661b1aa1c..ffdfd572770 100644 --- a/src/mame/drivers/pc4.cpp +++ b/src/mame/drivers/pc4.cpp @@ -217,19 +217,20 @@ void pc4_state::machine_start() m_blink = 0; } -MACHINE_CONFIG_START(pc4_state::pc4) +void pc4_state::pc4(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc4_mem) - MCFG_DEVICE_IO_MAP(pc4_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc4_state::pc4_mem); + m_maincpu->set_addrmap(AS_IO, &pc4_state::pc4_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DRIVER(pc4_state, screen_update) - MCFG_SCREEN_SIZE(240, 36) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 36-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(FUNC(pc4_state::screen_update)); + screen.set_size(240, 36); + screen.set_visarea(0, 240-1, 0, 36-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pc4_state::pc4_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_pc4); @@ -239,7 +240,7 @@ MACHINE_CONFIG_START(pc4_state::pc4) BEEP(config, m_beep, 3250).add_route(ALL_OUTPUTS, "mono", 1.00); RP5C01(config, "rtc", XTAL(32'768)); -MACHINE_CONFIG_END +} ROM_START( pc4 ) ROM_REGION( 0x20000, "maincpu", 0 ) diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp index 3219c1e5f70..38fcea1268d 100644 --- a/src/mame/drivers/pc6001.cpp +++ b/src/mame/drivers/pc6001.cpp @@ -1470,25 +1470,26 @@ GFXDECODE_END #define PC6001_MAIN_CLOCK 7987200 -MACHINE_CONFIG_START(pc6001_state::pc6001) +void pc6001_state::pc6001(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, PC6001_MAIN_CLOCK / 2) // PD 780C-1, ~4 Mhz - MCFG_DEVICE_PROGRAM_MAP(pc6001_map) - MCFG_DEVICE_IO_MAP(pc6001_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) + Z80(config, m_maincpu, PC6001_MAIN_CLOCK / 2); // PD 780C-1, ~4 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001_state::pc6001_map); + m_maincpu->set_addrmap(AS_IO, &pc6001_state::pc6001_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); -// MCFG_DEVICE_ADD("subcpu", I8049, 7987200) +// I8049(config, "subcpu", 7987200); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc6001m2); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001) - MCFG_SCREEN_SIZE(320, 25+192+26) - MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_screen_update(FUNC(pc6001_state::screen_update_pc6001)); + m_screen->set_size(320, 25+192+26); + m_screen->set_visarea(0, 319, 0, 239); + m_screen->set_palette(m_palette); PALETTE(config, m_palette, FUNC(pc6001_state::pc6001_palette), 16+4); @@ -1520,59 +1521,57 @@ MACHINE_CONFIG_START(pc6001_state::pc6001) /* TODO: accurate timing on this */ TIMER(config, "keyboard_timer").configure_periodic(FUNC(pc6001_state::keyboard_callback), attotime::from_hz(250)); TIMER(config, "cassette_timer").configure_periodic(FUNC(pc6001_state::cassette_callback), attotime::from_hz(1200/12)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc6001mk2_state::pc6001mk2) +void pc6001mk2_state::pc6001mk2(machine_config &config) +{ pc6001(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map) - MCFG_DEVICE_IO_MAP(pc6001mk2_io) + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001mk2_state::pc6001mk2_map); + m_maincpu->set_addrmap(AS_IO, &pc6001mk2_state::pc6001mk2_io); // MCFG_MACHINE_RESET_OVERRIDE(pc6001mk2_state,pc6001mk2) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(pc6001mk2_state, screen_update_pc6001mk2) + m_screen->set_screen_update(FUNC(pc6001mk2_state::screen_update_pc6001mk2)); m_palette->set_entries(16+16); m_palette->set_init(FUNC(pc6001mk2_state::pc6001mk2_palette)); subdevice("gfxdecode")->set_info(gfx_pc6001m2); - MCFG_DEVICE_ADD("upd7752", UPD7752, PC6001_MAIN_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + UPD7752(config, "upd7752", PC6001_MAIN_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.00); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(pc6601_state::pc6601) +void pc6601_state::pc6601(machine_config &config) +{ pc6001mk2(config); /* basic machine hardware */ - MCFG_DEVICE_REPLACE("maincpu", Z80, PC6001_MAIN_CLOCK / 2) - MCFG_DEVICE_PROGRAM_MAP(pc6001mk2_map) - MCFG_DEVICE_IO_MAP(pc6601_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001_state, vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) -MACHINE_CONFIG_END + Z80(config.replace(), m_maincpu, PC6001_MAIN_CLOCK / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &pc6601_state::pc6001mk2_map); + m_maincpu->set_addrmap(AS_IO, &pc6601_state::pc6601_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001_state::vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); +} -MACHINE_CONFIG_START(pc6001sr_state::pc6001sr) +void pc6001sr_state::pc6001sr(machine_config &config) +{ pc6001mk2(config); /* basic machine hardware */ //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models (better waitstates tho?) - MCFG_DEVICE_REPLACE("maincpu", Z80, XTAL(3'579'545)) - MCFG_DEVICE_PROGRAM_MAP(pc6001sr_map) - MCFG_DEVICE_IO_MAP(pc6001sr_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc6001sr_state, sr_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc6001_state, irq_callback) + Z80(config.replace(), m_maincpu, XTAL(3'579'545)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc6001sr_state::pc6001sr_map); + m_maincpu->set_addrmap(AS_IO, &pc6001sr_state::pc6001sr_io); + m_maincpu->set_vblank_int("screen", FUNC(pc6001sr_state::sr_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc6001_state::irq_callback)); // MCFG_MACHINE_RESET_OVERRIDE(pc6001sr_state,pc6001sr) - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(pc6001sr_state, screen_update_pc6001sr) -MACHINE_CONFIG_END + m_screen->set_screen_update(FUNC(pc6001sr_state::screen_update_pc6001sr)); +} /* ROM definition */ ROM_START( pc6001 ) diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp index a56ef6c7d7b..c13e1f13755 100644 --- a/src/mame/drivers/pc8001.cpp +++ b/src/mame/drivers/pc8001.cpp @@ -479,23 +479,23 @@ void pc8001_state::machine_start() /* Machine Drivers */ -MACHINE_CONFIG_START(pc8001_state::pc8001) +void pc8001_state::pc8001(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc8001_mem) - MCFG_DEVICE_IO_MAP(pc8001_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc8001_state::pc8001_mem); + m_maincpu->set_addrmap(AS_IO, &pc8001_state::pc8001_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update) - MCFG_SCREEN_SIZE(640, 220) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update)); + screen.set_size(640, 220); + screen.set_visarea(0, 640-1, 0, 200-1); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 2000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ I8251(config, I8251_TAG, 0); @@ -526,25 +526,25 @@ MACHINE_CONFIG_START(pc8001_state::pc8001) m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("32K,64K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2) +void pc8001mk2_state::pc8001mk2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pc8001mk2_mem) - MCFG_DEVICE_IO_MAP(pc8001mk2_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pc8001mk2_state::pc8001mk2_mem); + m_maincpu->set_addrmap(AS_IO, &pc8001mk2_state::pc8001mk2_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DEVICE(UPD3301_TAG, upd3301_device, screen_update) - MCFG_SCREEN_SIZE(640, 220) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_screen_update(UPD3301_TAG, FUNC(upd3301_device::screen_update)); + screen.set_size(640, 220); + screen.set_visarea(0, 640-1, 0, 200-1); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("beeper", BEEP, 2000) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + BEEP(config, m_beep, 2000).add_route(ALL_OUTPUTS, "mono", 0.25); /* devices */ I8251(config, I8251_TAG, 0); @@ -573,7 +573,7 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2) m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp index 36a44bd7da7..7de2b1b5d45 100644 --- a/src/mame/drivers/pc8401a.cpp +++ b/src/mame/drivers/pc8401a.cpp @@ -570,11 +570,12 @@ WRITE8_MEMBER( pc8401a_state::ppi_pc_w ) /* Machine Drivers */ -MACHINE_CONFIG_START(pc8401a_state::pc8401a) +void pc8401a_state::pc8401a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C - MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem) - MCFG_DEVICE_IO_MAP(pc8401a_io) + Z80(config, m_maincpu, 4000000); // NEC uPD70008C + m_maincpu->set_addrmap(AS_PROGRAM, &pc8401a_state::pc8401a_mem); + m_maincpu->set_addrmap(AS_IO, &pc8401a_state::pc8401a_io); /* fake keyboard */ TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); @@ -606,13 +607,14 @@ MACHINE_CONFIG_START(pc8401a_state::pc8401a) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8500_state::pc8500) +void pc8500_state::pc8500(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(Z80_TAG, Z80, 4000000) // NEC uPD70008C - MCFG_DEVICE_PROGRAM_MAP(pc8401a_mem) - MCFG_DEVICE_IO_MAP(pc8500_io) + Z80(config, m_maincpu, 4000000); // NEC uPD70008C + m_maincpu->set_addrmap(AS_PROGRAM, &pc8500_state::pc8401a_mem); + m_maincpu->set_addrmap(AS_IO, &pc8500_state::pc8500_io); /* fake keyboard */ TIMER(config, "keyboard").configure_periodic(FUNC(pc8401a_state::pc8401a_keyboard_tick), attotime::from_hz(64)); @@ -644,7 +646,7 @@ MACHINE_CONFIG_START(pc8500_state::pc8500) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K"); -MACHINE_CONFIG_END +} /* ROMs */ diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp index fb7291e44fc..327f2044fe4 100644 --- a/src/mame/drivers/pc8801.cpp +++ b/src/mame/drivers/pc8801.cpp @@ -2340,18 +2340,19 @@ WRITE_LINE_MEMBER( pc8801_state::rxrdy_w ) // ... } -MACHINE_CONFIG_START(pc8801_state::pc8801) +void pc8801_state::pc8801(machine_config &config) +{ /* main CPU */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc8801_mem) - MCFG_DEVICE_IO_MAP(pc8801_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc8801_state, pc8801_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pc8801_state,pc8801_irq_callback) + Z80(config, m_maincpu, MASTER_CLOCK); /* 4 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801_mem); + m_maincpu->set_addrmap(AS_IO, &pc8801_state::pc8801_io); + m_maincpu->set_vblank_int("screen", FUNC(pc8801_state::pc8801_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pc8801_state::pc8801_irq_callback)); /* sub CPU(5 inch floppy drive) */ - MCFG_DEVICE_ADD(m_fdccpu, Z80, MASTER_CLOCK) /* 4 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc8801fdc_mem) - MCFG_DEVICE_IO_MAP(pc8801fdc_io) + Z80(config, m_fdccpu, MASTER_CLOCK); /* 4 MHz */ + m_fdccpu->set_addrmap(AS_PROGRAM, &pc8801_state::pc8801fdc_mem); + m_fdccpu->set_addrmap(AS_IO, &pc8801_state::pc8801fdc_io); //config.m_minimum_quantum = attotime::from_hz(300000); config.m_perfect_cpu_quantum = subtag("maincpu"); @@ -2390,10 +2391,10 @@ MACHINE_CONFIG_START(pc8801_state::pc8801) SOFTWARE_LIST(config, "disk_list").set_original("pc8801_flop"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK_24KHz,848,0,640,448,0,400) - MCFG_SCREEN_UPDATE_DRIVER(pc8801_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(PIXEL_CLOCK_24KHz,848,0,640,448,0,400); + m_screen->set_screen_update(FUNC(pc8801_state::screen_update)); + m_screen->set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pc8801); PALETTE(config, m_palette, FUNC(pc8801_state::pc8801_palette), 0x10); @@ -2414,26 +2415,28 @@ MACHINE_CONFIG_START(pc8801_state::pc8801) m_opna->port_b_read_callback().set(FUNC(pc8801_state::opn_portb_r)); m_opna->add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_DEVICE_ADD("beeper", BEEP, 2400) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) + BEEP(config, m_beeper, 2400).add_route(ALL_OUTPUTS, "mono", 0.10); TIMER(config, "rtc_timer").configure_periodic(FUNC(pc8801_state::pc8801_rtc_irq), attotime::from_hz(600)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801fh) +void pc8801_state::pc8801fh(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_clock_speed ) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801ma) +void pc8801_state::pc8801ma(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_dic ) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pc8801_state::pc8801mc) +void pc8801_state::pc8801mc(machine_config &config) +{ pc8801(config); MCFG_MACHINE_RESET_OVERRIDE(pc8801_state, pc8801_cdrom ) -MACHINE_CONFIG_END +} /* TODO: clean this up */ diff --git a/src/mame/drivers/pc88va.cpp b/src/mame/drivers/pc88va.cpp index 043dcc2d33a..508edd48ccd 100644 --- a/src/mame/drivers/pc88va.cpp +++ b/src/mame/drivers/pc88va.cpp @@ -1585,30 +1585,30 @@ WRITE8_MEMBER(pc88va_state::dma_memw_cb) } -MACHINE_CONFIG_START(pc88va_state::pc88va) - - MCFG_DEVICE_ADD("maincpu", V30, 8000000) /* 8 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc88va_map) - MCFG_DEVICE_IO_MAP(pc88va_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pc88va_state, pc88va_vrtc_irq) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) +void pc88va_state::pc88va(machine_config &config) +{ + V30(config, m_maincpu, 8000000); /* 8 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_map); + m_maincpu->set_addrmap(AS_IO, &pc88va_state::pc88va_io_map); + m_maincpu->set_vblank_int("screen", FUNC(pc88va_state::pc88va_vrtc_irq)); + m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb)); #if TEST_SUBFDC - MCFG_DEVICE_ADD("fdccpu", Z80, 8000000) /* 8 MHz */ - MCFG_DEVICE_PROGRAM_MAP(pc88va_z80_map) - MCFG_DEVICE_IO_MAP(pc88va_z80_io_map) + z80_device &fdccpu(Z80(config, "fdccpu", 8000000)); /* 8 MHz */ + fdccpu.set_addrmap(AS_PROGRAM, &pc88va_state::pc88va_z80_map); + fdccpu.set_addrmap(AS_IO, &pc88va_state::pc88va_z80_io_map); config.m_perfect_cpu_quantum = subtag("maincpu"); #endif - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 200-1); + m_screen->set_screen_update(FUNC(pc88va_state::screen_update_pc88va)); - MCFG_PALETTE_ADD("palette", 32) -// MCFG_PALETTE_INIT_OWNER(pc88va_state, pc8801 ) + PALETTE(config, m_palette).set_entries(32); +// m_palette->set_init(FUNC(pc88va_state::pc8801)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pc88va); i8255_device &d8255_2(I8255(config, "d8255_2")); @@ -1664,12 +1664,12 @@ MACHINE_CONFIG_START(pc88va_state::pc88va) ADDRESS_MAP_BANK(config, "sysbank").set_map(&pc88va_state::sysbank_map).set_options(ENDIANNESS_LITTLE, 16, 18+4, 0x40000); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym", YM2203, 3993600) //unknown clock / divider - MCFG_SOUND_ROUTE(0, "mono", 0.25) - MCFG_SOUND_ROUTE(1, "mono", 0.25) - MCFG_SOUND_ROUTE(2, "mono", 0.50) - MCFG_SOUND_ROUTE(3, "mono", 0.50) -MACHINE_CONFIG_END + ym2203_device &ym(YM2203(config, "ym", 3993600)); //unknown clock / divider + ym.add_route(0, "mono", 0.25); + ym.add_route(1, "mono", 0.25); + ym.add_route(2, "mono", 0.50); + ym.add_route(3, "mono", 0.50); +} ROM_START( pc88va2 ) diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp index e7a48dc12b6..16e3f1a1a0e 100644 --- a/src/mame/drivers/pcat_nit.cpp +++ b/src/mame/drivers/pcat_nit.cpp @@ -231,12 +231,13 @@ void pcat_nit_state::machine_start() membank("rombank")->set_entry(0); } -MACHINE_CONFIG_START(pcat_nit_state::pcat_nit) +void pcat_nit_state::pcat_nit(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ - MCFG_DEVICE_PROGRAM_MAP(pcat_map) - MCFG_DEVICE_IO_MAP(pcat_nit_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::pcat_map); + m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::pcat_nit_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_vga(config); @@ -250,14 +251,15 @@ MACHINE_CONFIG_START(pcat_nit_state::pcat_nit) MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcat_nit_state::bonanza) +void pcat_nit_state::bonanza(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I386, 14318180*2) /* I386 ?? Mhz */ - MCFG_DEVICE_PROGRAM_MAP(bonanza_map) - MCFG_DEVICE_IO_MAP(bonanza_io_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I386(config, m_maincpu, 14318180*2); /* I386 ?? Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pcat_nit_state::bonanza_map); + m_maincpu->set_addrmap(AS_IO, &pcat_nit_state::bonanza_io_map); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); /* video hardware */ pcvideo_cirrus_gd5428(config); @@ -270,7 +272,7 @@ MACHINE_CONFIG_START(pcat_nit_state::bonanza) MICROTOUCH(config, m_microtouch, 9600).stx().set(uart, FUNC(ins8250_uart_device::rx_w)); // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} /*************************************** * diff --git a/src/mame/drivers/pce220.cpp b/src/mame/drivers/pce220.cpp index 7e4bba2462a..80d62bea1c0 100644 --- a/src/mame/drivers/pce220.cpp +++ b/src/mame/drivers/pce220.cpp @@ -944,21 +944,22 @@ void pce220_state::pce220_palette(palette_device &palette) const } -MACHINE_CONFIG_START(pce220_state::pce220) +void pce220_state::pce220(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, 3072000 ) // CMOS-SC7852 - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pce220_io) + Z80(config, m_maincpu, 3072000); // CMOS-SC7852 + m_maincpu->set_addrmap(AS_PROGRAM, &pce220_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pce220_state::pce220_io); /* video hardware */ // 4 lines x 24 characters, resp. 144 x 32 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pce220_state, screen_update) - MCFG_SCREEN_SIZE(24*6, 4*8) - MCFG_SCREEN_VISIBLE_AREA(0, 24*6-1, 0, 4*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pce220_state::screen_update)); + screen.set_size(24*6, 4*8); + screen.set_visarea(0, 24*6-1, 0, 4*8-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pce220_state::pce220_palette), 2); @@ -974,23 +975,24 @@ MACHINE_CONFIG_START(pce220_state::pce220) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcg850v_state::pcg815) +void pcg850v_state::pcg815(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000) ) // 3.54MHz - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pcg850v_io) + Z80(config, m_maincpu, XTAL(4'000'000)); // 3.54MHz + m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io); /* video hardware */ // 4 lines x 24 characters, resp. 144 x 32 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update) - MCFG_SCREEN_SIZE(144, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 32-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcg850v_state::screen_update)); + screen.set_size(144, 32); + screen.set_visarea(0, 144-1, 0, 32-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2); @@ -1006,23 +1008,24 @@ MACHINE_CONFIG_START(pcg850v_state::pcg815) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcg850v_state::pcg850v) +void pcg850v_state::pcg850v(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) ) // CMOS-SC7852 - MCFG_DEVICE_PROGRAM_MAP(pce220_mem) - MCFG_DEVICE_IO_MAP(pcg850v_io) + Z80(config, m_maincpu, XTAL(8'000'000)); // CMOS-SC7852 + m_maincpu->set_addrmap(AS_PROGRAM, &pcg850v_state::pce220_mem); + m_maincpu->set_addrmap(AS_IO, &pcg850v_state::pcg850v_io); /* video hardware */ // 6 lines x 24 characters, resp. 144 x 48 pixel - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcg850v_state, screen_update) - MCFG_SCREEN_SIZE(144, 48) - MCFG_SCREEN_VISIBLE_AREA(0, 144-1, 0, 48-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcg850v_state::screen_update)); + screen.set_size(144, 48); + screen.set_visarea(0, 144-1, 0, 48-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcg850v_state::pce220_palette), 2); @@ -1038,7 +1041,7 @@ MACHINE_CONFIG_START(pcg850v_state::pcg850v) RAM(config, RAM_TAG).set_default_size("64K"); // 32K internal + 32K external card PCE220SERIAL(config, m_serial, 0); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pce220 ) diff --git a/src/mame/drivers/pcfx.cpp b/src/mame/drivers/pcfx.cpp index 4a4aea782b9..b478d2c5ebd 100644 --- a/src/mame/drivers/pcfx.cpp +++ b/src/mame/drivers/pcfx.cpp @@ -417,14 +417,15 @@ uint32_t pcfx_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, } -MACHINE_CONFIG_START(pcfx_state::pcfx) - MCFG_DEVICE_ADD( "maincpu", V810, XTAL(21'477'272) ) - MCFG_DEVICE_PROGRAM_MAP( pcfx_mem) - MCFG_DEVICE_IO_MAP( pcfx_io) +void pcfx_state::pcfx(machine_config &config) +{ + V810(config, m_maincpu, XTAL(21'477'272)); + m_maincpu->set_addrmap(AS_PROGRAM, &pcfx_state::pcfx_mem); + m_maincpu->set_addrmap(AS_IO, &pcfx_state::pcfx_io); - MCFG_SCREEN_ADD( "screen", RASTER ) - MCFG_SCREEN_UPDATE_DRIVER(pcfx_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(pcfx_state::screen_update)); + screen.set_raw(XTAL(21'477'272), huc6261_device::WPF, 64, 64 + 1024 + 64, huc6261_device::LPF, 18, 18 + 242); huc6270_device &huc6270_a(HUC6270(config, "huc6270_a", 0)); huc6270_a.set_vram_size(0x20000); @@ -457,7 +458,7 @@ MACHINE_CONFIG_START(pcfx_state::pcfx) huc6230.cdda_cb().set("huc6272", FUNC(huc6272_device::cdda_update)); huc6230.add_route(0, "lspeaker", 1.0); huc6230.add_route(1, "rspeaker", 1.0); -MACHINE_CONFIG_END +} ROM_START( pcfx ) diff --git a/src/mame/drivers/pcktgal.cpp b/src/mame/drivers/pcktgal.cpp index 6398fe6d179..5a2c05a40d0 100644 --- a/src/mame/drivers/pcktgal.cpp +++ b/src/mame/drivers/pcktgal.cpp @@ -270,7 +270,7 @@ void pcktgal_state::bootleg(machine_config &config) pcktgal(config); m_gfxdecode->set_info(gfx_bootleg); subdevice("screen")->set_screen_update(FUNC(pcktgal_state::screen_update_pcktgalb)); -MACHINE_CONFIG_END +} void pcktgal_state::pcktgal2(machine_config &config) { diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp index 460e32d8589..02d5f704f9e 100644 --- a/src/mame/drivers/pcm.cpp +++ b/src/mame/drivers/pcm.cpp @@ -256,7 +256,8 @@ static GFXDECODE_START( gfx_pcm ) GFXDECODE_ENTRY( "chargen", 0x0000, pcm_charlayout, 0, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(pcm_state::pcm) +void pcm_state::pcm(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(10'000'000) /4); m_maincpu->set_addrmap(AS_PROGRAM, &pcm_state::pcm_mem); @@ -264,13 +265,13 @@ MACHINE_CONFIG_START(pcm_state::pcm) m_maincpu->set_daisy_config(pcm_daisy_chain); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pcm_state, screen_update) - MCFG_SCREEN_SIZE(64*8, 16*8) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pcm_state::screen_update)); + screen.set_size(64*8, 16*8); + screen.set_visarea(0, 64*8-1, 0, 16*8-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_pcm); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -304,7 +305,7 @@ MACHINE_CONFIG_START(pcm_state::pcm) m_ctc_s->zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w)); m_ctc_s->zc_callback<1>().set("sio", FUNC(z80sio_device::rxtxcb_w)); m_ctc_s->zc_callback<2>().set(FUNC(pcm_state::pcm_82_w)); // speaker -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pcm ) diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp index 877d65105a7..58d7340d28e 100644 --- a/src/mame/drivers/pcw16.cpp +++ b/src/mame/drivers/pcw16.cpp @@ -1010,11 +1010,12 @@ static void pcw16_com(device_slot_interface &device) device.option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE); } -MACHINE_CONFIG_START(pcw16_state::pcw16) +void pcw16_state::pcw16(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 16000000) - MCFG_DEVICE_PROGRAM_MAP(pcw16_map) - MCFG_DEVICE_IO_MAP(pcw16_io) + Z80(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pcw16_state::pcw16_map); + m_maincpu->set_addrmap(AS_IO, &pcw16_state::pcw16_io); config.m_minimum_quantum = attotime::from_hz(60); ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */ @@ -1043,13 +1044,13 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) serport2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT); + screen.set_visarea(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1); + screen.set_screen_update(FUNC(pcw16_state::screen_update_pcw16)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pcw16_state::pcw16_colours), PCW16_NUM_COLOURS); @@ -1081,7 +1082,7 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) TIMER(config, "video_timer").configure_periodic(FUNC(pcw16_state::pcw16_timer_callback), attotime::from_usec(5830)); /* rtc timer */ TIMER(config, "rtc_timer").configure_periodic(FUNC(pcw16_state::rtc_timer_callback), attotime::from_hz(256)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/pcxt.cpp b/src/mame/drivers/pcxt.cpp index c21f81a272d..db4b48940a3 100644 --- a/src/mame/drivers/pcxt.cpp +++ b/src/mame/drivers/pcxt.cpp @@ -494,33 +494,34 @@ static void filetto_isa8_cards(device_slot_interface &device) } -MACHINE_CONFIG_START(pcxt_state::filetto) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(filetto_map) - MCFG_DEVICE_IO_MAP(filetto_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void pcxt_state::filetto(machine_config &config) +{ + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::filetto_map); + m_maincpu->set_addrmap(AS_IO, &pcxt_state::filetto_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "filetto", true) // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "filetto", true); // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("voice", HC55516, 8000000/4)//8923S-UM5100 is a HC55536 with ROM hook-up - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.60) + HC55516(config, "voice", 8000000/4).add_route(ALL_OUTPUTS, "mb:mono", 0.60); //8923S-UM5100 is a HC55536 with ROM hook-up RAM(config, RAM_TAG).set_default_size("640K"); ADDRESS_MAP_BANK(config, "bank").set_map(&pcxt_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 18, 0x10000); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pcxt_state::tetriskr) - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(14'318'181)/3) - MCFG_DEVICE_PROGRAM_MAP(tetriskr_map) - MCFG_DEVICE_IO_MAP(tetriskr_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void pcxt_state::tetriskr(machine_config &config) +{ + I8088(config, m_maincpu, XTAL(14'318'181)/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pcxt_state::tetriskr_map); + m_maincpu->set_addrmap(AS_IO, &pcxt_state::tetriskr_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); PCNOPPI_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", filetto_isa8_cards, "tetriskr", true) // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa1", 0, "mb:isa", filetto_isa8_cards, "tetriskr", true); // FIXME: determine ISA bus clock RAM(config, RAM_TAG).set_default_size("640K"); -MACHINE_CONFIG_END +} ROM_START( filetto ) ROM_REGION( 0x10000, "bios", 0 ) diff --git a/src/mame/drivers/pdp11.cpp b/src/mame/drivers/pdp11.cpp index aa8dcbc9811..bd8634767f3 100644 --- a/src/mame/drivers/pdp11.cpp +++ b/src/mame/drivers/pdp11.cpp @@ -367,18 +367,20 @@ void pdp11_state::pdp11(machine_config &config) RX01(config, "rx01", 0); } -MACHINE_CONFIG_START(pdp11_state::pdp11ub2) +void pdp11_state::pdp11ub2(machine_config &config) +{ pdp11(config); MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11ub2) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pdp11_state::pdp11qb) +void pdp11_state::pdp11qb(machine_config &config) +{ pdp11(config); MCFG_MACHINE_RESET_OVERRIDE(pdp11_state,pdp11qb) m_maincpu->set_initial_mode(0 << 13); m_maincpu->set_addrmap(AS_PROGRAM, &pdp11_state::pdp11qb_mem); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pdp11ub ) diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp index 7d8055715ff..77ddc422697 100644 --- a/src/mame/drivers/pegasus.cpp +++ b/src/mame/drivers/pegasus.cpp @@ -490,19 +490,19 @@ void pegasus_state::init_pegasus() MACHINE_CONFIG_START(pegasus_state::pegasus) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, XTAL(4'000'000)) // actually a 6809C - 4MHZ clock coming in, 1MHZ internally - MCFG_DEVICE_PROGRAM_MAP(pegasus_mem) + MC6809(config, m_maincpu, XTAL(4'000'000)); // actually a 6809C - 4MHZ clock coming in, 1MHZ internally + m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasus_mem); TIMER(config, "pegasus_firq").configure_periodic(FUNC(pegasus_state::pegasus_firq), attotime::from_hz(400)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pegasus_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 16*16) - MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 16*16-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pegasus_state::screen_update)); + screen.set_size(32*8, 16*16); + screen.set_visarea(0, 32*8-1, 0, 16*16-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_pegasus); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -548,11 +548,11 @@ MACHINE_CONFIG_START(pegasus_state::pegasus) SOFTWARE_LIST(config, "cart_list").set_original("pegasus_cart"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(pegasus_state::pegasusm) +void pegasus_state::pegasusm(machine_config &config) +{ pegasus(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(pegasusm_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &pegasus_state::pegasusm_mem); +} /* ROM definition */ diff --git a/src/mame/drivers/pentagon.cpp b/src/mame/drivers/pentagon.cpp index 8bd464034e9..54ee980e21a 100644 --- a/src/mame/drivers/pentagon.cpp +++ b/src/mame/drivers/pentagon.cpp @@ -276,19 +276,18 @@ GFXDECODE_END -MACHINE_CONFIG_START(pentagon_state::pentagon) +void pentagon_state::pentagon(machine_config &config) +{ spectrum_128(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(14'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(pentagon_mem) - MCFG_DEVICE_IO_MAP(pentagon_io) - MCFG_DEVICE_OPCODES_MAP(pentagon_switch) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pentagon_state, pentagon_interrupt) + m_maincpu->set_clock(XTAL(14'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &pentagon_state::pentagon_mem); + m_maincpu->set_addrmap(AS_IO, &pentagon_state::pentagon_io); + m_maincpu->set_addrmap(AS_OPCODES, &pentagon_state::pentagon_switch); + m_maincpu->set_vblank_int("screen", FUNC(pentagon_state::pentagon_interrupt)); MCFG_MACHINE_RESET_OVERRIDE(pentagon_state, pentagon ) - MCFG_SCREEN_MODIFY("screen") - //MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304) - MCFG_SCREEN_RAW_PARAMS(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287) + //m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 304); + m_screen->set_raw(XTAL(14'000'000) / 2, 448, 0, 352, 320, 0, 287); MCFG_VIDEO_START_OVERRIDE(pentagon_state, pentagon ) BETA_DISK(config, m_beta, 0); @@ -306,7 +305,7 @@ MACHINE_CONFIG_START(pentagon_state::pentagon) config.device_remove("exp"); SOFTWARE_LIST(config, "cass_list_pen").set_original("pentagon_cass"); -MACHINE_CONFIG_END +} void pentagon_state::pent1024(machine_config &config) { diff --git a/src/mame/drivers/perq.cpp b/src/mame/drivers/perq.cpp index c067da028b7..9e92fad8353 100644 --- a/src/mame/drivers/perq.cpp +++ b/src/mame/drivers/perq.cpp @@ -29,8 +29,9 @@ private: static INPUT_PORTS_START( perq ) INPUT_PORTS_END -MACHINE_CONFIG_START(perq_state::perq) -MACHINE_CONFIG_END +void perq_state::perq(machine_config &config) +{ +} ROM_START( perq ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/peyper.cpp b/src/mame/drivers/peyper.cpp index c81928a9184..f3dc37a2f57 100644 --- a/src/mame/drivers/peyper.cpp +++ b/src/mame/drivers/peyper.cpp @@ -601,12 +601,13 @@ void peyper_state::machine_reset() } -MACHINE_CONFIG_START(peyper_state::peyper) +void peyper_state::peyper(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 2'500'000) - MCFG_DEVICE_PROGRAM_MAP(peyper_map) - MCFG_DEVICE_IO_MAP(peyper_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(peyper_state, irq0_line_hold, 1250) + Z80(config, m_maincpu, 2'500'000); + m_maincpu->set_addrmap(AS_PROGRAM, &peyper_state::peyper_map); + m_maincpu->set_addrmap(AS_IO, &peyper_state::peyper_io); + m_maincpu->set_periodic_int(FUNC(peyper_state::irq0_line_hold), attotime::from_hz(1250)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ @@ -631,7 +632,7 @@ MACHINE_CONFIG_START(peyper_state::peyper) kbdc.in_rl_callback().set(FUNC(peyper_state::sw_r)); // kbd RL lines kbdc.in_shift_callback().set_constant(1); // Shift key kbdc.in_ctrl_callback().set_constant(1); -MACHINE_CONFIG_END +} // Not allowed to set up an array all at once, so we have this mess void peyper_state::init_peyper() diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp index 850113517ad..fc4beba17ad 100644 --- a/src/mame/drivers/pg685.cpp +++ b/src/mame/drivers/pg685.cpp @@ -422,11 +422,12 @@ void pg685_state::pg685_module(machine_config &config) MM58167(config, "rtc", XTAL(32'768)); } -MACHINE_CONFIG_START(pg685_state::pg675) +void pg685_state::pg675(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", I8088, XTAL(15'000'000) / 3) - MCFG_DEVICE_PROGRAM_MAP(pg675_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + I8088(config, m_maincpu, XTAL(15'000'000) / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg675_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -437,9 +438,9 @@ MACHINE_CONFIG_START(pg685_state::pg675) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -452,7 +453,7 @@ MACHINE_CONFIG_START(pg685_state::pg675) // devices pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed + I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed // rs232 port @@ -467,14 +468,14 @@ MACHINE_CONFIG_START(pg685_state::pg675) // m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w)); FLOPPY_CONNECTOR(config, "fdc:0", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(pg685_state::pg685) +void pg685_state::pg685(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", V20, XTAL(15'000'000) / 3) - MCFG_DEVICE_PROGRAM_MAP(pg685_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + V20(config, m_maincpu, XTAL(15'000'000) / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -485,9 +486,9 @@ MACHINE_CONFIG_START(pg685_state::pg685) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -501,7 +502,7 @@ MACHINE_CONFIG_START(pg685_state::pg685) pg685_backplane(config); pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, XTAL(12'288'000) / 6) // divider guessed + I8251(config, "mainuart", XTAL(12'288'000) / 6); // divider guessed // rs232 port @@ -519,13 +520,14 @@ MACHINE_CONFIG_START(pg685_state::pg685) // harddisk wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(pg685_state::pg685oua12) +void pg685_state::pg685oua12(machine_config &config) +{ // main cpu - MCFG_DEVICE_ADD("maincpu", I80286, XTAL(20'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(pg685oua12_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mainpic", pic8259_device, inta_cb) + I80286(config, m_maincpu, XTAL(20'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &pg685_state::pg685oua12_mem); + m_maincpu->set_irq_acknowledge_callback("mainpic", FUNC(pic8259_device::inta_cb)); pic8259_device &mainpic(PIC8259(config, "mainpic", 0)); mainpic.out_int_callback().set_inputline(m_maincpu, 0); @@ -536,9 +538,9 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) // ram // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(12288000, 882, 0, 720, 370, 0, 350 ) // not real values - MCFG_SCREEN_UPDATE_DEVICE( "crtc", mc6845_device, screen_update ) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(12288000, 882, 0, 720, 370, 0, 350 ); // not real values + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); mc6845_device &crtc(MC6845(config, "crtc", 12288000)); crtc.set_screen("screen"); @@ -552,7 +554,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) pg685_backplane(config); pg685_module(config); - MCFG_DEVICE_ADD("mainuart", I8251, 12288000 / 6) // wrong + I8251(config, "mainuart", 12288000 / 6); // wrong // rs232 port @@ -569,8 +571,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12) // harddisk wd2010_device& hdc(WD2010(config, "hdc", XTAL(10'000'000) / 2)); // divider guessed hdc.out_intrq_callback().set("mainpic", FUNC(pic8259_device::ir3_w)); - -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp index 188c1103104..2f3ac8a9cf8 100644 --- a/src/mame/drivers/pgm.cpp +++ b/src/mame/drivers/pgm.cpp @@ -490,7 +490,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm_state::pgm_interrupt) { int scanline = param; -// already being generated by MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pgm_state, irq6_line_hold) +// already being generated by m_maincpu->set_vblank_int("screen", FUNC(pgm_state::irq6_line_hold)); // if(scanline == 224) // m_maincpu->set_input_line(6, HOLD_LINE); diff --git a/src/mame/drivers/pgm3.cpp b/src/mame/drivers/pgm3.cpp index 4d3fa198943..ba95a80a902 100644 --- a/src/mame/drivers/pgm3.cpp +++ b/src/mame/drivers/pgm3.cpp @@ -104,25 +104,25 @@ void pgm3_state::machine_reset() { } -MACHINE_CONFIG_START(pgm3_state::pgm3) - +void pgm3_state::pgm3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM9, 800000000) // wrong, see notes at top of driver - MCFG_DEVICE_PROGRAM_MAP(pgm3_map) - MCFG_DEVICE_DISABLE() + ARM9(config, m_maincpu, 800000000); // wrong, see notes at top of driver + m_maincpu->set_addrmap(AS_PROGRAM, &pgm3_state::pgm3_map); + m_maincpu->set_disable(); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(1280, 720) - MCFG_SCREEN_VISIBLE_AREA(0, 1280-1, 0, 720-1) - MCFG_SCREEN_UPDATE_DRIVER(pgm3_state, screen_update_pgm3) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pgm3_state, screen_vblank_pgm3)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(1280, 720); + screen.set_visarea(0, 1280-1, 0, 720-1); + screen.set_screen_update(FUNC(pgm3_state::screen_update_pgm3)); + screen.screen_vblank().set(FUNC(pgm3_state::screen_vblank_pgm3)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD("palette", 0x1000) -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(0x1000); +} ROM_START( kov3hd ) ROM_REGION( 0x04000, "maincpu", ROMREGION_ERASE00 ) diff --git a/src/mame/drivers/photon.cpp b/src/mame/drivers/photon.cpp index a895d38de4c..8dcb71f8453 100644 --- a/src/mame/drivers/photon.cpp +++ b/src/mame/drivers/photon.cpp @@ -214,23 +214,23 @@ uint32_t photon_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, memregion("maincpu")->base()); } -MACHINE_CONFIG_START(photon_state::photon) - +void photon_state::photon(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, 1780000) - MCFG_DEVICE_PROGRAM_MAP(pk8000_mem) - MCFG_DEVICE_IO_MAP(pk8000_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", photon_state, interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(photon_state, irq_callback) + I8080(config, m_maincpu, 1780000); + m_maincpu->set_addrmap(AS_PROGRAM, &photon_state::pk8000_mem); + m_maincpu->set_addrmap(AS_IO, &photon_state::pk8000_io); + m_maincpu->set_vblank_int("screen", FUNC(photon_state::interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(photon_state::irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256+32, 192+32) - MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) - MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256+32, 192+32); + screen.set_visarea(0, 256+32-1, 0, 192+32-1); + screen.set_screen_update(FUNC(photon_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(photon_state::pk8000_palette), 16); @@ -247,7 +247,7 @@ MACHINE_CONFIG_START(photon_state::photon) /* audio hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* Dump was made using custom adaptor, hence it is marked as bad dump. diff --git a/src/mame/drivers/photon2.cpp b/src/mame/drivers/photon2.cpp index 8ee9d4094ba..9d4f207ee6d 100644 --- a/src/mame/drivers/photon2.cpp +++ b/src/mame/drivers/photon2.cpp @@ -358,29 +358,30 @@ void photon2_state::machine_start() save_item(NAME(m_nmi_enable)); } -MACHINE_CONFIG_START(photon2_state::photon2) +void photon2_state::photon2(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3500000) /* 3.5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(spectrum_mem) - MCFG_DEVICE_IO_MAP(spectrum_io) + Z80(config, m_maincpu, 3500000); /* 3.5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &photon2_state::spectrum_mem); + m_maincpu->set_addrmap(AS_IO, &photon2_state::spectrum_io); TIMER(config, "scantimer").configure_scanline(FUNC(photon2_state::spec_interrupt_hack), "screen", 0, 1); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50.08) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) - MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) - MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, photon2_state, screen_vblank_spectrum)) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50.08); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT); + screen.set_visarea(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1); + screen.set_screen_update(FUNC(photon2_state::screen_update_spectrum)); + screen.screen_vblank().set(FUNC(photon2_state::screen_vblank_spectrum)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(photon2_state::photon2_palette), 16); /* sound hardware */ SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/pinball2k.cpp b/src/mame/drivers/pinball2k.cpp index 0488e5687fb..eda9e7d8e0d 100644 --- a/src/mame/drivers/pinball2k.cpp +++ b/src/mame/drivers/pinball2k.cpp @@ -605,10 +605,10 @@ void pinball2k_state::ramdac_map(address_map &map) MACHINE_CONFIG_START(pinball2k_state::mediagx) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MEDIAGX, 166000000) - MCFG_DEVICE_PROGRAM_MAP(mediagx_map) - MCFG_DEVICE_IO_MAP(mediagx_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + MEDIAGX(config, m_maincpu, 166000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pinball2k_state::mediagx_map); + m_maincpu->set_addrmap(AS_IO, &pinball2k_state::mediagx_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -622,14 +622,14 @@ MACHINE_CONFIG_START(pinball2k_state::mediagx) m_ramdac->set_addrmap(0, &pinball2k_state::ramdac_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(pinball2k_state, screen_update_mediagx) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 639, 0, 239); + m_screen->set_screen_update(FUNC(pinball2k_state::screen_update_mediagx)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_cga); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, m_palette).set_entries(256); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); diff --git a/src/mame/drivers/pingpong.cpp b/src/mame/drivers/pingpong.cpp index 8530e42128a..bd86b6567a6 100644 --- a/src/mame/drivers/pingpong.cpp +++ b/src/mame/drivers/pingpong.cpp @@ -448,22 +448,22 @@ static GFXDECODE_START( gfx_pingpong ) GFXDECODE_END -MACHINE_CONFIG_START(pingpong_state::pingpong) - +void pingpong_state::pingpong(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80,18432000/6) /* 3.072 MHz (probably) */ - MCFG_DEVICE_PROGRAM_MAP(pingpong_map) + Z80(config, m_maincpu,18432000/6); /* 3.072 MHz (probably) */ + m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::pingpong_map); TIMER(config, "scantimer").configure_scanline(FUNC(pingpong_state::pingpong_interrupt), "screen", 0, 1); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(456, 262) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(456, 262); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pingpong_state::screen_update_pingpong)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pingpong); PALETTE(config, m_palette, FUNC(pingpong_state::pingpong_palette), 64*4+64*4, 32); @@ -471,19 +471,18 @@ MACHINE_CONFIG_START(pingpong_state::pingpong) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("snsnd", SN76496, 18432000/8) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + SN76496(config, "snsnd", 18432000/8).add_route(ALL_OUTPUTS, "mono", 1.0); +} /* too fast! */ -MACHINE_CONFIG_START(pingpong_state::merlinmm) +void pingpong_state::merlinmm(machine_config &config) +{ pingpong(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(merlinmm_map) + m_maincpu->set_addrmap(AS_PROGRAM, &pingpong_state::merlinmm_map); subdevice("scantimer")->set_callback(FUNC(pingpong_state::merlinmm_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/pinkiri8.cpp b/src/mame/drivers/pinkiri8.cpp index 093e4d149ab..d5ad19d1baa 100644 --- a/src/mame/drivers/pinkiri8.cpp +++ b/src/mame/drivers/pinkiri8.cpp @@ -1106,32 +1106,31 @@ static GFXDECODE_START( gfx_pinkiri8 ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x100 ) GFXDECODE_END -MACHINE_CONFIG_START(pinkiri8_state::pinkiri8) - MCFG_DEVICE_ADD("maincpu",Z180,XTAL(32'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(pinkiri8_map) - MCFG_DEVICE_IO_MAP(pinkiri8_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pinkiri8_state, nmi_line_assert) +void pinkiri8_state::pinkiri8(machine_config &config) +{ + Z180(config, m_maincpu, XTAL(32'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pinkiri8_state::pinkiri8_map); + m_maincpu->set_addrmap(AS_IO, &pinkiri8_state::pinkiri8_io); + m_maincpu->set_vblank_int("screen", FUNC(pinkiri8_state::nmi_line_assert)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 62*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(pinkiri8_state::screen_update_pinkiri8)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pinkiri8); - MCFG_PALETTE_ADD("palette", 0x2000) + PALETTE(config, m_palette).set_entries(0x2000); - - MCFG_DEVICE_ADD("janshivdp", JANSHIVDP, 0) + JANSHIVDP(config, m_vdp, 0); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1056000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5) -MACHINE_CONFIG_END + OKIM6295(config, "oki", 1056000, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.5); // clock frequency & pin 7 not verified +} /*************************************************************************** diff --git a/src/mame/drivers/pirates.cpp b/src/mame/drivers/pirates.cpp index 07595c472c4..9f7a1f31b32 100644 --- a/src/mame/drivers/pirates.cpp +++ b/src/mame/drivers/pirates.cpp @@ -252,30 +252,30 @@ GFXDECODE_END /* Machine Driver + Related bits */ -MACHINE_CONFIG_START(pirates_state::pirates) - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) /* 16mhz */ - MCFG_DEVICE_PROGRAM_MAP(pirates_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pirates_state, irq1_line_hold) +void pirates_state::pirates(machine_config &config) +{ + M68000(config, m_maincpu, 16000000); /* 16mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pirates_state::pirates_map); + m_maincpu->set_vblank_int("screen", FUNC(pirates_state::irq1_line_hold)); EEPROM_93C46_16BIT(config, "eeprom"); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pirates); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(36*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(36*8, 32*8); + screen.set_visarea(0*8, 36*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pirates_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 0x2000); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1333333, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, 1333333, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/piratesh.cpp b/src/mame/drivers/piratesh.cpp index 0dfc7b2a8bb..5933f7d580c 100644 --- a/src/mame/drivers/piratesh.cpp +++ b/src/mame/drivers/piratesh.cpp @@ -616,7 +616,7 @@ void piratesh_state::piratesh(machine_config &config) /* video hardware */ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK); -// MCFG_SCREEN_REFRESH_RATE(60) +// screen.set_refresh_hz(60); screen.set_raw(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223); // TODO screen.set_vblank_time(ATTOSECONDS_IN_USEC(600)); screen.set_size(64*8, 32*8); diff --git a/src/mame/drivers/pitagjr.cpp b/src/mame/drivers/pitagjr.cpp index f2b30986bfc..9c9be7f61b7 100644 --- a/src/mame/drivers/pitagjr.cpp +++ b/src/mame/drivers/pitagjr.cpp @@ -209,22 +209,23 @@ uint32_t pitagjr_state::screen_update(screen_device &screen, bitmap_ind16 &bitma return 0; } -MACHINE_CONFIG_START(pitagjr_state::pitajr) +void pitagjr_state::pitajr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD63705, XTAL(2'000'000)) // probably a m6805-based MCU with internal boot ROM - MCFG_DEVICE_PROGRAM_MAP(pitajr_mem) + HD63705(config, m_maincpu, XTAL(2'000'000)); // probably a m6805-based MCU with internal boot ROM + m_maincpu->set_addrmap(AS_PROGRAM, &pitagjr_state::pitajr_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(pitagjr_state, screen_update) - MCFG_SCREEN_SIZE( 200, 100 ) // FIXME - MCFG_SCREEN_VISIBLE_AREA( 0, 200-1, 0, 100-1 ) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(pitagjr_state::screen_update)); + screen.set_size(200, 100); // FIXME + screen.set_visarea(0, 200-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pitagjr_state::pitagjr_palette), 2); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pk8000.cpp b/src/mame/drivers/pk8000.cpp index d26f7998579..b0a4c204aeb 100644 --- a/src/mame/drivers/pk8000.cpp +++ b/src/mame/drivers/pk8000.cpp @@ -360,22 +360,23 @@ uint32_t pk8000_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap return video_update(screen, bitmap, cliprect, m_ram->pointer()); } -MACHINE_CONFIG_START(pk8000_state::pk8000) +void pk8000_state::pk8000(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, 1780000) - MCFG_DEVICE_PROGRAM_MAP(pk8000_mem) - MCFG_DEVICE_IO_MAP(pk8000_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8000_state, interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(pk8000_state, irq_callback) + I8080(config, m_maincpu, 1780000); + m_maincpu->set_addrmap(AS_PROGRAM, &pk8000_state::pk8000_mem); + m_maincpu->set_addrmap(AS_IO, &pk8000_state::pk8000_io); + m_maincpu->set_vblank_int("screen", FUNC(pk8000_state::interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(pk8000_state::irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256+32, 192+32) - MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) - MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256+32, 192+32); + screen.set_visarea(0, 256+32-1, 0, 192+32-1); + screen.set_screen_update(FUNC(pk8000_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pk8000_state::pk8000_palette), 16); @@ -400,7 +401,7 @@ MACHINE_CONFIG_START(pk8000_state::pk8000) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( vesta ) diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp index f34e5bb292a..734ce7c32a6 100644 --- a/src/mame/drivers/pk8020.cpp +++ b/src/mame/drivers/pk8020.cpp @@ -189,22 +189,23 @@ static void pk8020_floppies(device_slot_interface &device) * 7 floppy */ /* Machine driver */ -MACHINE_CONFIG_START(pk8020_state::pk8020) +void pk8020_state::pk8020(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, 20_MHz_XTAL / 8) - MCFG_DEVICE_PROGRAM_MAP(pk8020_mem) - MCFG_DEVICE_IO_MAP(pk8020_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pk8020_state, pk8020_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259", pic8259_device, inta_cb) + I8080(config, m_maincpu, 20_MHz_XTAL / 8); + m_maincpu->set_addrmap(AS_PROGRAM, &pk8020_state::pk8020_mem); + m_maincpu->set_addrmap(AS_IO, &pk8020_state::pk8020_io); + m_maincpu->set_vblank_int("screen", FUNC(pk8020_state::pk8020_interrupt)); + m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(512, 256); + screen.set_visarea(0, 512-1, 0, 256-1); + screen.set_screen_update(FUNC(pk8020_state::screen_update_pk8020)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_pk8020); PALETTE(config, m_palette, FUNC(pk8020_state::pk8020_palette), 16); @@ -262,7 +263,7 @@ MACHINE_CONFIG_START(pk8020_state::pk8020) /* internal ram */ RAM(config, RAM_TAG).set_default_size("258K").set_default_value(0x00); // 64 + 4*48 + 2 = 258 -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pktgaldx.cpp b/src/mame/drivers/pktgaldx.cpp index 65e659bb4ff..2bbb8596766 100644 --- a/src/mame/drivers/pktgaldx.cpp +++ b/src/mame/drivers/pktgaldx.cpp @@ -338,24 +338,24 @@ void pktgaldx_state::machine_start() { } -MACHINE_CONFIG_START(pktgaldx_state::pktgaldx) - +void pktgaldx_state::pktgaldx(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 28_MHz_XTAL / 2) // The clock input is 14.000MHz on pin 6 - MCFG_DEVICE_PROGRAM_MAP(pktgaldx_map) - MCFG_DEVICE_OPCODES_MAP(decrypted_opcodes_map) + M68000(config, m_maincpu, 28_MHz_XTAL / 2); // The clock input is 14.000MHz on pin 6 + m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldx_map); + m_maincpu->set_addrmap(AS_OPCODES, &pktgaldx_state::decrypted_opcodes_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldx)); + screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w)); + screen.set_palette(m_palette); - PALETTE(config, "palette").set_format(palette_device::xBGR_888, 4096); + PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pktgaldx); @@ -389,31 +389,31 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldx) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) + okim6295_device &oki1(OKIM6295(config, "oki1", 32.22_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)); + oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75); + oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, 32.22_MHz_XTAL / 16, okim6295_device::PIN7_HIGH); + m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} -MACHINE_CONFIG_START(pktgaldx_state::pktgaldb) - +void pktgaldx_state::pktgaldb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 16000000) - MCFG_DEVICE_PROGRAM_MAP(pktgaldb_map) + M68000(config, m_maincpu, 16000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pktgaldx_state::pktgaldb_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pktgaldx_state, vblank_w)) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(pktgaldx_state::screen_update_pktgaldb)); + screen.screen_vblank().set(FUNC(pktgaldx_state::vblank_w)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_888, 4096); @@ -423,14 +423,14 @@ MACHINE_CONFIG_START(pktgaldx_state::pktgaldb) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.75) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.75) + okim6295_device &oki1(OKIM6295(config, "oki1", 32220000/32, okim6295_device::PIN7_HIGH)); + oki1.add_route(ALL_OUTPUTS, "lspeaker", 0.75); + oki1.add_route(ALL_OUTPUTS, "rspeaker", 0.75); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + OKIM6295(config, m_oki2, 32220000/16, okim6295_device::PIN7_HIGH); + m_oki2->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_oki2->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} ROM_START( pktgaldx ) diff --git a/src/mame/drivers/playmark.cpp b/src/mame/drivers/playmark.cpp index 688a8804a9f..e3043157202 100644 --- a/src/mame/drivers/playmark.cpp +++ b/src/mame/drivers/playmark.cpp @@ -1041,12 +1041,12 @@ MACHINE_RESET_MEMBER(playmark_state,playmark) m_dispenser_latch = 0; } -MACHINE_CONFIG_START(playmark_state::bigtwin) - +void playmark_state::bigtwin(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(bigtwin_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwin_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, 12000000); m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1059,13 +1059,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwin) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwin)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwin); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1075,17 +1075,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwin) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::bigtwinb) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::bigtwinb(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(bigtwinb_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::bigtwinb_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1098,13 +1098,13 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_bigtwinb)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_bigtwinb); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1114,17 +1114,17 @@ MACHINE_CONFIG_START(playmark_state::bigtwinb) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::wbeachvl) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::wbeachvl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(wbeachvl_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::wbeachvl_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */ m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // wrong? @@ -1140,13 +1140,13 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_wbeachvl)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_wbeachvl); PALETTE(config, m_palette).set_format(palette_device::RGBx_555, 2048); @@ -1156,17 +1156,17 @@ MACHINE_CONFIG_START(playmark_state::wbeachvl) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::excelsr) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::excelsr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(excelsr_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq2_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::excelsr_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq2_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* 12MHz with internal 4x divisor */ m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); @@ -1179,13 +1179,13 @@ MACHINE_CONFIG_START(playmark_state::excelsr) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 32*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_excelsr)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_excelsr); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1195,17 +1195,17 @@ MACHINE_CONFIG_START(playmark_state::excelsr) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* 1MHz resonator */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::hrdtimes) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* 1MHz resonator */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::hrdtimes(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hrdtimes_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hrdtimes_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1219,13 +1219,13 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hrdtimes); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1235,17 +1235,17 @@ MACHINE_CONFIG_START(playmark_state::hrdtimes) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::hotmind) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::hotmind(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(hotmind_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) // irq 2 and 6 point to the same location on hotmind + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::hotmind_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); // irq 2 and 6 point to the same location on hotmind PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1260,13 +1260,13 @@ MACHINE_CONFIG_START(playmark_state::hotmind) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_hotmind); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1279,17 +1279,17 @@ MACHINE_CONFIG_START(playmark_state::hotmind) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(playmark_state::luckboomh) + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} +void playmark_state::luckboomh(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(24'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(luckboomh_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", playmark_state, irq6_line_hold) + M68000(config, m_maincpu, XTAL(24'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &playmark_state::luckboomh_main_map); + m_maincpu->set_vblank_int("screen", FUNC(playmark_state::irq6_line_hold)); PIC16C57(config, m_audiocpu, XTAL(24'000'000)/2); /* verified on pcb */ // m_audiocpu->write_a().set(FUNC(playmark_state::playmark_oki_banking_w)); // Banking data output but not wired. Port C is wired to the OKI banking instead @@ -1304,13 +1304,13 @@ MACHINE_CONFIG_START(playmark_state::luckboomh) MCFG_MACHINE_RESET_OVERRIDE(playmark_state,playmark) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(playmark_state::screen_update_hrdtimes)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_luckboomh); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 1024); @@ -1323,10 +1323,10 @@ MACHINE_CONFIG_START(playmark_state::luckboomh) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(1'000'000), okim6295_device::PIN7_HIGH) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END + OKIM6295(config, m_oki, XTAL(1'000'000), okim6295_device::PIN7_HIGH); /* verified on pcb */ + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &playmark_state::oki_map); +} /*************************************************************************** diff --git a/src/mame/drivers/plus4.cpp b/src/mame/drivers/plus4.cpp index 9ff154aacdb..95fc4a8b922 100644 --- a/src/mame/drivers/plus4.cpp +++ b/src/mame/drivers/plus4.cpp @@ -837,7 +837,7 @@ void plus4_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( plus4 ) +// machine_config( plus4 ) //------------------------------------------------- void plus4_state::plus4(machine_config &config) @@ -939,7 +939,7 @@ void plus4_state::plus4(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( plus4p ) +// machine_config( plus4p ) //------------------------------------------------- void c16_state::plus4p(machine_config &config) @@ -958,7 +958,7 @@ void c16_state::plus4p(machine_config &config) } //------------------------------------------------- -// MACHINE_CONFIG( plus4n ) +// machine_config( plus4n ) //------------------------------------------------- void c16_state::plus4n(machine_config &config) @@ -978,7 +978,7 @@ void c16_state::plus4n(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( c16n ) +// machine_config( c16n ) //------------------------------------------------- void c16_state::c16n(machine_config &config) @@ -999,7 +999,7 @@ void c16_state::c16n(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( c16p ) +// machine_config( c16p ) //------------------------------------------------- void c16_state::c16p(machine_config &config) @@ -1027,7 +1027,7 @@ void c16_state::c232(machine_config &config) //------------------------------------------------- -// MACHINE_CONFIG( v364 ) +// machine_config( v364 ) //------------------------------------------------- void c16_state::v364(machine_config &config) diff --git a/src/mame/drivers/pmi80.cpp b/src/mame/drivers/pmi80.cpp index 86ace8c1736..93a6f48aa8a 100644 --- a/src/mame/drivers/pmi80.cpp +++ b/src/mame/drivers/pmi80.cpp @@ -168,16 +168,17 @@ void pmi80_state::machine_start() } -MACHINE_CONFIG_START(pmi80_state::pmi80) +void pmi80_state::pmi80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",I8080, XTAL(1'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pmi80_mem) - MCFG_DEVICE_IO_MAP(pmi80_io) + I8080(config, m_maincpu, XTAL(1'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pmi80_state::pmi80_mem); + m_maincpu->set_addrmap(AS_IO, &pmi80_state::pmi80_io); /* video hardware */ config.set_default_layout(layout_pmi80); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pmi80 ) diff --git a/src/mame/drivers/pockchal.cpp b/src/mame/drivers/pockchal.cpp index ec9f541aa11..f0a699cd39d 100644 --- a/src/mame/drivers/pockchal.cpp +++ b/src/mame/drivers/pockchal.cpp @@ -101,23 +101,22 @@ void pockchalv1_state::machine_reset() MACHINE_CONFIG_START(pockchalv1_state::pockchalv1) - /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", TMP90845,8000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(pockchalv1_map) -// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pockchalv1_state, irq0_line_hold) + TMP90845(config, m_maincpu, 8000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &pockchalv1_state::pockchalv1_map); +// m_maincpu->->set_vblank_int("screen", FUNC(pockchalv1_state::irq0_line_hold)); // wrong, it's a b&w / greyscale thing PALETTE(config, "palette").set_format(palette_device::xRGB_444, 0x100).set_endianness(ENDIANNESS_BIG); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) - MCFG_SCREEN_UPDATE_DRIVER(pockchalv1_state, screen_update_pockchalv1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 16, 256-16-1); + screen.set_screen_update(FUNC(pockchalv1_state::screen_update_pockchalv1)); + screen.set_palette("palette"); MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pockchalw_cart") MCFG_GENERIC_EXTENSIONS("bin") @@ -125,7 +124,6 @@ MACHINE_CONFIG_START(pockchalv1_state::pockchalv1) MCFG_GENERIC_MANDATORY SOFTWARE_LIST(config, "pc1_list").set_compatible("pockchalw"); - MACHINE_CONFIG_END diff --git a/src/mame/drivers/pockstat.cpp b/src/mame/drivers/pockstat.cpp index 73792f320ec..f78ee0d9f40 100644 --- a/src/mame/drivers/pockstat.cpp +++ b/src/mame/drivers/pockstat.cpp @@ -981,16 +981,16 @@ DEVICE_IMAGE_LOAD_MEMBER( pockstat_state, pockstat_flash ) MACHINE_CONFIG_START(pockstat_state::pockstat) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM7, DEFAULT_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(pockstat_mem) + ARM7(config, m_maincpu, DEFAULT_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &pockstat_state::pockstat_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(32, 32) - MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1) - MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(32, 32); + screen.set_visarea(0, 32-1, 0, 32-1); + screen.set_screen_update(FUNC(pockstat_state::screen_update_pockstat)); PALETTE(config, "palette", palette_device::MONOCHROME); diff --git a/src/mame/drivers/pofo.cpp b/src/mame/drivers/pofo.cpp index 239e8c3bb56..01a62f67877 100644 --- a/src/mame/drivers/pofo.cpp +++ b/src/mame/drivers/pofo.cpp @@ -1011,23 +1011,24 @@ void portfolio_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( portfolio ) +// machine_config( portfolio ) //------------------------------------------------- -MACHINE_CONFIG_START(portfolio_state::portfolio) +void portfolio_state::portfolio(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(M80C88A_TAG, I8088, XTAL(4'915'200)) - MCFG_DEVICE_PROGRAM_MAP(portfolio_mem) - MCFG_DEVICE_IO_MAP(portfolio_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(portfolio_state,portfolio_int_ack) + I8088(config, m_maincpu, XTAL(4'915'200)); + m_maincpu->set_addrmap(AS_PROGRAM, &portfolio_state::portfolio_mem); + m_maincpu->set_addrmap(AS_IO, &portfolio_state::portfolio_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(portfolio_state::portfolio_int_ack)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DEVICE(HD61830_TAG, hd61830_device, screen_update) - MCFG_SCREEN_SIZE(240, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 64-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(HD61830_TAG, FUNC(hd61830_device::screen_update)); + screen.set_size(240, 64); + screen.set_visarea(0, 240-1, 0, 64-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(portfolio_state::portfolio_palette), 2); @@ -1040,8 +1041,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD(PCD3311T_TAG, PCD3311, XTAL(3'578'640)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + PCD3311(config, m_dtmf, XTAL(3'578'640)).add_route(ALL_OUTPUTS, "mono", 0.25); // devices PORTFOLIO_MEMORY_CARD_SLOT(config, m_ccm, portfolio_memory_cards, nullptr); @@ -1064,7 +1064,7 @@ MACHINE_CONFIG_START(portfolio_state::portfolio) RAM(config, RAM_TAG).set_default_size("128K"); NVRAM(config, "nvram", nvram_device::DEFAULT_RANDOM); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index e7926131184..d7cf7be86f4 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -634,7 +634,8 @@ static INPUT_PORTS_START( poisk1 ) PORT_INCLUDE( poisk1_keyboard_v91 ) INPUT_PORTS_END -MACHINE_CONFIG_START(p1_state::poisk1) +void p1_state::poisk1(machine_config &config) +{ /* basic machine hardware */ I8088(config, m_maincpu, 5000000); m_maincpu->set_addrmap(AS_PROGRAM, &p1_state::poisk1_map); @@ -673,10 +674,10 @@ MACHINE_CONFIG_START(p1_state::poisk1) m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, m_isabus, p1_isa8_cards, "fdc", false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, m_isabus, p1_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, m_isabus, p1_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, m_isabus, p1_isa8_cards, nullptr, false); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); @@ -685,19 +686,18 @@ MACHINE_CONFIG_START(p1_state::poisk1) // SOFTWARE_LIST(config, "cass_list").set_original("poisk1_cass"); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "speaker", SPEAKER_SOUND ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00); - MCFG_SCREEN_ADD( "screen", RASTER ) - MCFG_SCREEN_RAW_PARAMS( XTAL(15'000'000), 912,0,640, 262,0,200 ) - MCFG_SCREEN_UPDATE_DRIVER( p1_state, screen_update ) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(15'000'000), 912,0,640, 262,0,200); + m_screen->set_screen_update(FUNC(p1_state::screen_update)); /* XXX verify palette */ PALETTE(config, m_palette, FUNC(p1_state::p1_palette), CGA_PALETTE_SETS * 16); /* internal ram */ RAM(config, RAM_TAG).set_default_size("512K"); -MACHINE_CONFIG_END +} ROM_START( poisk1 ) ROM_REGION16_LE(0x10000,"bios", 0) diff --git a/src/mame/drivers/pokechmp.cpp b/src/mame/drivers/pokechmp.cpp index 2c2d62c8d2b..11662fdc8c7 100644 --- a/src/mame/drivers/pokechmp.cpp +++ b/src/mame/drivers/pokechmp.cpp @@ -226,8 +226,8 @@ WRITE_LINE_MEMBER(pokechmp_state::sound_irq) m_audiocpu->set_input_line(0, HOLD_LINE); } -MACHINE_CONFIG_START(pokechmp_state::pokechmp) - +void pokechmp_state::pokechmp(machine_config &config) +{ /* basic machine hardware */ M6502(config, m_maincpu, 4_MHz_XTAL/4); m_maincpu->set_addrmap(AS_PROGRAM, &pokechmp_state::pokechmp_map); @@ -254,17 +254,15 @@ MACHINE_CONFIG_START(pokechmp_state::pokechmp) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(4'000'000)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + YM2203(config, "ym1", XTAL(4'000'000)/4).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("ym2", YM3812, XTAL(24'000'000)/16) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM3812(config, "ym2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(24'000'000)/16, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* sound fx */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_DEVICE_ADDRESS_MAP(0, pokechmp_oki_map) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(24'000'000)/16, okim6295_device::PIN7_LOW)); + oki.add_route(ALL_OUTPUTS, "mono", 0.50); /* sound fx */ + oki.add_route(ALL_OUTPUTS, "mono", 0.50); + oki.set_addrmap(0, &pokechmp_state::pokechmp_oki_map); +} void pokechmp_state::init_pokechmp() { diff --git a/src/mame/drivers/poker72.cpp b/src/mame/drivers/poker72.cpp index ff8c55b240a..96522df743a 100644 --- a/src/mame/drivers/poker72.cpp +++ b/src/mame/drivers/poker72.cpp @@ -371,20 +371,21 @@ void poker72_state::machine_reset() membank("bank1")->set_entry(0); } -MACHINE_CONFIG_START(poker72_state::poker72) +void poker72_state::poker72(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,8000000) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(poker72_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poker72_state, irq0_line_hold) + Z80(config, m_maincpu, 8000000); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &poker72_state::poker72_map); + m_maincpu->set_vblank_int("screen", FUNC(poker72_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0, 64*8-1, 0, 32*8-1); + screen.set_screen_update(FUNC(poker72_state::screen_update_poker72)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_poker72); PALETTE(config, m_palette, FUNC(poker72_state::poker72_palette), 0xe00); @@ -395,7 +396,7 @@ MACHINE_CONFIG_START(poker72_state::poker72) ay.port_a_read_callback().set_ioport("SW2"); ay.port_b_read_callback().set_ioport("SW3"); ay.add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp index 13c5914884a..06d9be0e9cf 100644 --- a/src/mame/drivers/poly.cpp +++ b/src/mame/drivers/poly.cpp @@ -248,22 +248,23 @@ static void poly_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(poly_state::poly) +void poly_state::poly(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 12.0576_MHz_XTAL / 3) - MCFG_DEVICE_PROGRAM_MAP(poly_mem) + MC6809(config, m_maincpu, 12.0576_MHz_XTAL / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &poly_state::poly_mem); ADDRESS_MAP_BANK(config, "bankdev").set_map(&poly_state::poly_bank).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000); INPUT_MERGER_ANY_HIGH(config, "irqs").output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE(40 * 12, 24 * 20) - MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1) - MCFG_SCREEN_UPDATE_DRIVER(poly_state, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size(40 * 12, 24 * 20); + screen.set_visarea(0, 40 * 12 - 1, 0, 24 * 20 - 1); + screen.set_screen_update(FUNC(poly_state::screen_update)); SAA5050(config, m_trom[0], 12.0576_MHz_XTAL / 2); m_trom[0]->d_cb().set(FUNC(poly_state::videoram_1_r)); @@ -275,8 +276,7 @@ MACHINE_CONFIG_START(poly_state::poly) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); /* internal ram */ RAM(config, m_ram).set_default_size("128K").set_extra_options("64K"); @@ -342,7 +342,7 @@ MACHINE_CONFIG_START(poly_state::poly) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("POLY1"); -MACHINE_CONFIG_END +} void poly_state::poly2(machine_config &config) diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp index d082c962649..60ea6f60a35 100644 --- a/src/mame/drivers/poly88.cpp +++ b/src/mame/drivers/poly88.cpp @@ -197,20 +197,20 @@ GFXDECODE_END MACHINE_CONFIG_START(poly88_state::poly88) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(16'588'800) / 9) // uses 8224 clock generator - MCFG_DEVICE_PROGRAM_MAP(poly88_mem) - MCFG_DEVICE_IO_MAP(poly88_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poly88_state, poly88_interrupt) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(poly88_state,poly88_irq_callback) + I8080A(config, m_maincpu, XTAL(16'588'800) / 9); // uses 8224 clock generator + m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly88_mem); + m_maincpu->set_addrmap(AS_IO, &poly88_state::poly88_io); + m_maincpu->set_vblank_int("screen", FUNC(poly88_state::poly88_interrupt)); + m_maincpu->set_irq_acknowledge_callback(FUNC(poly88_state::poly88_irq_callback)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(64*10, 16*15) - MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1) - MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(64*10, 16*15); + screen.set_visarea(0, 64*10-1, 0, 16*15-1); + screen.set_screen_update(FUNC(poly88_state::screen_update_poly88)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_poly88); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -234,12 +234,12 @@ MACHINE_CONFIG_START(poly88_state::poly88) MCFG_SNAPSHOT_ADD("snapshot", poly88_state, poly88, "img", attotime::from_seconds(2)) MACHINE_CONFIG_END -MACHINE_CONFIG_START(poly88_state::poly8813) +void poly88_state::poly8813(machine_config &config) +{ poly88(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(poly8813_mem) - MCFG_DEVICE_IO_MAP(poly8813_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &poly88_state::poly8813_mem); + m_maincpu->set_addrmap(AS_IO, &poly88_state::poly8813_io); +} /* ROM definition */ ROM_START( poly88 ) diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp index 276dec717b0..e1c572457b9 100644 --- a/src/mame/drivers/polyplay.cpp +++ b/src/mame/drivers/polyplay.cpp @@ -276,7 +276,8 @@ GFXDECODE_END /* the machine driver */ -MACHINE_CONFIG_START(polyplay_state::polyplay_zre) +void polyplay_state::polyplay_zre(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, POLYPLAY_MAIN_CLOCK / 4); /* UB880D */ m_maincpu->set_daisy_config(daisy_chain_zre); @@ -299,12 +300,12 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre) m_z80pio->out_pb_callback().set(FUNC(polyplay_state::pio_portb_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(polyplay_state::screen_update_polyplay)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_polyplay); PALETTE(config, m_palette, FUNC(polyplay_state::polyplay_palette), 10); @@ -313,7 +314,7 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre) SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker1).add_route(ALL_OUTPUTS, "mono", 0.5); SPEAKER_SOUND(config, m_speaker2).add_route(ALL_OUTPUTS, "mono", 0.5); -MACHINE_CONFIG_END +} void polyplay_state::polyplay_zrepp(machine_config &config) { diff --git a/src/mame/drivers/poolshrk.cpp b/src/mame/drivers/poolshrk.cpp index 35efc9757e1..106d142f315 100644 --- a/src/mame/drivers/poolshrk.cpp +++ b/src/mame/drivers/poolshrk.cpp @@ -216,22 +216,22 @@ void poolshrk_state::poolshrk_palette(palette_device &palette) const } -MACHINE_CONFIG_START(poolshrk_state::poolshrk) - +void poolshrk_state::poolshrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, 11055000 / 8) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(poolshrk_cpu_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", poolshrk_state, irq0_line_assert) + M6800(config, m_maincpu, 11055000 / 8); /* ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &poolshrk_state::poolshrk_cpu_map); + m_maincpu->set_vblank_int("screen", FUNC(poolshrk_state::irq0_line_assert)); WATCHDOG_TIMER(config, m_watchdog); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255) - MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(256, 256); + screen.set_visarea(1, 255, 24, 255); + screen.set_screen_update(FUNC(poolshrk_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_poolshrk); PALETTE(config, m_palette, FUNC(poolshrk_state::poolshrk_palette), 4); @@ -239,9 +239,8 @@ MACHINE_CONFIG_START(poolshrk_state::poolshrk) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("discrete", DISCRETE, poolshrk_discrete) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + DISCRETE(config, m_discrete, poolshrk_discrete).add_route(ALL_OUTPUTS, "mono", 1.0); +} ROM_START( poolshrk ) diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp index 6bc9f9a649c..284134f4ad0 100644 --- a/src/mame/drivers/pooyan.cpp +++ b/src/mame/drivers/pooyan.cpp @@ -193,11 +193,11 @@ void pooyan_state::machine_start() } -MACHINE_CONFIG_START(pooyan_state::pooyan) - +void pooyan_state::pooyan(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/3/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + Z80(config, m_maincpu, MASTER_CLOCK/3/2); + m_maincpu->set_addrmap(AS_PROGRAM, &pooyan_state::main_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // B2 mainlatch.q_out_cb<0>().set(FUNC(pooyan_state::irq_enable_w)); @@ -211,20 +211,20 @@ MACHINE_CONFIG_START(pooyan_state::pooyan) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, pooyan_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pooyan_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(pooyan_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pooyan); PALETTE(config, m_palette, FUNC(pooyan_state::pooyan_palette), 16*16+16*16, 32); /* sound hardware */ TIMEPLT_AUDIO(config, "timeplt_audio"); -MACHINE_CONFIG_END +} /************************************* diff --git a/src/mame/drivers/popobear.cpp b/src/mame/drivers/popobear.cpp index 9739224ef84..672c799b83e 100644 --- a/src/mame/drivers/popobear.cpp +++ b/src/mame/drivers/popobear.cpp @@ -642,22 +642,22 @@ TIMER_DEVICE_CALLBACK_MEMBER(popobear_state::irq) m_maincpu->set_input_line(2, ASSERT_LINE); } -MACHINE_CONFIG_START(popobear_state::popobear) - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(42'000'000)/4) // XTAL CORRECT, DIVISOR GUESSED - MCFG_DEVICE_PROGRAM_MAP(popobear_mem) +void popobear_state::popobear(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(42'000'000)/4); // XTAL CORRECT, DIVISOR GUESSED + m_maincpu->set_addrmap(AS_PROGRAM, &popobear_state::popobear_mem); // levels 2,3,5 look interesting - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", popobear_state, irq5_line_assert) - //MCFG_DEVICE_PERIODIC_INT_DRIVER(popobear_state, irq2_line_assert, 120) + //->set_vblank_int("screen", popobear_state, irq5_line_assert) + //->set_periodic_int(FUNC(popobear_state, irq2_line_assert, 120) TIMER(config, "scantimer").configure_scanline(FUNC(popobear_state::irq), "screen", 0, 1); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - - MCFG_SCREEN_SIZE(128*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 239) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(popobear_state::screen_update)); + screen.set_palette(m_palette); + screen.set_size(128*8, 32*8); + screen.set_visarea(0, 479, 0, 239); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 256*2); @@ -665,12 +665,10 @@ MACHINE_CONFIG_START(popobear_state::popobear) GFXDECODE(config, m_gfxdecode, m_palette, gfx_popobear); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(42'000'000)/16) // XTAL CORRECT, DIVISOR GUESSED - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + YM2413(config, "ymsnd", XTAL(42'000'000)/16).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(42'000'000)/32, okim6295_device::PIN7_LOW) // XTAL CORRECT, DIVISOR GUESSED - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + OKIM6295(config, "oki", XTAL(42'000'000)/32, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // XTAL CORRECT, DIVISOR GUESSED +} ROM_START( popobear ) diff --git a/src/mame/drivers/popper.cpp b/src/mame/drivers/popper.cpp index 6c17179780a..93bd11f34ab 100644 --- a/src/mame/drivers/popper.cpp +++ b/src/mame/drivers/popper.cpp @@ -534,20 +534,21 @@ void popper_state::machine_reset() // MACHINE DEFINTIONS //************************************************************************** -MACHINE_CONFIG_START(popper_state::popper) - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/3/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) +void popper_state::popper(machine_config &config) +{ + Z80(config, m_maincpu, XTAL(18'432'000)/3/2); + m_maincpu->set_addrmap(AS_PROGRAM, &popper_state::main_map); - MCFG_DEVICE_ADD("subcpu", Z80, XTAL(18'432'000)/3/2) - MCFG_DEVICE_PROGRAM_MAP(sub_map) + Z80(config, m_subcpu, XTAL(18'432'000)/3/2); + m_subcpu->set_addrmap(AS_PROGRAM, &popper_state::sub_map); config.m_perfect_cpu_quantum = subtag("maincpu"); // video hardware - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240) - MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(XTAL(18'432'000)/3, 384, 48, 328, 264, 16, 240); + m_screen->set_screen_update(FUNC(popper_state::screen_update)); + m_screen->set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_popper); @@ -559,7 +560,7 @@ MACHINE_CONFIG_START(popper_state::popper) AY8910(config, m_ay[0], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, m_ay[1], XTAL(18'432'000)/3/2/2).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/mame/drivers/portrait.cpp b/src/mame/drivers/portrait.cpp index 385f5720e95..5f0ea95b14e 100644 --- a/src/mame/drivers/portrait.cpp +++ b/src/mame/drivers/portrait.cpp @@ -254,23 +254,24 @@ static GFXDECODE_START( gfx_portrait ) GFXDECODE_END -MACHINE_CONFIG_START(portrait_state::portrait) - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(portrait_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", portrait_state, irq0_line_hold) +void portrait_state::portrait(machine_config &config) +{ + Z80(config, m_maincpu, 4000000); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &portrait_state::portrait_map); + m_maincpu->set_vblank_int("screen", FUNC(portrait_state::irq0_line_hold)); - MCFG_DEVICE_ADD("audiocpu", I8039, 3120000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(portrait_sound_map) + i8039_device &audiocpu(I8039(config, "audiocpu", 3120000)); /* ? */ + audiocpu.set_addrmap(AS_PROGRAM, &portrait_state::portrait_sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1) - MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 64*8); + screen.set_visarea(0*8, 54*8-1, 0*8, 40*8-1); + screen.set_screen_update(FUNC(portrait_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_portrait); PALETTE(config, m_palette, FUNC(portrait_state::portrait_palette), 0x800, 0x40); @@ -281,7 +282,7 @@ MACHINE_CONFIG_START(portrait_state::portrait) GENERIC_LATCH_8(config, "soundlatch"); TMS5200(config, m_tms, 640000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( portrait ) diff --git a/src/mame/drivers/potgoldu.cpp b/src/mame/drivers/potgoldu.cpp index f6e19d70af8..3eb610b779f 100644 --- a/src/mame/drivers/potgoldu.cpp +++ b/src/mame/drivers/potgoldu.cpp @@ -78,8 +78,8 @@ static INPUT_PORTS_START( potgold ) INPUT_PORTS_END -MACHINE_CONFIG_START(potgold_state::potgold) - +void potgold_state::potgold(machine_config &config) +{ /* basic machine hardware */ TMS34010(config, m_maincpu, XTAL(40'000'000)); m_maincpu->set_addrmap(AS_PROGRAM, &potgold_state::potgold_map); @@ -88,13 +88,13 @@ MACHINE_CONFIG_START(potgold_state::potgold) m_maincpu->set_pixels_per_clock(1); m_maincpu->set_scanline_rgb32_callback(FUNC(potgold_state::scanline_update)); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200) - MCFG_SCREEN_UPDATE_DEVICE("maincpu", tms34010_device, tms340x0_rgb32) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(VIDEO_CLOCK/2, 444, 0, 320, 233, 0, 200); + screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_rgb32)); /* sound hardware */ /* YM2413 */ -MACHINE_CONFIG_END +} ROM_START( potgoldu ) ROM_REGION16_LE( 0x400000, "user1", 0 ) /* 34010 code */ diff --git a/src/mame/drivers/powerbal.cpp b/src/mame/drivers/powerbal.cpp index 09cca74a673..d5ae925c83e 100644 --- a/src/mame/drivers/powerbal.cpp +++ b/src/mame/drivers/powerbal.cpp @@ -626,24 +626,24 @@ MACHINE_RESET_MEMBER(powerbal_state,powerbal) configure_oki_banks(); } -MACHINE_CONFIG_START(powerbal_state::powerbal) - +void powerbal_state::powerbal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(powerbal_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::powerbal_main_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold)); MCFG_MACHINE_START_OVERRIDE(powerbal_state,powerbal) MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(128*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512); @@ -653,17 +653,17 @@ MACHINE_CONFIG_START(powerbal_state::powerbal) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(powerbal_state::magicstk) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &powerbal_state::oki_map); +} +void powerbal_state::magicstk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12 MHz */ - MCFG_DEVICE_PROGRAM_MAP(magicstk_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq2_line_hold) + M68000(config, m_maincpu, 12000000); /* 12 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::magicstk_main_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq2_line_hold)); EEPROM_93C46_16BIT(config, "eeprom").default_value(0); @@ -671,13 +671,13 @@ MACHINE_CONFIG_START(powerbal_state::magicstk) MCFG_MACHINE_RESET_OVERRIDE(powerbal_state,powerbal) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(61) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(128*8, 64*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(powerbal_state, screen_update_powerbal) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(61); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(128*8, 64*8); + screen.set_visarea(0*8, 40*8-1, 0*8, 30*8-1); + screen.set_screen_update(FUNC(powerbal_state::screen_update_powerbal)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_powerbal); PALETTE(config, m_palette).set_format(palette_device::RRRRGGGGBBBBRGBx, 512); @@ -687,25 +687,23 @@ MACHINE_CONFIG_START(powerbal_state::magicstk) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1000000, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(powerbal_state::atombjt) + OKIM6295(config, m_oki, 1000000, okim6295_device::PIN7_HIGH); + m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); + m_oki->set_addrmap(0, &powerbal_state::oki_map); +} +void powerbal_state::atombjt(machine_config &config) +{ powerbal(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(atombjt_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", powerbal_state, irq6_line_hold) + m_maincpu->set_addrmap(AS_PROGRAM, &powerbal_state::atombjt_map); + m_maincpu->set_vblank_int("screen", FUNC(powerbal_state::irq6_line_hold)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(512, 256) \ - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) \ + subdevice("screen")->set_size(512, 256); + subdevice("screen")->set_visarea(0*8, 48*8-1, 2*8, 30*8-1); MCFG_VIDEO_START_OVERRIDE(powerbal_state,atombjt) -MACHINE_CONFIG_END +} /* Power Balls diff --git a/src/mame/drivers/powerstack.cpp b/src/mame/drivers/powerstack.cpp index 8f25734b9c3..d5444770d65 100644 --- a/src/mame/drivers/powerstack.cpp +++ b/src/mame/drivers/powerstack.cpp @@ -27,10 +27,11 @@ private: static INPUT_PORTS_START( powerstack ) INPUT_PORTS_END -MACHINE_CONFIG_START(powerstack_state::powerstack) -// MCFG_DEVICE_ADD("maincpu", PPC604, 300'000'000) // PPC604E @ 300MHz -// MCFG_DEVICE_PROGRAM_MAP(mem_map) -MACHINE_CONFIG_END +void powerstack_state::powerstack(machine_config &config) +{ +// ppc604_device &maincpu(PPC604(config, "maincpu", 300'000'000)); // PPC604E @ 300MHz +// maincpu.set_addrmap(AS_PROGRAM, &powerstack_state::mem_map); +} ROM_START( powerstk ) ROM_REGION( 0x80000, "roms", 0 ) diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp index 22386146fac..21f0d21d743 100644 --- a/src/mame/drivers/pp01.cpp +++ b/src/mame/drivers/pp01.cpp @@ -199,20 +199,21 @@ static INPUT_PORTS_START( pp01 ) INPUT_PORTS_END /* Machine driver */ -MACHINE_CONFIG_START(pp01_state::pp01) +void pp01_state::pp01(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, 2000000) - MCFG_DEVICE_PROGRAM_MAP(pp01_mem) - MCFG_DEVICE_IO_MAP(pp01_io) + I8080(config, m_maincpu, 2000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pp01_state::pp01_mem); + m_maincpu->set_addrmap(AS_IO, &pp01_state::pp01_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(pp01_state::screen_update_pp01)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(pp01_state::pp01_palette), 8); @@ -222,7 +223,7 @@ MACHINE_CONFIG_START(pp01_state::pp01) //WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); /* Devices */ - MCFG_DEVICE_ADD("uart", I8251, 0) + I8251(config, "uart", 0); // when rts and dtr are both high, the uart is being used for cassette operations PIT8253(config, m_pit, 0); @@ -243,7 +244,7 @@ MACHINE_CONFIG_START(pp01_state::pp01) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/ppmast93.cpp b/src/mame/drivers/ppmast93.cpp index 8e4a1a95396..5294c66c52f 100644 --- a/src/mame/drivers/ppmast93.cpp +++ b/src/mame/drivers/ppmast93.cpp @@ -373,26 +373,27 @@ uint32_t ppmast93_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -MACHINE_CONFIG_START(ppmast93_state::ppmast93) +void ppmast93_state::ppmast93(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,5000000) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu1_map) - MCFG_DEVICE_IO_MAP(ppmast93_cpu1_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", ppmast93_state, irq0_line_hold) + Z80(config, m_maincpu, 5000000); /* 5 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu1_map); + m_maincpu->set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu1_io); + m_maincpu->set_vblank_int("screen", FUNC(ppmast93_state::irq0_line_hold)); - MCFG_DEVICE_ADD("sub", Z80,5000000) /* 5 MHz */ - MCFG_DEVICE_PROGRAM_MAP(ppmast93_cpu2_map) - MCFG_DEVICE_IO_MAP(ppmast93_cpu2_io) - MCFG_DEVICE_PERIODIC_INT_DRIVER(ppmast93_state, irq0_line_hold, 8000) + z80_device &sub(Z80(config, "sub", 5000000)); /* 5 MHz */ + sub.set_addrmap(AS_PROGRAM, &ppmast93_state::ppmast93_cpu2_map); + sub.set_addrmap(AS_IO, &ppmast93_state::ppmast93_cpu2_io); + sub.set_periodic_int(FUNC(ppmast93_state::irq0_line_hold), attotime::from_hz(8000)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(55) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(55); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(ppmast93_state::screen_update)); + screen.set_palette("palette"); GFXDECODE(config, m_gfxdecode, "palette", gfx_ppmast93); @@ -403,14 +404,13 @@ MACHINE_CONFIG_START(ppmast93_state::ppmast93) GENERIC_LATCH_8(config, "soundlatch"); - MCFG_DEVICE_ADD("ymsnd", YM2413, 5000000/2) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0) + YM2413(config, "ymsnd", 5000000/2).add_route(ALL_OUTPUTS, "speaker", 1.0); DAC_8BIT_R2R(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.3); // unknown DAC voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( ppmast93 ) ROM_REGION( 0x20000, "maincpu", 0 ) diff --git a/src/mame/drivers/prestige.cpp b/src/mame/drivers/prestige.cpp index de06047e6b3..eb89d393fc1 100644 --- a/src/mame/drivers/prestige.cpp +++ b/src/mame/drivers/prestige.cpp @@ -743,23 +743,24 @@ TIMER_DEVICE_CALLBACK_MEMBER(prestige_state::irq_timer) m_maincpu->set_input_line(0, ASSERT_LINE); } -MACHINE_CONFIG_START(prestige_state::prestige_base) +void prestige_state::prestige_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000)) // Z84C008 - MCFG_DEVICE_PROGRAM_MAP(prestige_mem) - MCFG_DEVICE_IO_MAP(prestige_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(prestige_state,prestige_int_ack) + Z80(config, m_maincpu, XTAL(8'000'000)); // Z84C008 + m_maincpu->set_addrmap(AS_PROGRAM, &prestige_state::prestige_mem); + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); + m_maincpu->set_irq_acknowledge_callback(FUNC(prestige_state::prestige_int_ack)); TIMER(config, "irq_timer").configure_periodic(FUNC(prestige_state::irq_timer), attotime::from_hz(200)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_1bpp) - MCFG_SCREEN_SIZE( 240, 100 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 240-1, 0, 100-1 ) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(prestige_state::screen_update_1bpp)); + screen.set_size(240, 100); + screen.set_visarea(0, 240-1, 0, 100-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(prestige_state::prestige_palette), 2); @@ -768,32 +769,32 @@ MACHINE_CONFIG_START(prestige_state::prestige_base) /* internal ram */ RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("64K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(prestige_state::glcolor) +void prestige_state::glcolor(machine_config &config) +{ prestige_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(glcolor_io) + m_maincpu->set_addrmap(AS_IO, &prestige_state::glcolor_io); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(prestige_state, screen_update_2bpp) - MCFG_SCREEN_SIZE( 160, 80 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 160-1, 0, 80-1 ) + screen_device &screen(*subdevice("screen")); + screen.set_screen_update(FUNC(prestige_state::screen_update_2bpp)); + screen.set_size(160, 80); + screen.set_visarea(0, 160-1, 0, 80-1); subdevice("palette")->set_entries(4).set_init(FUNC(prestige_state::glcolor_palette)); SOFTWARE_LIST(config, "cart_list").set_original("glcolor"); SOFTWARE_LIST(config, "snotec_cart").set_compatible("snotec"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(prestige_state::glmcolor) +void prestige_state::glmcolor(machine_config &config) +{ glcolor(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(prestige_io) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &prestige_state::prestige_io); +} void prestige_state::snotec(machine_config &config) { diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index 5fc7a9b154a..01d473632fe 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -248,19 +248,19 @@ static const struct CassetteOptions primo_cassette_options = { MACHINE_CONFIG_START(primo_state::primoa32) /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 ) - MCFG_DEVICE_PROGRAM_MAP( primo32_mem) - MCFG_DEVICE_IO_MAP( primoa_port) + Z80(config, m_maincpu, 2500000); + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo32_mem); + m_maincpu->set_addrmap(AS_IO, &primo_state::primoa_port); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( 50 ) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE( 256, 192 ) - MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) - MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, primo_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(256, 192); + m_screen->set_visarea(0, 256-1, 0, 192-1); + m_screen->set_screen_update(FUNC(primo_state::screen_update_primo)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(primo_state::vblank_irq)); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -286,49 +286,49 @@ MACHINE_CONFIG_START(primo_state::primoa32) GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(primo_state::primoa48) +void primo_state::primoa48(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo48_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem); +} -MACHINE_CONFIG_START(primo_state::primoa64) +void primo_state::primoa64(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo64_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem); +} -MACHINE_CONFIG_START(primo_state::primob32) +void primo_state::primob32(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob48) +void primo_state::primob48(machine_config &config) +{ primoa48(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob64) +void primo_state::primob64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primoc64) +void primo_state::primoc64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} ROM_START( primoa32 ) ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp index 2c9f533ecd2..3391c782c4c 100644 --- a/src/mame/drivers/prof180x.cpp +++ b/src/mame/drivers/prof180x.cpp @@ -238,19 +238,20 @@ void prof180x_state::machine_reset() } } -MACHINE_CONFIG_START(prof180x_state::prof180x) +void prof180x_state::prof180x(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(HD64180_TAG, Z80, XTAL(9'216'000)) - MCFG_DEVICE_PROGRAM_MAP(prof180x_mem) - MCFG_DEVICE_IO_MAP(prof180x_io) + z80_device &maincpu(Z80(config, HD64180_TAG, XTAL(9'216'000))); + maincpu.set_addrmap(AS_PROGRAM, &prof180x_state::prof180x_mem); + maincpu.set_addrmap(AS_IO, &prof180x_state::prof180x_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_UPDATE_DRIVER(prof180x_state, screen_update) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(prof180x_state::screen_update)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); /* devices */ UPD765A(config, FDC9268_TAG, 8'000'000, false, true); @@ -271,7 +272,7 @@ MACHINE_CONFIG_START(prof180x_state::prof180x) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("prof180"); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp index 9d2cdef58fe..21426bd4a5e 100644 --- a/src/mame/drivers/prof80.cpp +++ b/src/mame/drivers/prof80.cpp @@ -447,7 +447,7 @@ void prof80_state::machine_start() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( prof80 ) +// machine_config( prof80 ) //------------------------------------------------- void prof80_state::prof80(machine_config &config) diff --git a/src/mame/drivers/progolf.cpp b/src/mame/drivers/progolf.cpp index a3ff28598fa..b40a1b5018e 100644 --- a/src/mame/drivers/progolf.cpp +++ b/src/mame/drivers/progolf.cpp @@ -418,13 +418,14 @@ void progolf_state::progolf_palette(palette_device &palette) const } } -MACHINE_CONFIG_START(progolf_state::progolf) +void progolf_state::progolf(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", DECO_222, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu) + DECO_222(config, m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); - MCFG_DEVICE_ADD("audiocpu", M6502, 500000) - MCFG_DEVICE_PROGRAM_MAP(sound_cpu) + M6502(config, m_audiocpu, 500000); + m_audiocpu->set_addrmap(AS_PROGRAM, &progolf_state::sound_cpu); config.m_perfect_cpu_quantum = subtag("maincpu"); @@ -433,13 +434,13 @@ MACHINE_CONFIG_START(progolf_state::progolf) soundlatch.set_separate_acknowledge(true); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(57) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(57); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(3072)); + screen.set_size(256, 256); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(progolf_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_progolf); PALETTE(config, m_palette, FUNC(progolf_state::progolf_palette), 32 * 3); @@ -455,14 +456,15 @@ MACHINE_CONFIG_START(progolf_state::progolf) AY8910(config, "ay1", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); AY8910(config, "ay2", 12000000/8).add_route(ALL_OUTPUTS, "mono", 0.23); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(progolf_state::progolfa) +void progolf_state::progolfa(machine_config &config) +{ progolf(config); - config.device_remove("maincpu"); /* different encrypted cpu to progolf */ - MCFG_DEVICE_ADD("maincpu", DECO_CPU6, 3000000/2) /* guess, 3 Mhz makes the game to behave worse? */ - MCFG_DEVICE_PROGRAM_MAP(main_cpu) -MACHINE_CONFIG_END + /* different encrypted cpu to progolf */ + DECO_CPU6(config.replace(), m_maincpu, 3000000/2); /* guess, 3 Mhz makes the game to behave worse? */ + m_maincpu->set_addrmap(AS_PROGRAM, &progolf_state::main_cpu); +} ROM_START( progolf ) diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp index dc99f66cf9a..fbdd9ecf67c 100644 --- a/src/mame/drivers/proteus.cpp +++ b/src/mame/drivers/proteus.cpp @@ -321,14 +321,15 @@ static void proteus_floppies(device_slot_interface &device) } -MACHINE_CONFIG_START(proteus_state::proteus) +void proteus_state::proteus(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", MC6809, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(proteus_6809_mem) + MC6809(config, m_maincpu, 4_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &proteus_state::proteus_6809_mem); - MCFG_DEVICE_ADD("z80", Z80, 4_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(proteus_z80_mem) - MCFG_DEVICE_IO_MAP(proteus_z80_io) + Z80(config, m_z80, 4_MHz_XTAL); + m_z80->set_addrmap(AS_PROGRAM, &proteus_state::proteus_z80_mem); + m_z80->set_addrmap(AS_IO, &proteus_state::proteus_z80_io); INPUT_MERGER_ANY_HIGH(config, m_irqs); m_irqs->output_handler().set_inputline(m_maincpu, M6809_IRQ_LINE); @@ -413,7 +414,7 @@ MACHINE_CONFIG_START(proteus_state::proteus) /* software lists */ SOFTWARE_LIST(config, "flop_list").set_original("poly_flop").set_filter("PROTEUS"); -MACHINE_CONFIG_END +} ROM_START(proteus) diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index 5ffeabee34a..c18892408bf 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -380,19 +380,20 @@ void proteus3_state::machine_reset() Machine Drivers ******************************************************************************/ -MACHINE_CONFIG_START(proteus3_state::proteus3) +void proteus3_state::proteus3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6800, XTAL(3'579'545)) /* Divided by 4 internally */ - MCFG_DEVICE_PROGRAM_MAP(proteus3_mem) + M6800(config, m_maincpu, XTAL(3'579'545)); /* Divided by 4 internally */ + m_maincpu->set_addrmap(AS_PROGRAM, &proteus3_state::proteus3_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(200)) - MCFG_SCREEN_SIZE(64*8, 16*12) - MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*12-1) - MCFG_SCREEN_UPDATE_DRIVER(proteus3_state, screen_update_proteus3) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(200)); + screen.set_size(64*8, 16*12); + screen.set_visarea(0, 64*8-1, 0, 16*12-1); + screen.set_screen_update(FUNC(proteus3_state::screen_update_proteus3)); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_proteus3); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -442,7 +443,7 @@ MACHINE_CONFIG_START(proteus3_state::proteus3) m_brg->out_f<13>().set(FUNC(proteus3_state::write_f13_clock)); m_brg->out_f<14>().set(FUNC(proteus3_state::write_f14_clock)); m_brg->out_f<15>().set(FUNC(proteus3_state::write_f15_clock)); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/pse.cpp b/src/mame/drivers/pse.cpp index c6a1511ea3a..7dfb6a595b2 100644 --- a/src/mame/drivers/pse.cpp +++ b/src/mame/drivers/pse.cpp @@ -99,11 +99,11 @@ void pse_state::video_start() { } -MACHINE_CONFIG_START(pse_state::pse) - +void pse_state::pse(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(pse) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_pse); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -113,7 +113,7 @@ MACHINE_CONFIG_START(pse_state::pse) m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL); m_video->set_fieldcount(1); m_video->set_threshold(0.30); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp index c6316f16a6f..ae92011d2a4 100644 --- a/src/mame/drivers/psion.cpp +++ b/src/mame/drivers/psion.cpp @@ -569,18 +569,19 @@ static GFXDECODE_START( gfx_psion ) GFXDECODE_END /* basic configuration for 2 lines display */ -MACHINE_CONFIG_START(psion_state::psion_2lines) +void psion_state::psion_2lines(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD63701, 980000) // should be HD6303 at 0.98MHz + HD63701(config, m_maincpu, 980000); // should be HD6303 at 0.98MHz /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update) - MCFG_SCREEN_SIZE(6*16, 9*2) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 9*2-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update("hd44780", FUNC(hd44780_device::screen_update)); + screen.set_size(6*16, 9*2); + screen.set_visarea(0, 6*16-1, 0, 9*2-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(psion_state::psion_palette), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_psion); @@ -603,76 +604,75 @@ MACHINE_CONFIG_START(psion_state::psion_2lines) /* Software lists */ SOFTWARE_LIST(config, "pack_list").set_original("psion2"); -MACHINE_CONFIG_END +} /* basic configuration for 4 lines display */ -MACHINE_CONFIG_START(psion_state::psion_4lines) +void psion_state::psion_4lines(machine_config &config) +{ psion_2lines(config); /* video hardware */ - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(6*20, 9*4) - MCFG_SCREEN_VISIBLE_AREA(0, 6*20-1, 0, 9*4-1) + subdevice("screen")->set_size(6*20, 9*4); + subdevice("screen")->set_visarea(0, 6*20-1, 0, 9*4-1); m_lcdc->set_lcd_size(4, 20); m_lcdc->set_pixel_update_cb(FUNC(psion_state::lz_pixel_update), this); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion1_state::psion1) +void psion1_state::psion1(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psion1_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion1_state::psion1_mem); subdevice("nmi_timer")->set_start_delay(attotime::from_seconds(1)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_SIZE(6*16, 1*8) - MCFG_SCREEN_VISIBLE_AREA(0, 6*16-1, 0, 8*1-1) + subdevice("screen")->set_size(6*16, 1*8); + subdevice("screen")->set_visarea(0, 6*16-1, 0, 8*1-1); m_lcdc->set_lcd_size(1, 16); m_lcdc->set_pixel_update_cb(FUNC(psion1_state::psion1_pixel_update), this); /* Software lists */ SOFTWARE_LIST(config.replace(), "pack_list").set_original("psion1"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion_state::psioncm) +void psion_state::psioncm(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psioncm_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psioncm_mem); +} -MACHINE_CONFIG_START(psion_state::psionla) +void psion_state::psionla(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionla_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionla_mem); +} -MACHINE_CONFIG_START(psion_state::psionlam) +void psion_state::psionlam(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionlam_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlam_mem); +} -MACHINE_CONFIG_START(psion_state::psionp350) +void psion_state::psionp350(machine_config &config) +{ psion_2lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionp350_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionp350_mem); NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(psion_state::psionlz) +void psion_state::psionlz(machine_config &config) +{ psion_4lines(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(psionlz_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &psion_state::psionlz_mem); NVRAM(config, "nvram3", nvram_device::DEFAULT_ALL_0); // paged RAM -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/pturn.cpp b/src/mame/drivers/pturn.cpp index 4bec5d24a90..14d50a76a92 100644 --- a/src/mame/drivers/pturn.cpp +++ b/src/mame/drivers/pturn.cpp @@ -517,14 +517,15 @@ void pturn_state::machine_reset() m_nmi_sub = false; } -MACHINE_CONFIG_START(pturn_state::pturn) - MCFG_DEVICE_ADD("maincpu", Z80, 12000000/3) - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pturn_state, main_intgen) +void pturn_state::pturn(machine_config &config) +{ + Z80(config, m_maincpu, 12000000/3); + m_maincpu->set_addrmap(AS_PROGRAM, &pturn_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(pturn_state::main_intgen)); - MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/3) - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(pturn_state, sub_intgen, 3*60) + Z80(config, m_audiocpu, 12000000/3); + m_audiocpu->set_addrmap(AS_PROGRAM, &pturn_state::sub_map); + m_audiocpu->set_periodic_int(FUNC(pturn_state::sub_intgen), attotime::from_hz(3*60)); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(pturn_state::flip_w)); @@ -535,13 +536,13 @@ MACHINE_CONFIG_START(pturn_state::pturn) mainlatch.q_out_cb<5>().set(FUNC(pturn_state::fgbank_w)); mainlatch.q_out_cb<6>().set_nop(); // toggles frequently during gameplay - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(pturn_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 0x100); @@ -555,7 +556,7 @@ MACHINE_CONFIG_START(pturn_state::pturn) AY8910(config, "ay1", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25); AY8910(config, "ay2", 2000000).add_route(ALL_OUTPUTS, "mono", 0.25); -MACHINE_CONFIG_END +} ROM_START( pturn ) diff --git a/src/mame/drivers/puckpkmn.cpp b/src/mame/drivers/puckpkmn.cpp index 52680f21141..23a81639696 100644 --- a/src/mame/drivers/puckpkmn.cpp +++ b/src/mame/drivers/puckpkmn.cpp @@ -278,36 +278,34 @@ void md_boot_state::puckpkmna_map(address_map &map) map(0x70001c, 0x70001d).r(FUNC(md_boot_state::puckpkmna_70001c_r)); } -MACHINE_CONFIG_START(md_boot_state::puckpkmn) +void md_boot_state::puckpkmn(machine_config &config) +{ md_ntsc(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(puckpkmn_map) + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmn_map); MCFG_MACHINE_START_OVERRIDE(md_boot_state, md_bootleg) config.device_remove("genesis_snd_z80"); - MCFG_DEVICE_ADD("oki", OKIM6295, XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker",0.25) -MACHINE_CONFIG_END + okim6295_device &oki(OKIM6295(config, "oki", XTAL(4'000'000) / 4, okim6295_device::PIN7_HIGH)); + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.25); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.25); +} -MACHINE_CONFIG_START(md_boot_state::puckpkmna) +void md_boot_state::puckpkmna(machine_config &config) +{ puckpkmn(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(puckpkmna_map) + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::puckpkmna_map); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(md_boot_state::jzth) +void md_boot_state::jzth(machine_config &config) +{ puckpkmn(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(jzth_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &md_boot_state::jzth_map); +} /* Genie's Hardware (contains no real sega parts) */ diff --git a/src/mame/drivers/punchout.cpp b/src/mame/drivers/punchout.cpp index aeb98cd8d66..b9faf70cad0 100644 --- a/src/mame/drivers/punchout.cpp +++ b/src/mame/drivers/punchout.cpp @@ -622,15 +622,15 @@ MACHINE_RESET_MEMBER(punchout_state, spnchout) } -MACHINE_CONFIG_START(punchout_state::punchout) - +void punchout_state::punchout(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000)/2) - MCFG_DEVICE_PROGRAM_MAP(punchout_map) - MCFG_DEVICE_IO_MAP(punchout_io_map) + Z80(config, m_maincpu, XTAL(8'000'000)/2); + m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_map); + m_maincpu->set_addrmap(AS_IO, &punchout_state::punchout_io_map); - MCFG_DEVICE_ADD("audiocpu", N2A03, NTSC_APU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(punchout_sound_map) + N2A03(config, m_audiocpu, NTSC_APU_CLOCK); + m_audiocpu->set_addrmap(AS_PROGRAM, &punchout_state::punchout_sound_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -659,13 +659,13 @@ MACHINE_CONFIG_START(punchout_state::punchout) top.screen_vblank().set(FUNC(punchout_state::vblank_irq)); top.screen_vblank().append_inputline(m_audiocpu, INPUT_LINE_NMI); - MCFG_SCREEN_ADD("bottom", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom) - MCFG_SCREEN_PALETTE("palette") + screen_device &bottom(SCREEN(config, "bottom", SCREEN_TYPE_RASTER)); + bottom.set_refresh_hz(60); + bottom.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + bottom.set_size(32*8, 32*8); + bottom.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + bottom.set_screen_update(FUNC(punchout_state::screen_update_punchout_bottom)); + bottom.set_palette(m_palette); /* sound hardware */ // FIXME: this makes no sense - "lspeaker" on left and "mono" on right, with nothing routed to "mono" @@ -675,43 +675,41 @@ MACHINE_CONFIG_START(punchout_state::punchout) GENERIC_LATCH_8(config, "soundlatch"); GENERIC_LATCH_8(config, "soundlatch2"); - MCFG_DEVICE_ADD("vlm", VLM5030, N2A03_NTSC_XTAL/6) - MCFG_DEVICE_ADDRESS_MAP(0, punchout_vlm_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, N2A03_NTSC_XTAL/6); + m_vlm->set_addrmap(0, &punchout_state::punchout_vlm_map); + m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.50); +} -MACHINE_CONFIG_START(punchout_state::spnchout) +void punchout_state::spnchout(machine_config &config) +{ punchout(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(spnchout_io_map) + m_maincpu->set_addrmap(AS_IO, &punchout_state::spnchout_io_map); RP5C01(config, m_rtc, 0); // OSCIN -> Vcc m_rtc->remove_battery(); RP5H01(config, m_rp5h01, 0); MCFG_MACHINE_RESET_OVERRIDE(punchout_state, spnchout) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(punchout_state::armwrest) +void punchout_state::armwrest(machine_config &config) +{ punchout(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(armwrest_map) + m_maincpu->set_addrmap(AS_PROGRAM, &punchout_state::armwrest_map); /* video hardware */ m_gfxdecode->set_info(gfx_armwrest); MCFG_VIDEO_START_OVERRIDE(punchout_state, armwrest) - MCFG_SCREEN_MODIFY("top") - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top) - MCFG_SCREEN_MODIFY("bottom") - MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom) -MACHINE_CONFIG_END + subdevice("top")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_top)); + subdevice("bottom")->set_screen_update(FUNC(punchout_state::screen_update_armwrest_bottom)); +} diff --git a/src/mame/drivers/pv1000.cpp b/src/mame/drivers/pv1000.cpp index 7676a9120b0..abc184e8645 100644 --- a/src/mame/drivers/pv1000.cpp +++ b/src/mame/drivers/pv1000.cpp @@ -177,12 +177,12 @@ private: required_device m_gfxdecode; required_device m_screen; required_device m_palette; - void pv1000(address_map &map); + void pv1000_mem(address_map &map); void pv1000_io(address_map &map); }; -void pv1000_state::pv1000(address_map &map) +void pv1000_state::pv1000_mem(address_map &map) { //AM_RANGE(0x0000, 0x7fff) // mapped by the cartslot map(0xb800, 0xbbff).ram().share("videoram"); @@ -441,11 +441,9 @@ GFXDECODE_END MACHINE_CONFIG_START(pv1000_state::pv1000) - - MCFG_DEVICE_ADD( "maincpu", Z80, 17897725/5 ) - MCFG_DEVICE_PROGRAM_MAP( pv1000 ) - MCFG_DEVICE_IO_MAP( pv1000_io ) - + Z80(config, m_maincpu, 17897725/5); + m_maincpu->set_addrmap(AS_PROGRAM, &pv1000_state::pv1000_mem); + m_maincpu->set_addrmap(AS_IO, &pv1000_state::pv1000_io); /* D65010G031 - Video & sound chip */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/pv2000.cpp b/src/mame/drivers/pv2000.cpp index 21824601056..d0a0b8bc410 100644 --- a/src/mame/drivers/pv2000.cpp +++ b/src/mame/drivers/pv2000.cpp @@ -387,11 +387,10 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart ) /* Machine Drivers */ MACHINE_CONFIG_START(pv2000_state::pv2000) - // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'159'090)/2) // 3.579545 MHz - MCFG_DEVICE_PROGRAM_MAP(pv2000_map) - MCFG_DEVICE_IO_MAP(pv2000_io_map) + Z80(config, m_maincpu, XTAL(7'159'090)/2); // 3.579545 MHz + m_maincpu->set_addrmap(AS_PROGRAM, &pv2000_state::pv2000_map); + m_maincpu->set_addrmap(AS_IO, &pv2000_state::pv2000_io_map); // video hardware tms9928a_device &vdp(TMS9928A(config, "tms9928a", XTAL(10'738'635))); @@ -403,8 +402,7 @@ MACHINE_CONFIG_START(pv2000_state::pv2000) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("sn76489a", SN76489A, XTAL(7'159'090)/2) /* 3.579545 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) + SN76489A(config, "sn76489a", XTAL(7'159'090)/2).add_route(ALL_OUTPUTS, "mono", 1.00); /* 3.579545 MHz */ WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25); diff --git a/src/mame/drivers/pv9234.cpp b/src/mame/drivers/pv9234.cpp index a3ff1a54d85..39cb02f1cac 100644 --- a/src/mame/drivers/pv9234.cpp +++ b/src/mame/drivers/pv9234.cpp @@ -149,23 +149,23 @@ uint32_t pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16 return 0; } -MACHINE_CONFIG_START(pv9234_state::pv9234) +void pv9234_state::pv9234(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", ARM7, 4915000) //probably a more powerful clone. - MCFG_DEVICE_PROGRAM_MAP(pv9234_map) - + ARM7(config, m_maincpu, 4915000); //probably a more powerful clone. + m_maincpu->set_addrmap(AS_PROGRAM, &pv9234_state::pv9234_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + screen.set_screen_update(FUNC(pv9234_state::screen_update_pv9234)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( pv9234 ) diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp index f77c46c2ec5..2c9d76c2c62 100644 --- a/src/mame/drivers/pwrview.cpp +++ b/src/mame/drivers/pwrview.cpp @@ -404,15 +404,16 @@ static void pwrview_floppies(device_slot_interface &device) device.option_add("525dd", FLOPPY_525_DD); } -MACHINE_CONFIG_START(pwrview_state::pwrview) - MCFG_DEVICE_ADD("maincpu", I80186, XTAL(16'000'000)) - MCFG_DEVICE_PROGRAM_MAP(pwrview_map) - MCFG_DEVICE_OPCODES_MAP(pwrview_fetch_map) - MCFG_DEVICE_IO_MAP(pwrview_io) +void pwrview_state::pwrview(machine_config &config) +{ + I80186(config, m_maincpu, XTAL(16'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &pwrview_state::pwrview_map); + m_maincpu->set_addrmap(AS_OPCODES, &pwrview_state::pwrview_fetch_map); + m_maincpu->set_addrmap(AS_IO, &pwrview_state::pwrview_io); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960) // clock unknown - MCFG_SCREEN_UPDATE_DEVICE("crtc", hd6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(64'000'000)/8, 480, 0, 384, 1040, 0, 960); // clock unknown + screen.set_screen_update("crtc", FUNC(hd6845_device::screen_update)); PIT8253(config, m_pit, 0); m_pit->set_clk<0>(XTAL(16'000'000)/16); // clocks unknown, fix above when found @@ -435,7 +436,7 @@ MACHINE_CONFIG_START(pwrview_state::pwrview) crtc.set_update_row_callback(FUNC(pwrview_state::update_row), this); ADDRESS_MAP_BANK(config, "bios_bank").set_map(&pwrview_state::bios_bank).set_options(ENDIANNESS_LITTLE, 16, 17, 0x8000); -MACHINE_CONFIG_END +} ROM_START(pwrview) ROM_REGION(0x8000, "bios", 0) diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp index 8a2e6c879ef..66f62a566cb 100644 --- a/src/mame/drivers/px4.cpp +++ b/src/mame/drivers/px4.cpp @@ -1485,19 +1485,20 @@ void px4p_state::px4p_palette(palette_device &palette) const // MACHINE DRIVERS //************************************************************************** -MACHINE_CONFIG_START(px4_state::px4) +void px4_state::px4(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'372'800) / 2) // uPD70008 - MCFG_DEVICE_PROGRAM_MAP(px4_mem) - MCFG_DEVICE_IO_MAP(px4_io) + Z80(config, m_z80, XTAL(7'372'800) / 2); // uPD70008 + m_z80->set_addrmap(AS_PROGRAM, &px4_state::px4_mem); + m_z80->set_addrmap(AS_IO, &px4_state::px4_io); // video hardware - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_SIZE(240, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) - MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_size(240, 64); + screen.set_visarea(0, 239, 0, 63); + screen.set_screen_update(FUNC(px4_state::screen_update_px4)); + screen.set_palette("palette"); config.set_default_layout(layout_px4); @@ -1541,25 +1542,25 @@ MACHINE_CONFIG_START(px4_state::px4) m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w)); // rom capsules - MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart") - MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px4_cart") + GENERIC_CARTSLOT(config, m_caps1, generic_plain_slot, "px4_cart"); + GENERIC_CARTSLOT(config, m_caps2, generic_plain_slot, "px4_cart"); // software list SOFTWARE_LIST(config, "cart_list").set_original("px4_cart"); SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(px4p_state::px4p) +void px4p_state::px4p(machine_config &config) +{ px4(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(px4p_io) + m_z80->set_addrmap(AS_IO, &px4p_state::px4p_io); NVRAM(config, "rdnvram", nvram_device::DEFAULT_ALL_0); subdevice("palette")->set_init(FUNC(px4p_state::px4p_palette)); - MCFG_GENERIC_CARTSLOT_ADD("ramdisk_socket", generic_plain_slot, "px4_cart") -MACHINE_CONFIG_END + GENERIC_CARTSLOT(config, m_rdsocket, generic_plain_slot, "px4_cart"); +} //************************************************************************** diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp index 581003b512d..73e4213b248 100644 --- a/src/mame/drivers/px8.cpp +++ b/src/mame/drivers/px8.cpp @@ -737,31 +737,32 @@ void px8_state::machine_reset() MACHINE DRIVERS ***************************************************************************/ -MACHINE_CONFIG_START(px8_state::px8) +void px8_state::px8(machine_config &config) +{ /* main cpu (uPD70008) */ - MCFG_DEVICE_ADD(UPD70008_TAG, Z80, XTAL_CR1 / 4) /* 2.45 MHz */ - MCFG_DEVICE_PROGRAM_MAP(px8_mem) - MCFG_DEVICE_IO_MAP(px8_io) + Z80(config, m_maincpu, XTAL_CR1 / 4); /* 2.45 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &px8_state::px8_mem); + m_maincpu->set_addrmap(AS_IO, &px8_state::px8_io); /* slave cpu (HD6303) */ - MCFG_DEVICE_ADD(HD6303_TAG, M6803, XTAL_CR1 / 4) /* 614 kHz */ - MCFG_DEVICE_PROGRAM_MAP(px8_slave_mem) - MCFG_DEVICE_DISABLE() + m6803_cpu_device &slave(M6803(config, HD6303_TAG, XTAL_CR1 / 4)); /* 614 kHz */ + slave.set_addrmap(AS_PROGRAM, &px8_state::px8_slave_mem); + slave.set_disable(); /* sub CPU (uPD7508) */ -// MCFG_DEVICE_ADD(UPD7508_TAG, UPD7508, 200000) /* 200 kHz */ -// MCFG_DEVICE_IO_MAP(px8_sub_io) -// MCFG_DEVICE_DISABLE() +// upd7508_device &sub(UPD7508(config, UPD7508_TAG, 200000)); /* 200 kHz */ +// sub.set_addrmap(AS_IO, &px8_state::px8_sub_io); +// sub.set_disable(); /* video hardware */ config.set_default_layout(layout_px8); - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(72) - MCFG_SCREEN_UPDATE_DRIVER(px8_state, screen_update) - MCFG_SCREEN_SIZE(480, 64) - MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 63) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(72); + screen.set_screen_update(FUNC(px8_state::screen_update)); + screen.set_size(480, 64); + screen.set_visarea(0, 479, 0, 63); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_px8); PALETTE(config, "palette", FUNC(px8_state::px8_palette), 2); @@ -771,14 +772,12 @@ MACHINE_CONFIG_START(px8_state::px8) WAVE(config, "wave", m_cassette).add_route(0, "mono", 0.25); /* cartridge */ - MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px8_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, "capsule1", generic_plain_slot, "px8_cart", "bin,rom"); - MCFG_GENERIC_CARTSLOT_ADD("capsule2", generic_plain_slot, "px8_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, "capsule2", generic_plain_slot, "px8_cart", "bin,rom"); /* devices */ - MCFG_DEVICE_ADD(I8251_TAG, I8251, 0) + I8251(config, I8251_TAG, 0); CASSETTE(config, m_cassette); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); @@ -789,7 +788,7 @@ MACHINE_CONFIG_START(px8_state::px8) // software SOFTWARE_LIST(config, "cart_list").set_original("px8_cart"); SOFTWARE_LIST(config, "epson_cpm_list").set_original("epson_cpm"); -MACHINE_CONFIG_END +} /*************************************************************************** ROMS diff --git a/src/mame/drivers/pzletime.cpp b/src/mame/drivers/pzletime.cpp index 53a3015f514..0366ad0a56d 100644 --- a/src/mame/drivers/pzletime.cpp +++ b/src/mame/drivers/pzletime.cpp @@ -334,21 +334,21 @@ void pzletime_state::machine_reset() m_ticket = 0; } -MACHINE_CONFIG_START(pzletime_state::pzletime) - +void pzletime_state::pzletime(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000,10000000) - MCFG_DEVICE_PROGRAM_MAP(pzletime_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", pzletime_state, irq4_line_hold) + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pzletime_state::pzletime_map); + m_maincpu->set_vblank_int("screen", FUNC(pzletime_state::irq4_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + m_screen->set_size(64*8, 32*8); + m_screen->set_visarea(0*8, 48*8-1, 0*8, 28*8-1); + m_screen->set_screen_update(FUNC(pzletime_state::screen_update_pzletime)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_pzletime); PALETTE(config, m_palette, FUNC(pzletime_state::pzletime_palette)); @@ -360,7 +360,7 @@ MACHINE_CONFIG_START(pzletime_state::pzletime) SPEAKER(config, "mono").front_center(); OKIM6295(config, m_oki, 937500, okim6295_device::PIN7_HIGH); //freq & pin7 taken from stlforce m_oki->add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp index 2a822268a68..d7c00923d23 100644 --- a/src/mame/drivers/ql.cpp +++ b/src/mame/drivers/ql.cpp @@ -895,13 +895,14 @@ void ql_state::machine_reset() //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( ql ) +// machine_config( ql ) //------------------------------------------------- -MACHINE_CONFIG_START(ql_state::ql) +void ql_state::ql(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(m_maincpu, M68008, X1/2) - MCFG_DEVICE_PROGRAM_MAP(ql_mem) + M68008(config, m_maincpu, X1/2); + m_maincpu->set_addrmap(AS_PROGRAM, &ql_state::ql_mem); I8749(config, m_ipc, X4); m_ipc->set_addrmap(AS_IO, &ql_state::ipc_io); @@ -912,12 +913,12 @@ MACHINE_CONFIG_START(ql_state::ql) m_ipc->bus_in_cb().set(FUNC(ql_state::ipc_bus_r)); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(50.08) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate - MCFG_SCREEN_UPDATE_DEVICE(ZX8301_TAG, zx8301_device, screen_update) - MCFG_SCREEN_SIZE(960, 312) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50.08); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate + screen.set_screen_update(ZX8301_TAG, FUNC(zx8301_device::screen_update)); + screen.set_size(960, 312); + screen.set_visarea(0, 512-1, 0, 256-1); // sound hardware SPEAKER(config, "mono").front_center(); @@ -971,25 +972,26 @@ MACHINE_CONFIG_START(ql_state::ql) // internal ram RAM(config, m_ram).set_default_size("128K"); -MACHINE_CONFIG_END +} //------------------------------------------------- -// MACHINE_CONFIG( ql_ntsc ) +// machine_config( ql_ntsc ) //------------------------------------------------- -MACHINE_CONFIG_START(ql_state::ql_ntsc) +void ql_state::ql_ntsc(machine_config &config) +{ ql(config); // video hardware - MCFG_SCREEN_MODIFY(SCREEN_TAG) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(960, 262) - MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) -MACHINE_CONFIG_END + screen_device &screen(*subdevice(SCREEN_TAG)); + screen.set_refresh_hz(60); + screen.set_size(960, 262); + screen.set_visarea(0, 512-1, 0, 256-1); + } //------------------------------------------------- -// MACHINE_CONFIG( opd ) +// machine_config( opd ) //------------------------------------------------- void ql_state::opd(machine_config &config) @@ -1002,7 +1004,7 @@ void ql_state::opd(machine_config &config) /* //------------------------------------------------- -// MACHINE_CONFIG( megaopd ) +// machine_config( megaopd ) //------------------------------------------------- void ql_state::megaopd(machine_config &config) diff --git a/src/mame/drivers/quakeat.cpp b/src/mame/drivers/quakeat.cpp index e7738bcf74d..5b575462c74 100644 --- a/src/mame/drivers/quakeat.cpp +++ b/src/mame/drivers/quakeat.cpp @@ -124,27 +124,27 @@ void quakeat_state::machine_start() } /*************************************************************/ -MACHINE_CONFIG_START(quakeat_state::quake) +void quakeat_state::quake(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", PENTIUM2, 233000000) /* Pentium II, 233MHz */ - MCFG_DEVICE_PROGRAM_MAP(quake_map) - MCFG_DEVICE_IO_MAP(quake_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM2(config, m_maincpu, 233000000); /* Pentium II, 233MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &quakeat_state::quake_map); + m_maincpu->set_addrmap(AS_IO, &quakeat_state::quake_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(quakeat_state::screen_update_quake)); + screen.set_palette("palette"); - MCFG_PALETTE_ADD("palette", 0x100) - -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(0x100); +} ROM_START(quake) diff --git a/src/mame/drivers/queen.cpp b/src/mame/drivers/queen.cpp index ff1e9cf2af0..2d4e875db57 100644 --- a/src/mame/drivers/queen.cpp +++ b/src/mame/drivers/queen.cpp @@ -283,10 +283,10 @@ void queen_state::machine_reset() MACHINE_CONFIG_START(queen_state::queen) - MCFG_DEVICE_ADD("maincpu", PENTIUM3, 533000000/16) // Celeron or Pentium 3, 533 Mhz - MCFG_DEVICE_PROGRAM_MAP(queen_map) - MCFG_DEVICE_IO_MAP(queen_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + PENTIUM3(config, m_maincpu, 533000000/16); // Celeron or Pentium 3, 533 Mhz + m_maincpu->set_addrmap(AS_PROGRAM, &queen_state::queen_map); + m_maincpu->set_addrmap(AS_IO, &queen_state::queen_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); diff --git a/src/mame/drivers/quizdna.cpp b/src/mame/drivers/quizdna.cpp index 18ed31d6aae..f4ed0324cc1 100644 --- a/src/mame/drivers/quizdna.cpp +++ b/src/mame/drivers/quizdna.cpp @@ -440,25 +440,25 @@ void quizdna_state::machine_start() } -MACHINE_CONFIG_START(quizdna_state::quizdna) - +void quizdna_state::quizdna(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MCLK/2) /* 8.000 MHz */ - MCFG_DEVICE_PROGRAM_MAP(quizdna_map) - MCFG_DEVICE_IO_MAP(quizdna_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizdna_state, irq0_line_hold) + Z80(config, m_maincpu, MCLK/2); /* 8.000 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::quizdna_map); + m_maincpu->set_addrmap(AS_IO, &quizdna_state::quizdna_io_map); + m_maincpu->set_vblank_int("screen", FUNC(quizdna_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(64*8, 32*8); + screen.set_visarea(8*8, 56*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(quizdna_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_quizdna); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); /* sound hardware */ @@ -472,30 +472,27 @@ MACHINE_CONFIG_START(quizdna_state::quizdna) ymsnd.add_route(2, "mono", 0.10); ymsnd.add_route(3, "mono", 0.40); - MCFG_DEVICE_ADD("oki", OKIM6295, (MCLK/1024)*132, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + OKIM6295(config, "oki", (MCLK/1024)*132, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 0.30); // clock frequency & pin 7 not verified +} -MACHINE_CONFIG_START(quizdna_state::gakupara) +void quizdna_state::gakupara(machine_config &config) +{ quizdna(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(gakupara_io_map) + m_maincpu->set_addrmap(AS_IO, &quizdna_state::gakupara_io_map); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(quizdna_state::gekiretu) +void quizdna_state::gekiretu(machine_config &config) +{ quizdna(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(gekiretu_map) - MCFG_DEVICE_IO_MAP(gekiretu_io_map) - -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &quizdna_state::gekiretu_map); + m_maincpu->set_addrmap(AS_IO, &quizdna_state::gekiretu_io_map); +} /****************************************************************************/ diff --git a/src/mame/drivers/quizo.cpp b/src/mame/drivers/quizo.cpp index 25843af8f95..4ff533680ee 100644 --- a/src/mame/drivers/quizo.cpp +++ b/src/mame/drivers/quizo.cpp @@ -217,29 +217,29 @@ static INPUT_PORTS_START( quizo ) PORT_DIPSETTING( 0x80, DEF_STR( On ) ) INPUT_PORTS_END -MACHINE_CONFIG_START(quizo_state::quizo) +void quizo_state::quizo(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,XTAL1/2) - MCFG_DEVICE_PROGRAM_MAP(memmap) - MCFG_DEVICE_IO_MAP(portmap) - - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizo_state, irq0_line_hold) + Z80(config, m_maincpu, XTAL1/2); + m_maincpu->set_addrmap(AS_PROGRAM, &quizo_state::memmap); + m_maincpu->set_addrmap(AS_IO, &quizo_state::portmap); + m_maincpu->set_vblank_int("screen", FUNC(quizo_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(320, 200) - MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1) - MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(320, 200); + screen.set_visarea(0*8, 320-1, 0*8, 200-1); + screen.set_screen_update(FUNC(quizo_state::screen_update)); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(quizo_state::quizo_palette), 16); /* sound hardware */ SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", XTAL2 / 16).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( quizo ) diff --git a/src/mame/drivers/quizpani.cpp b/src/mame/drivers/quizpani.cpp index 2e694e4cfeb..d9431d663ff 100644 --- a/src/mame/drivers/quizpani.cpp +++ b/src/mame/drivers/quizpani.cpp @@ -195,32 +195,31 @@ static GFXDECODE_START( gfx_quizpani ) GFXDECODE_END -MACHINE_CONFIG_START(quizpani_state::quizpani) - MCFG_DEVICE_ADD("maincpu", M68000, 10000000) - MCFG_DEVICE_PROGRAM_MAP(quizpani_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", quizpani_state, irq4_line_hold) - MCFG_DEVICE_PERIODIC_INT_DRIVER(quizpani_state, irq1_line_hold, 164) // music tempo +void quizpani_state::quizpani(machine_config &config) +{ + M68000(config, m_maincpu, 10000000); + m_maincpu->set_addrmap(AS_PROGRAM, &quizpani_state::quizpani_map); + m_maincpu->set_vblank_int("screen", FUNC(quizpani_state::irq4_line_hold)); + m_maincpu->set_periodic_int(FUNC(quizpani_state::irq1_line_hold), attotime::from_hz(164)); // music tempo GFXDECODE(config, m_gfxdecode, "palette", gfx_quizpani); PALETTE(config, "palette").set_format(palette_device::RRRRGGGGBBBBRGBx, 0x200); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 48*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(quizpani_state::screen_update)); + screen.set_palette("palette"); SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 16000000/4, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + OKIM6295(config, "oki", 16000000/4, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); nmk112_device &nmk112(NMK112(config, "nmk112", 0)); nmk112.set_rom0_tag("oki"); -MACHINE_CONFIG_END +} ROM_START( quizpani ) ROM_REGION( 0x340000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/qvt70.cpp b/src/mame/drivers/qvt70.cpp index 28843e0e806..1af2ab9274d 100644 --- a/src/mame/drivers/qvt70.cpp +++ b/src/mame/drivers/qvt70.cpp @@ -32,10 +32,11 @@ void qvt70_state::mem_map(address_map &map) static INPUT_PORTS_START( qvt70 ) INPUT_PORTS_END -MACHINE_CONFIG_START(qvt70_state::qvt70) - MCFG_DEVICE_ADD("maincpu", Z80, 2'000'000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) -MACHINE_CONFIG_END +void qvt70_state::qvt70(machine_config &config) +{ + Z80(config, m_maincpu, 2'000'000); + m_maincpu->set_addrmap(AS_PROGRAM, &qvt70_state::mem_map); +} /************************************************************************************************************** diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index 009917ce16c..03df6686f96 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -723,10 +723,10 @@ static void keyboard(device_slot_interface &device) MACHINE_CONFIG_START(qx10_state::qx10) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, MAIN_CLK / 4) - MCFG_DEVICE_PROGRAM_MAP(qx10_mem) - MCFG_DEVICE_IO_MAP(qx10_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) + Z80(config, m_maincpu, MAIN_CLK / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &qx10_state::qx10_mem); + m_maincpu->set_addrmap(AS_IO, &qx10_state::qx10_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_master", FUNC(pic8259_device::inta_cb)); /* video hardware */ SCREEN(config, m_screen, SCREEN_TYPE_RASTER); diff --git a/src/mame/drivers/r2dtank.cpp b/src/mame/drivers/r2dtank.cpp index 49463a87a4f..dff5a7cfa5a 100644 --- a/src/mame/drivers/r2dtank.cpp +++ b/src/mame/drivers/r2dtank.cpp @@ -445,19 +445,20 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(r2dtank_state::r2dtank) - MCFG_DEVICE_ADD("maincpu", MC6809, MAIN_CPU_MASTER_CLOCK / 4) // divider guessed - MCFG_DEVICE_PROGRAM_MAP(r2dtank_main_map) +void r2dtank_state::r2dtank(machine_config &config) +{ + MC6809(config, m_maincpu, MAIN_CPU_MASTER_CLOCK / 4); // divider guessed + m_maincpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_main_map); - MCFG_DEVICE_ADD("audiocpu", M6802, 3.579545_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(r2dtank_audio_map) + M6802(config, m_audiocpu, 3.579545_MHz_XTAL); + m_audiocpu->set_addrmap(AS_PROGRAM, &r2dtank_state::r2dtank_audio_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224) - MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(PIXEL_CLOCK, 360, 0, 256, 276, 0, 224); + screen.set_screen_update("crtc", FUNC(mc6845_device::screen_update)); PALETTE(config, m_palette, palette_device::BGR_3BIT); @@ -507,8 +508,7 @@ MACHINE_CONFIG_START(r2dtank_state::r2dtank) m_ay2->port_a_read_callback().set_ioport("IN1"); m_ay2->port_b_read_callback().set_ioport("DSWA"); m_ay2->add_route(ALL_OUTPUTS, "mono", 0.25); - -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/rad_eu3a05.cpp b/src/mame/drivers/rad_eu3a05.cpp index a89910c246a..4c9c33be6b3 100644 --- a/src/mame/drivers/rad_eu3a05.cpp +++ b/src/mame/drivers/rad_eu3a05.cpp @@ -1146,25 +1146,25 @@ INTERRUPT_GEN_MEMBER(radica_eu3a05_state::interrupt) */ } -MACHINE_CONFIG_START(radica_eu3a05_state::radicasi) - +void radica_eu3a05_state::radicasi(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'281'370)/2) // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown. - MCFG_DEVICE_PROGRAM_MAP(radicasi_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a05_state, interrupt) + M6502(config, m_maincpu, XTAL(21'281'370)/2); // Tetris has a XTAL(21'281'370), not confirmed on Space Invaders, actual CPU clock unknown. + m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a05_state::radicasi_map); + m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a05_state::interrupt)); ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a05_state::radicasi_bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a05_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_screen_update(FUNC(radica_eu3a05_state::screen_update)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_palette(m_palette); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, m_palette).set_entries(256); GFXDECODE(config, m_gfxdecode, m_palette, gfx_radicasi_fake); @@ -1176,7 +1176,7 @@ MACHINE_CONFIG_START(radica_eu3a05_state::radicasi) radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000)); sound.space_read_callback().set(FUNC(radica_eu3a05_state::read_full_space)); sound.add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START( rad_tetr ) diff --git a/src/mame/drivers/rad_eu3a14.cpp b/src/mame/drivers/rad_eu3a14.cpp index fed73d6c6fa..7b0c664f2e4 100644 --- a/src/mame/drivers/rad_eu3a14.cpp +++ b/src/mame/drivers/rad_eu3a14.cpp @@ -1366,49 +1366,49 @@ GFXDECODE_END -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14) +void radica_eu3a14_state::radica_eu3a14(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M6502,XTAL(21'477'272)/2) // marked as 21'477'270 - MCFG_DEVICE_PROGRAM_MAP(radica_eu3a14_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", radica_eu3a14_state, interrupt) + M6502(config, m_maincpu, XTAL(21'477'272)/2); // marked as 21'477'270 + m_maincpu->set_addrmap(AS_PROGRAM, &radica_eu3a14_state::radica_eu3a14_map); + m_maincpu->set_vblank_int("screen", FUNC(radica_eu3a14_state::interrupt)); ADDRESS_MAP_BANK(config, "bank").set_map(&radica_eu3a14_state::bank_map).set_options(ENDIANNESS_LITTLE, 8, 24, 0x8000); GFXDECODE(config, m_gfxdecode, m_palette, gfx_helper); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_UPDATE_DRIVER(radica_eu3a14_state, screen_update) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_screen_update(FUNC(radica_eu3a14_state::screen_update)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 28*8-1); + screen.set_palette(m_palette); - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 512) + PALETTE(config, m_palette).set_entries(512); /* sound hardware */ SPEAKER(config, "mono").front_center(); radica6502_sound_device &sound(RADICA6502_SOUND(config, "6ch_sound", 8000)); sound.space_read_callback().set(FUNC(radica_eu3a14_state::read_full_space)); sound.add_route(ALL_OUTPUTS, "mono", 1.0); +} -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14_adc) +void radica_eu3a14_state::radica_eu3a14_adc(machine_config &config) +{ radica_eu3a14(config); TIMER(config, "scantimer").configure_scanline(FUNC(radica_eu3a14_state::scanline_cb), "screen", 0, 1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radica_eu3a14_state::radica_eu3a14p) // TODO, clocks differ too, what are they on PAL? +void radica_eu3a14_state::radica_eu3a14p(machine_config &config) // TODO, clocks differ too, what are they on PAL? +{ radica_eu3a14(config); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_REFRESH_RATE(50) -MACHINE_CONFIG_END + subdevice("screen")->set_refresh_hz(50); +} void radica_eu3a14_state::init_rad_gtg() diff --git a/src/mame/drivers/radio86.cpp b/src/mame/drivers/radio86.cpp index 005c981a7a5..c66612c34f2 100644 --- a/src/mame/drivers/radio86.cpp +++ b/src/mame/drivers/radio86.cpp @@ -517,81 +517,80 @@ void radio86_state::kr03(machine_config &config) m_ppi8255_1->out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); } -MACHINE_CONFIG_START(radio86_state::radio16) +void radio86_state::radio16(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86_16_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86_16_mem); +} -MACHINE_CONFIG_START(radio86_state::radiorom) +void radio86_state::radiorom(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86rom_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86rom_mem); I8255(config, m_ppi8255_2); m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86rom_romdisk_porta_r)); m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w)); m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w)); - MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "radio86_cart") - MCFG_GENERIC_EXTENSIONS("bin,rom") + GENERIC_CARTSLOT(config, m_cart, generic_plain_slot, "radio86_cart", "bin,rom"); SOFTWARE_LIST(config, "cart_list").set_original("radio86_cart"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::radioram) +void radio86_state::radioram(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(radio86ram_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::radio86ram_mem); I8255(config, m_ppi8255_2); m_ppi8255_2->in_pa_callback().set(FUNC(radio86_state::radio86ram_romdisk_porta_r)); m_ppi8255_2->out_pb_callback().set(FUNC(radio86_state::radio86_romdisk_portb_w)); m_ppi8255_2->out_pc_callback().set(FUNC(radio86_state::radio86_romdisk_portc_w)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::rk7007) +void radio86_state::rk7007(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(rk7007_io) + m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io); i8255_device &ms7007(I8255(config, "ms7007")); ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2)); ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2)); ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r)); ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::rk700716) +void radio86_state::rk700716(machine_config &config) +{ radio16(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(rk7007_io) + m_maincpu->set_addrmap(AS_IO, &radio86_state::rk7007_io); i8255_device &ms7007(I8255(config, "ms7007")); ms7007.out_pa_callback().set(FUNC(radio86_state::radio86_8255_porta_w2)); ms7007.in_pb_callback().set(FUNC(radio86_state::radio86_8255_portb_r2)); ms7007.in_pc_callback().set(FUNC(radio86_state::rk7007_8255_portc_r)); ms7007.out_pc_callback().set(FUNC(radio86_state::radio86_8255_portc_w2)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(radio86_state::mikron2) +void radio86_state::mikron2(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mikron2_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::mikron2_mem); +} -MACHINE_CONFIG_START(radio86_state::impuls03) +void radio86_state::impuls03(machine_config &config) +{ radio86(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(impuls03_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &radio86_state::impuls03_mem); +} /* ROM definition */ ROM_START( radio86 ) diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index 9a42b6f3c1f..f4757a0a466 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3197,25 +3197,25 @@ void rainbow_state::upd7220_map(address_map &map) map(0x00000, 0x3ffff).rw(FUNC(rainbow_state::vram_r), FUNC(rainbow_state::vram_w)).share("vram"); } -MACHINE_CONFIG_START(rainbow_state::rainbow) +void rainbow_state::rainbow(machine_config &config) +{ config.set_default_layout(layout_rainbow); /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8088, 24.0734_MHz_XTAL / 5) // approximately 4.815 MHz - MCFG_DEVICE_PROGRAM_MAP(rainbow8088_map) - MCFG_DEVICE_IO_MAP(rainbow8088_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(rainbow_state, irq_callback) + I8088(config, m_i8088, 24.0734_MHz_XTAL / 5); // approximately 4.815 MHz + m_i8088->set_addrmap(AS_PROGRAM, &rainbow_state::rainbow8088_map); + m_i8088->set_addrmap(AS_IO, &rainbow_state::rainbow8088_io); + m_i8088->set_irq_acknowledge_callback(FUNC(rainbow_state::irq_callback)); - MCFG_DEVICE_ADD("subcpu", Z80, 24.0734_MHz_XTAL / 6) - MCFG_DEVICE_PROGRAM_MAP(rainbowz80_mem) - MCFG_DEVICE_IO_MAP(rainbowz80_io) + Z80(config, m_z80, 24.0734_MHz_XTAL / 6); + m_z80->set_addrmap(AS_PROGRAM, &rainbow_state::rainbowz80_mem); + m_z80->set_addrmap(AS_IO, &rainbow_state::rainbowz80_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240) // ~NTSC compatible video timing (?) - - MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow) - MCFG_SCREEN_PALETTE("vt100_video:palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(24.0734_MHz_XTAL / 6, 442, 0, 400, 264, 0, 240); // ~NTSC compatible video timing (?) + screen.set_screen_update(FUNC(rainbow_state::screen_update_rainbow)); + screen.set_palette("vt100_video:palette"); GFXDECODE(config, "gfxdecode", "vt100_video:palette", gfx_rainbow); RAINBOW_VIDEO(config, m_crtc, 24.0734_MHz_XTAL); @@ -3233,19 +3233,19 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) m_hgdc->set_display_pixels(FUNC(rainbow_state::hgdc_display_pixels)); m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen. - MCFG_PALETTE_ADD("palette2", 32) + PALETTE(config, m_palette2).set_entries(32); - MCFG_SCREEN_ADD("screen2", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE) + SCREEN(config, m_screen2, SCREEN_TYPE_RASTER); + m_screen2->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK | VIDEO_ALWAYS_UPDATE); // VR241 color monitor is specified for 20 MHz bandwidth ( 60 Hz / 15.72 kHz horizontal rate ) // - sufficient for 800 x 240 non-interlaced at 60 Hz (non interlaced). - //MCFG_SCREEN_RAW_PARAMS(31188000 / 2 , 992, 0, 800, 262, 0, 240) + //m_screen2->set_raw(31188000 / 2 , 992, 0, 800, 262, 0, 240); // Alternate configuration: - MCFG_SCREEN_RAW_PARAMS(31188000 / 4 , 496, 0, 400, 262, 0, 240) + m_screen2->set_raw(31188000 / 4 , 496, 0, 400, 262, 0, 240); - MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) + m_screen2->set_screen_update("upd7220", FUNC(upd7220_device::screen_update)); FD1793(config, m_fdc, 24.0734_MHz_XTAL / 24); // no separate 1 Mhz quartz FLOPPY_CONNECTOR(config, FD1793_TAG ":0", rainbow_floppies, "525qd", rainbow_state::floppy_formats); @@ -3277,18 +3277,14 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (VCC = complete) m_hdc->in_tk000_callback().set_constant(1); // TRACK 00 signal (= from drive) - MCFG_HARDDISK_ADD("decharddisk1") + HARDDISK(config, "decharddisk1"); /// ******************************** / HARD DISK CONTROLLER **************************************** - MCFG_DEVICE_ADD("corvus", CORVUS_HDC, 0) - MCFG_HARDDISK_ADD("harddisk1") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk2") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk3") - MCFG_HARDDISK_INTERFACE("corvus_hdd") - MCFG_HARDDISK_ADD("harddisk4") - MCFG_HARDDISK_INTERFACE("corvus_hdd") + CORVUS_HDC(config, m_corvus_hdc, 0); + HARDDISK(config, "harddisk1", "corvus_hdd"); + HARDDISK(config, "harddisk2", "corvus_hdd"); + HARDDISK(config, "harddisk3", "corvus_hdd"); + HARDDISK(config, "harddisk4", "corvus_hdd"); DS1315(config, m_rtc, 0); // DS1315 (ClikClok for DEC-100 B) * OPTIONAL * @@ -3335,7 +3331,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) TIMER(config, "motor").configure_periodic(FUNC(rainbow_state::hd_motor_tick), attotime::from_hz(60)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); -MACHINE_CONFIG_END +} //---------------------------------------------------------------------------------------- // 'Rainbow 100-A' (system module 70-19974-00, PSU H7842-A) diff --git a/src/mame/drivers/rampart.cpp b/src/mame/drivers/rampart.cpp index 87f7f01474a..4d414967a9a 100644 --- a/src/mame/drivers/rampart.cpp +++ b/src/mame/drivers/rampart.cpp @@ -338,11 +338,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(rampart_state::rampart) - +void rampart_state::rampart(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rampart_state::main_map); SLAPSTIC(config, m_slapstic_device, 118, true); @@ -357,24 +357,22 @@ MACHINE_CONFIG_START(rampart_state::rampart) ATARI_MOTION_OBJECTS(config, m_mob, 0, m_screen, rampart_state::s_mob_config); m_mob->set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses an SOS-2 chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rampart_state, video_int_write_line)) + m_screen->set_raw(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240); + m_screen->set_screen_update(FUNC(rampart_state::screen_update_rampart)); + m_screen->set_palette("palette"); + m_screen->screen_vblank().set(FUNC(rampart_state::video_int_write_line)); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60) + OKIM6295(config, m_oki, MASTER_CLOCK/4/3, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 0.60); - MCFG_DEVICE_ADD("ymsnd", YM2413, MASTER_CLOCK/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, m_ym2413, MASTER_CLOCK/4).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/ramtek.cpp b/src/mame/drivers/ramtek.cpp index b939c83ce5e..b87e632ee69 100644 --- a/src/mame/drivers/ramtek.cpp +++ b/src/mame/drivers/ramtek.cpp @@ -110,11 +110,11 @@ void ramtek_state::video_start() { } -MACHINE_CONFIG_START(ramtek_state::ramtek) - +void ramtek_state::ramtek(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK) - MCFG_NETLIST_SETUP(ramtek) + NETLIST_CPU(config, m_maincpu, NETLIST_CLOCK); + m_maincpu->set_constructor(netlist_ramtek); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); @@ -124,7 +124,7 @@ MACHINE_CONFIG_START(ramtek_state::ramtek) m_video->set_vert_params(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL); m_video->set_fieldcount(1); m_video->set_threshold(0.30); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rbisland.cpp b/src/mame/drivers/rbisland.cpp index a9d2c13ac49..e3bdc534b22 100644 --- a/src/mame/drivers/rbisland.cpp +++ b/src/mame/drivers/rbisland.cpp @@ -653,15 +653,15 @@ WRITE8_MEMBER(rbisland_state::counters_w) machine().bookkeeping().coin_counter_w(0, data & 0x10); } -MACHINE_CONFIG_START(rbisland_state::rbisland) - +void rbisland_state::rbisland(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rbisland_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, interrupt) + M68000(config, m_maincpu, XTAL(16'000'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_map); + m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::interrupt)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(16'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rbisland_sound_map) + Z80(config, m_audiocpu, XTAL(16'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::rbisland_sound_map); TAITO_CCHIP(config, m_cchip, 12_MHz_XTAL); // 12MHz OSC next to C-Chip m_cchip->in_pa_callback().set_ioport("800007"); @@ -675,13 +675,13 @@ MACHINE_CONFIG_START(rbisland_state::rbisland) config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough for the sound CPU to read all commands */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rbisland_state::screen_update_rainbow)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbisland); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 2048); @@ -706,31 +706,31 @@ MACHINE_CONFIG_START(rbisland_state::rbisland) pc060ha_device &ciu(PC060HA(config, "ciu", 0)); ciu.set_master_tag(m_maincpu); ciu.set_slave_tag(m_audiocpu); -MACHINE_CONFIG_END +} /* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */ -MACHINE_CONFIG_START(rbisland_state::jumping) - +void rbisland_state::jumping(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(18'432'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold) + M68000(config, m_maincpu, XTAL(18'432'000)/2); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_map); + m_maincpu->set_vblank_int("screen", FUNC(rbisland_state::irq4_line_hold)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(24'000'000)/4) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_sound_map) + Z80(config, m_audiocpu, XTAL(24'000'000)/4); /* verified on pcb */ + m_audiocpu->set_addrmap(AS_PROGRAM, &rbisland_state::jumping_sound_map); config.m_minimum_quantum = attotime::from_hz(600); /* 10 CPU slices per frame - enough unless otherwise */ /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rbisland_state::screen_update_jumping)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_jumping); PALETTE(config, m_palette).set_format(palette_device::xBGR_444, 2048); @@ -745,21 +745,18 @@ MACHINE_CONFIG_START(rbisland_state::jumping) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("ym1", YM2203, XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) + YM2203(config, "ym1", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */ - MCFG_DEVICE_ADD("ym2", YM2203, XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) -MACHINE_CONFIG_END + YM2203(config, "ym2", XTAL(24'000'000)/8).add_route(ALL_OUTPUTS, "mono", 0.30); /* verified on pcb */ +} /* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */ -MACHINE_CONFIG_START(rbisland_state::jumpingi) +void rbisland_state::jumpingi(machine_config &config) +{ jumping(config); - MCFG_DEVICE_REPLACE("maincpu", M68000, XTAL(16'000'000)/2) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(jumping_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(16'000'000)/2); /* verified on pcb */ +} /*************************************************************************** DRIVERS diff --git a/src/mame/drivers/rbmk.cpp b/src/mame/drivers/rbmk.cpp index cac0dc61cfa..e462f197e72 100644 --- a/src/mame/drivers/rbmk.cpp +++ b/src/mame/drivers/rbmk.cpp @@ -565,10 +565,11 @@ uint32_t rbmk_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, return 0; } -MACHINE_CONFIG_START(rbmk_state::rbmk) - MCFG_DEVICE_ADD("maincpu", M68000, 22000000 /2) - MCFG_DEVICE_PROGRAM_MAP(rbmk_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rbmk_state, irq1_line_hold) +void rbmk_state::rbmk(machine_config &config) +{ + M68000(config, m_maincpu, 22000000 /2); + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbmk_mem); + m_maincpu->set_vblank_int("screen", FUNC(rbmk_state::irq1_line_hold)); AT89C4051(config, m_mcu, 22000000 / 4); // frequency isn't right m_mcu->set_addrmap(AS_PROGRAM, &rbmk_state::mcu_mem); @@ -577,13 +578,13 @@ MACHINE_CONFIG_START(rbmk_state::rbmk) GFXDECODE(config, m_gfxdecode, m_palette, gfx_rbmk); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(64*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(64*8, 32*8); + screen.set_visarea(0*8, 64*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(rbmk_state::screen_update)); + screen.set_palette(m_palette); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x800); @@ -592,25 +593,24 @@ MACHINE_CONFIG_START(rbmk_state::rbmk) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("oki", OKIM6295, 1122000, okim6295_device::PIN7_HIGH) // clock frequency & pin 7 not verified - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.47) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.47) + okim6295_device &oki(OKIM6295(config, "oki", 1122000, okim6295_device::PIN7_HIGH)); // clock frequency & pin 7 not verified + oki.add_route(ALL_OUTPUTS, "lspeaker", 0.47); + oki.add_route(ALL_OUTPUTS, "rspeaker", 0.47); YM2151(config, m_ymsnd, 22000000 / 8); m_ymsnd->add_route(0, "lspeaker", 0.60); m_ymsnd->add_route(1, "rspeaker", 0.60); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rbmk_state::rbspm) +void rbmk_state::rbspm(machine_config &config) +{ rbmk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(rbspm_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &rbmk_state::rbspm_mem); - MCFG_DEVICE_MODIFY("mcu") - MCFG_DEVICE_DISABLE() // until decapped + m_mcu->set_disable(); // until decapped // PIC16F84 but no CPU core available -MACHINE_CONFIG_END +} // 实战麻将王 (Shízhàn Májiàng Wáng) ROM_START( rbmk ) diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp index 4a9fede162d..5df8b76a730 100644 --- a/src/mame/drivers/rc702.cpp +++ b/src/mame/drivers/rc702.cpp @@ -331,7 +331,8 @@ static void floppies(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } -MACHINE_CONFIG_START(rc702_state::rc702) +void rc702_state::rc702(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, XTAL(8'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &rc702_state::rc702_mem); @@ -378,11 +379,11 @@ MACHINE_CONFIG_START(rc702_state::rc702) m_7474->comp_output_cb().set(FUNC(rc702_state::qbar_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(272*2, 200+4*8) - MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1) - MCFG_SCREEN_UPDATE_DEVICE("crtc", i8275_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_size(272*2, 200+4*8); + screen.set_visarea(0, 272*2-1, 0, 200-1); + screen.set_screen_update("crtc", FUNC(i8275_device::screen_update)); i8275_device &crtc(I8275(config, "crtc", 11640000/7)); crtc.set_character_width(7); @@ -396,7 +397,7 @@ MACHINE_CONFIG_START(rc702_state::rc702) /* sound hardware */ SPEAKER(config, "mono").front_center(); BEEP(config, m_beep, 1000).add_route(ALL_OUTPUTS, "mono", 0.50); -MACHINE_CONFIG_END +} /* ROM definition */ diff --git a/src/mame/drivers/rcorsair.cpp b/src/mame/drivers/rcorsair.cpp index dd4bf635ba6..cff08bd03b0 100644 --- a/src/mame/drivers/rcorsair.cpp +++ b/src/mame/drivers/rcorsair.cpp @@ -156,30 +156,30 @@ uint32_t rcorsair_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -MACHINE_CONFIG_START(rcorsair_state::rcorsair) - +void rcorsair_state::rcorsair(machine_config &config) +{ /* Main CPU is probably inside Custom Block with program code, unknown type */ - MCFG_DEVICE_ADD("maincpu", Z80, 8000000) - MCFG_DEVICE_PROGRAM_MAP(rcorsair_main_map) - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rcorsair_state, irq0_line_hold) + Z80(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_main_map); + //m_maincpu->set_vblank_int("screen", FUNC(rcorsair_state::irq0_line_hold)); - MCFG_DEVICE_ADD("subcpu", I8035, 8000000) - MCFG_DEVICE_PROGRAM_MAP(rcorsair_sub_map) - MCFG_DEVICE_IO_MAP(rcorsair_sub_io_map) + I8035(config, m_subcpu, 8000000); + m_subcpu->set_addrmap(AS_PROGRAM, &rcorsair_state::rcorsair_sub_map); + m_subcpu->set_addrmap(AS_IO, &rcorsair_state::rcorsair_sub_io_map); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_UPDATE_DRIVER(rcorsair_state, screen_update) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_screen_update(FUNC(rcorsair_state::screen_update)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_palette("palette"); GFXDECODE(config, "gfxdecode", "palette", gfx_rcorsair); - MCFG_PALETTE_ADD("palette", 0x100) -MACHINE_CONFIG_END + PALETTE(config, "palette").set_entries(0x100); +} ROM_START( rcorsair ) ROM_REGION( 0x6000, "maincpu", 0 ) diff --git a/src/mame/drivers/rd110.cpp b/src/mame/drivers/rd110.cpp index a51994b7ef5..b9a9f62cd9e 100644 --- a/src/mame/drivers/rd110.cpp +++ b/src/mame/drivers/rd110.cpp @@ -233,7 +233,8 @@ void d110_state::d110_map(address_map &map) map(0xc000, 0xffff).bankrw("fixed"); } -MACHINE_CONFIG_START(d110_state::d110) +void d110_state::d110(machine_config &config) +{ P8098(config, m_maincpu, 12_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &d110_state::d110_map); m_maincpu->serial_tx_cb().set(FUNC(d110_state::midi_w)); @@ -247,13 +248,13 @@ MACHINE_CONFIG_START(d110_state::d110) RAM( config, m_memc ).set_default_size( "32K" ); NVRAM( config, m_memcs, nvram_device::DEFAULT_ALL_0 ); - MCFG_SCREEN_ADD( "screen", LCD ) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_DRIVER(d110_state, screen_update) -// MCFG_SCREEN_SIZE(20*6-1, 2*9-1) - MCFG_SCREEN_SIZE(16*6-1, (16*6-1)*3/4) - MCFG_SCREEN_VISIBLE_AREA(0, 16*6-2, 0, (16*6-1)*3/4-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_screen_update(FUNC(d110_state::screen_update)); +// screen.set_size(20*6-1, 2*9-1); + screen.set_size(16*6-1, (16*6-1)*3/4); + screen.set_visarea(0, 16*6-2, 0, (16*6-1)*3/4-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(d110_state::d110_palette), 2); @@ -262,7 +263,7 @@ MACHINE_CONFIG_START(d110_state::d110) TIMER(config, m_midi_timer).configure_generic(FUNC(d110_state::midi_timer_cb)); TIMER(config, "samples_timer").configure_periodic(FUNC(d110_state::samples_timer_cb), attotime::from_hz(32000*2) ); -MACHINE_CONFIG_END +} ROM_START( d110 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp index 023963328dd..c1a07c2cbd8 100644 --- a/src/mame/drivers/realbrk.cpp +++ b/src/mame/drivers/realbrk.cpp @@ -767,26 +767,26 @@ WRITE_LINE_MEMBER(realbrk_state::vblank_irq) m_tmp68301->external_interrupt_1(); } -MACHINE_CONFIG_START(realbrk_state::realbrk) - +void realbrk_state::realbrk(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, M68000, XTAL(32'000'000) / 2) /* !! TMP68301 !! */ - MCFG_DEVICE_PROGRAM_MAP(realbrk_mem) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback) + M68000(config, m_maincpu, XTAL(32'000'000) / 2); /* !! TMP68301 !! */ + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::realbrk_mem); + m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback)); TMP68301(config, m_tmp68301, 0); m_tmp68301->set_cputag(m_maincpu); m_tmp68301->out_parallel_callback().set(FUNC(realbrk_state::realbrk_flipscreen_w)); /* video hardware */ - MCFG_SCREEN_ADD(m_screen, RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(0x140, 0xe0) - MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) - MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, realbrk_state, vblank_irq)) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(0x140, 0xe0); + m_screen->set_visarea(0, 0x140-1, 0, 0xe0-1); + m_screen->set_screen_update(FUNC(realbrk_state::screen_update)); + m_screen->set_palette(m_palette); + m_screen->screen_vblank().set(FUNC(realbrk_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_realbrk); PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x8000); @@ -795,40 +795,40 @@ MACHINE_CONFIG_START(realbrk_state::realbrk) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD("ymz", YMZ280B, XTAL(33'868'800) / 2) - MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) + ymz280b_device &ymz(YMZ280B(config, "ymz", XTAL(33'868'800) / 2)); + ymz.add_route(0, "lspeaker", 0.50); + ymz.add_route(1, "rspeaker", 0.50); - MCFG_DEVICE_ADD("ymsnd", YM2413, XTAL(3'579'545)) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50) -MACHINE_CONFIG_END + ym2413_device &ymsnd(YM2413(config, "ymsnd", XTAL(3'579'545))); + ymsnd.add_route(ALL_OUTPUTS, "lspeaker", 0.50); + ymsnd.add_route(ALL_OUTPUTS, "rspeaker", 0.50); +} -MACHINE_CONFIG_START(realbrk_state::pkgnsh) +void realbrk_state::pkgnsh(machine_config &config) +{ realbrk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pkgnsh_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnsh_mem); m_tmp68301->out_parallel_callback().set_nop(); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(realbrk_state::pkgnshdx) +void realbrk_state::pkgnshdx(machine_config &config) +{ pkgnsh(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pkgnshdx_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::pkgnshdx_mem); +} -MACHINE_CONFIG_START(realbrk_state::dai2kaku) +void realbrk_state::dai2kaku(machine_config &config) +{ realbrk(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(dai2kaku_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &realbrk_state::dai2kaku_mem); m_gfxdecode->set_info(gfx_dai2kaku); m_screen->set_screen_update(FUNC(realbrk_state::screen_update_dai2kaku)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/redalert.cpp b/src/mame/drivers/redalert.cpp index 85d587ecf1e..a677afeae6f 100644 --- a/src/mame/drivers/redalert.cpp +++ b/src/mame/drivers/redalert.cpp @@ -391,61 +391,61 @@ INPUT_PORTS_END * *************************************/ -MACHINE_CONFIG_START(redalert_state::redalert) - +void redalert_state::redalert(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(redalert_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::redalert_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ redalert_video(config); /* audio hardware */ redalert_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::ww3) +} +void redalert_state::ww3(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ww3_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::ww3_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ ww3_video(config); /* audio hardware */ ww3_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::panther) +} +void redalert_state::panther(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(panther_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::panther_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ panther_video(config); /* audio hardware */ ww3_audio(config); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(redalert_state::demoneye) +} +void redalert_state::demoneye(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M6502, MAIN_CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(demoneye_main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", redalert_state, redalert_vblank_interrupt) + M6502(config, m_maincpu, MAIN_CPU_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &redalert_state::demoneye_main_map); + m_maincpu->set_vblank_int("screen", FUNC(redalert_state::redalert_vblank_interrupt)); /* video hardware */ demoneye_video(config); /* audio hardware */ demoneye_audio(config); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/relief.cpp b/src/mame/drivers/relief.cpp index add178d614c..3f55fbc6d43 100644 --- a/src/mame/drivers/relief.cpp +++ b/src/mame/drivers/relief.cpp @@ -255,11 +255,11 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(relief_state::relief) - +void relief_state::relief(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14.318181_MHz_XTAL/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, 14.318181_MHz_XTAL/2); + m_maincpu->set_addrmap(AS_PROGRAM, &relief_state::main_map); EEPROM_2816(config, "eeprom").lock_after_write(true); @@ -275,24 +275,23 @@ MACHINE_CONFIG_START(relief_state::relief) TILEMAP(config, "vad:playfield2", m_gfxdecode, 2, 8, 8, TILEMAP_SCAN_COLS, 64, 64, 0).set_info_callback(DEVICE_SELF_OWNER, FUNC(relief_state::get_playfield2_tile_info)); ATARI_MOTION_OBJECTS(config, "vad:mob", 0, m_screen, relief_state::s_mob_config).set_gfxdecode(m_gfxdecode); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK); /* note: these parameters are from published specs, not derived */ /* the board uses a VAD chip to generate video signals */ - MCFG_SCREEN_RAW_PARAMS(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240) - MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief) - MCFG_SCREEN_PALETTE("palette") + m_screen->set_raw(14.318181_MHz_XTAL/2, 456, 0, 336, 262, 0, 240); + m_screen->set_screen_update(FUNC(relief_state::screen_update_relief)); + m_screen->set_palette("palette"); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("oki", OKIM6295, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_DEVICE_ADDRESS_MAP(0, oki_map) + OKIM6295(config, m_oki, 14.318181_MHz_XTAL/4/3, okim6295_device::PIN7_LOW); + m_oki->add_route(ALL_OUTPUTS, "mono", 0.50); + m_oki->set_addrmap(0, &relief_state::oki_map); - MCFG_DEVICE_ADD("ymsnd", YM2413, 14.318181_MHz_XTAL/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) -MACHINE_CONFIG_END + YM2413(config, m_ym2413, 14.318181_MHz_XTAL/4).add_route(ALL_OUTPUTS, "mono", 1.0); +} diff --git a/src/mame/drivers/retofinv.cpp b/src/mame/drivers/retofinv.cpp index 1a4bb7374be..bb0be85c97b 100644 --- a/src/mame/drivers/retofinv.cpp +++ b/src/mame/drivers/retofinv.cpp @@ -412,22 +412,22 @@ INTERRUPT_GEN_MEMBER(retofinv_state::sub_vblank_irq) } -MACHINE_CONFIG_START(retofinv_state::retofinv) - +void retofinv_state::retofinv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(main_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, main_vblank_irq) + Z80(config, m_maincpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::main_map); + m_maincpu->set_vblank_int("screen", FUNC(retofinv_state::main_vblank_irq)); - MCFG_DEVICE_ADD("sub", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", retofinv_state, sub_vblank_irq) + Z80(config, m_subcpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_subcpu->set_addrmap(AS_PROGRAM, &retofinv_state::sub_map); + m_subcpu->set_vblank_int("screen", FUNC(retofinv_state::sub_vblank_irq)); - MCFG_DEVICE_ADD("audiocpu", Z80, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(retofinv_state, nmi_line_pulse, 2*60) // wrong, should be ~128-132 per frame, not 120. + Z80(config, m_audiocpu, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &retofinv_state::sound_map); + m_audiocpu->set_periodic_int(FUNC(retofinv_state::nmi_line_pulse), attotime::from_hz(2*60)); // wrong, should be ~128-132 per frame, not 120. - MCFG_DEVICE_ADD("68705", TAITO68705_MCU, XTAL(18'432'000)/6) /* XTAL and divider verified, 3.072 MHz */ + TAITO68705_MCU(config, m_68705, XTAL(18'432'000)/6); /* XTAL and divider verified, 3.072 MHz */ config.m_minimum_quantum = attotime::from_hz(6000); /* 100 CPU slices per frame - enough for the sound CPU to read all commands */ @@ -442,13 +442,13 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60.58) // vsync measured at 60.58hz - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // not accurate - MCFG_SCREEN_SIZE(36*8, 28*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) - MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60.58); // vsync measured at 60.58hz + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // not accurate + screen.set_size(36*8, 28*8); + screen.set_visarea(0*8, 36*8-1, 0*8, 28*8-1); + screen.set_screen_update(FUNC(retofinv_state::screen_update)); + screen.set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_retofinv); PALETTE(config, m_palette, FUNC(retofinv_state::retofinv_palette), 256*2 + 64*16 + 64*16, 256); @@ -458,42 +458,41 @@ MACHINE_CONFIG_START(retofinv_state::retofinv) GENERIC_LATCH_8(config, m_soundlatch); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(18'432'000)/6) /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SN76489A(config, "sn1", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC5?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_DEVICE_ADD("sn2", SN76489A, XTAL(18'432'000)/6) /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) -MACHINE_CONFIG_END + SN76489A(config, "sn2", XTAL(18'432'000)/6).add_route(ALL_OUTPUTS, "mono", 0.80); /* @IC6?; XTAL, chip type, and divider verified, 3.072 MHz */ +} /* bootleg which has different palette clut */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1) +void retofinv_state::retofinvb1(machine_config &config) +{ retofinv(config); m_palette->set_init(FUNC(retofinv_state::retofinv_bl_palette)); -MACHINE_CONFIG_END +} /* bootleg which has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb_nomcu) +void retofinv_state::retofinvb_nomcu(machine_config &config) +{ retofinv(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); config.device_remove("68705"); -MACHINE_CONFIG_END +} -/* bootleg which has different pallete clut and also has no mcu */ -MACHINE_CONFIG_START(retofinv_state::retofinvb1_nomcu) +/* bootleg which has different palette clut and also has no mcu */ +void retofinv_state::retofinvb1_nomcu(machine_config &config) +{ retofinvb1(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(bootleg_map) + m_maincpu->set_addrmap(AS_PROGRAM, &retofinv_state::bootleg_map); m_mainlatch->q_out_cb<3>().set_nop(); config.device_remove("68705"); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index 0679d53292a..e97c01ba358 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -897,22 +897,22 @@ GFXDECODE_END MACHINE_CONFIG_START(rex6000_state::rex6000) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) //Toshiba microprocessor Z80 compatible at 4.3MHz - MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) - MCFG_DEVICE_IO_MAP(rex6000_io) + Z80(config, m_maincpu, XTAL(4'000'000)); //Toshiba microprocessor Z80 compatible at 4.3MHz + m_maincpu->set_addrmap(AS_PROGRAM, &rex6000_state::rex6000_mem); + m_maincpu->set_addrmap(AS_IO, &rex6000_state::rex6000_io); TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(32)); TIMER(config, "irq_timer2").configure_periodic(FUNC(rex6000_state::irq_timer2), attotime::from_hz(4096)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(rex6000_state, screen_update) - MCFG_SCREEN_SIZE(240, 120) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 120-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(rex6000_state::screen_update)); + screen.set_size(240, 120); + screen.set_visarea(0, 240-1, 0, 120-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2); GFXDECODE(config, "gfxdecode", "palette", gfx_rex6000); @@ -956,15 +956,14 @@ MACHINE_CONFIG_START(rex6000_state::rex6000) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "beeper", BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00); MACHINE_CONFIG_END MACHINE_CONFIG_START(oz750_state::oz750) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(9'830'400)) //Toshiba microprocessor Z80 compatible at 9.8MHz - MCFG_DEVICE_PROGRAM_MAP(rex6000_mem) - MCFG_DEVICE_IO_MAP(oz750_io) + Z80(config, m_maincpu, XTAL(9'830'400)); //Toshiba microprocessor Z80 compatible at 9.8MHz + m_maincpu->set_addrmap(AS_PROGRAM, &oz750_state::rex6000_mem); + m_maincpu->set_addrmap(AS_IO, &oz750_state::oz750_io); TIMER(config, "sec_timer").configure_periodic(FUNC(rex6000_state::sec_timer), attotime::from_hz(1)); TIMER(config, "irq_timer1").configure_periodic(FUNC(rex6000_state::irq_timer1), attotime::from_hz(64)); @@ -984,13 +983,13 @@ MACHINE_CONFIG_START(oz750_state::oz750) //serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", LCD) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(oz750_state, screen_update_oz) - MCFG_SCREEN_SIZE(240, 80) - MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 80-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(oz750_state::screen_update_oz)); + screen.set_size(240, 80); + screen.set_visarea(0, 240-1, 0, 80-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(rex6000_state::rex6000_palettte), 2); @@ -1011,8 +1010,7 @@ MACHINE_CONFIG_START(oz750_state::oz750) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD( "beeper", BEEP, 0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "mono", 1.00 ) + BEEP(config, m_beep, 0).add_route(ALL_OUTPUTS, "mono", 1.00); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/rgum.cpp b/src/mame/drivers/rgum.cpp index 610be95ca91..71a606245ab 100644 --- a/src/mame/drivers/rgum.cpp +++ b/src/mame/drivers/rgum.cpp @@ -245,19 +245,20 @@ static GFXDECODE_START( gfx_rgum ) GFXDECODE_END -MACHINE_CONFIG_START(rgum_state::rgum) +void rgum_state::rgum(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M65C02,24000000/16) /* ? MHz */ - MCFG_DEVICE_PROGRAM_MAP(rgum_map) + M65C02(config, m_maincpu, 24000000/16); /* ? MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &rgum_state::rgum_map); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) - MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 0, 256-1); + screen.set_screen_update(FUNC(rgum_state::screen_update_royalgum)); + screen.set_palette(m_palette); mc6845_device &crtc(MC6845(config, "crtc", 24000000/16)); /* unknown clock & type, hand tuned to get ~50 fps (?) */ crtc.set_screen("screen"); @@ -271,12 +272,12 @@ MACHINE_CONFIG_START(rgum_state::rgum) ppi.in_pc_callback().set_ioport("IN2"); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rgum); - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, m_palette).set_entries(0x100); SPEAKER(config, "mono").front_center(); AY8910(config, "aysnd", 24000000/16).add_route(ALL_OUTPUTS, "mono", 0.50); /* guessed to use the same xtal as the crtc */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/riscpc.cpp b/src/mame/drivers/riscpc.cpp index b08056fdbfa..055e68225a8 100644 --- a/src/mame/drivers/riscpc.cpp +++ b/src/mame/drivers/riscpc.cpp @@ -814,86 +814,91 @@ void riscpc_state::machine_reset() m_flyback_timer->adjust( attotime::never); } -MACHINE_CONFIG_START(riscpc_state::rpc600) +void riscpc_state::rpc600(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 60_MHz_XTAL/2) // ARM610 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 60_MHz_XTAL/2); // ARM610 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} -MACHINE_CONFIG_START(riscpc_state::rpc700) +void riscpc_state::rpc700(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 80_MHz_XTAL/2) // ARM710 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 80_MHz_XTAL/2); // ARM710 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} -MACHINE_CONFIG_START(riscpc_state::a7000) +void riscpc_state::a7000(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, XTAL(32'000'000) ) // ARM7500 - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, XTAL(32'000'000)); // ARM7500 + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} -MACHINE_CONFIG_START(riscpc_state::a7000p) +void riscpc_state::a7000p(machine_config &config) +{ a7000(config); - MCFG_DEVICE_MODIFY("maincpu") // ARM7500FE - MCFG_DEVICE_CLOCK(XTAL(48'000'000)) -MACHINE_CONFIG_END + m_maincpu->set_clock(XTAL(48'000'000)); // ARM7500FE +} -MACHINE_CONFIG_START(riscpc_state::sarpc) +void riscpc_state::sarpc(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 202000000 ) // StrongARM - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 202000000); // StrongARM + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} -MACHINE_CONFIG_START(riscpc_state::sarpc_j233) +void riscpc_state::sarpc_j233(machine_config &config) +{ /* Basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", ARM7, 233000000 ) // StrongARM - MCFG_DEVICE_PROGRAM_MAP(a7000_mem) + ARM7(config, m_maincpu, 233000000); // StrongARM + m_maincpu->set_addrmap(AS_PROGRAM, &riscpc_state::a7000_mem); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_SIZE(1900, 1080) //max available size - MCFG_SCREEN_VISIBLE_AREA(0, 1900-1, 0, 1080-1) - MCFG_SCREEN_UPDATE_DRIVER(riscpc_state, screen_update) - MCFG_PALETTE_ADD("palette", 0x200) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + m_screen->set_size(1900, 1080); //max available size + m_screen->set_visarea(0, 1900-1, 0, 1080-1); + m_screen->set_screen_update(FUNC(riscpc_state::screen_update)); + PALETTE(config, m_palette).set_entries(0x200); +} ROM_START(rpc600) ROM_REGION( 0x800000, "user1", ROMREGION_ERASEFF ) diff --git a/src/mame/drivers/rltennis.cpp b/src/mame/drivers/rltennis.cpp index ace73fd5f9e..9803fba9585 100644 --- a/src/mame/drivers/rltennis.cpp +++ b/src/mame/drivers/rltennis.cpp @@ -181,20 +181,20 @@ void rltennis_state::ramdac_map(address_map &map) map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb888_w)); } -MACHINE_CONFIG_START(rltennis_state::rltennis) +void rltennis_state::rltennis(machine_config &config) +{ + M68000(config, m_maincpu, RLT_XTAL/2); /* 68000P8 ??? */ + m_maincpu->set_addrmap(AS_PROGRAM, &rltennis_state::rltennis_main); + m_maincpu->set_vblank_int("screen", FUNC(rltennis_state::interrupt)); - MCFG_DEVICE_ADD("maincpu", M68000, RLT_XTAL/2) /* 68000P8 ??? */ - MCFG_DEVICE_PROGRAM_MAP(rltennis_main) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rltennis_state, interrupt) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(RLT_REFRESH_RATE); + screen.set_size(320, 240); + screen.set_visarea(0, 319, 0, 239); + screen.set_screen_update(FUNC(rltennis_state::screen_update)); + screen.set_palette("palette"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE( RLT_REFRESH_RATE ) - MCFG_SCREEN_SIZE(320, 240) - MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239) - MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, "palette").set_entries(256); EEPROM_2864(config, "eeprom"); @@ -209,7 +209,7 @@ MACHINE_CONFIG_START(rltennis_state::rltennis) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT); vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} ROM_START( rltennis ) ROM_REGION( 0x100000, "maincpu", 0 ) diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp index 1b9c3dd745b..7b648e24133 100644 --- a/src/mame/drivers/rm380z.cpp +++ b/src/mame/drivers/rm380z.cpp @@ -234,22 +234,23 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 return 0; } -MACHINE_CONFIG_START(rm380z_state::rm380z) +void rm380z_state::rm380z(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(rm380z_mem) - MCFG_DEVICE_IO_MAP(rm380z_io) + Z80(config, m_maincpu, 16_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm380z_mem); + m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm380z_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); // according to videos and pictures of the real hardware, chars are spaced of at least 1 pixel // and there is at least 1 pixel between each row of characters - MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))) - MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) - MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z) - MCFG_SCREEN_PALETTE("palette") + screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))); + screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1); + screen.set_screen_update(FUNC(rm380z_state::screen_update_rm380z)); + screen.set_palette("palette"); PALETTE(config, "palette", palette_device::MONOCHROME); @@ -271,30 +272,31 @@ MACHINE_CONFIG_START(rm380z_state::rm380z) /* keyboard */ generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rm380z_state::rm480z) +void rm380z_state::rm480z(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(RM380Z_MAINCPU_TAG, Z80, 16_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(rm480z_mem) - MCFG_DEVICE_IO_MAP(rm480z_io) + Z80(config, m_maincpu, 16_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &rm380z_state::rm480z_mem); + m_maincpu->set_addrmap(AS_IO, &rm380z_state::rm480z_io); MCFG_MACHINE_RESET_OVERRIDE(rm380z_state, rm480z) /* video hardware */ -// MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(50) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) -// MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))) -// MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) -// MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm480z) -// MCFG_SCREEN_PALETTE("palette") +// screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(50); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); +// screen.set_size((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))); +// screen.set_visarea(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1); +// screen.set_screen_update(FUNC(rm380z_state::screen_update_rm480z)); +// screen.set_palette("palette"); -// MCFG_PALETTE_ADD_MONOCHROME("palette") +// PALETTE(config, "palette", palette_device::MONOCHROME); /* keyboard */ // generic_keyboard_device &keyboard(GENERIC_KEYBOARD(config, "keyboard", 0)); // keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); -MACHINE_CONFIG_END +} /* ROM definitions */ diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp index f8e367dda5d..5c9c3cffe24 100644 --- a/src/mame/drivers/rmnimbus.cpp +++ b/src/mame/drivers/rmnimbus.cpp @@ -127,7 +127,7 @@ void rmnimbus_state::nimbus(machine_config &config) SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(4.433619_MHz_XTAL * 2, 650, 0, 640, 260, 0, 250); m_screen->set_screen_update(FUNC(rmnimbus_state::screen_update_nimbus)); - //MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) + //m_screen->set_video_attributes(VIDEO_UPDATE_SCANLINE); m_screen->set_palette(m_palette); PALETTE(config, m_palette).set_entries(16); diff --git a/src/mame/drivers/rmt32.cpp b/src/mame/drivers/rmt32.cpp index f325012954e..3e93698e165 100644 --- a/src/mame/drivers/rmt32.cpp +++ b/src/mame/drivers/rmt32.cpp @@ -349,22 +349,23 @@ void mt32_state::mt32_map(address_map &map) map(0xc000, 0xffff).bankrw("fixed"); } -MACHINE_CONFIG_START(mt32_state::mt32) - i8x9x_device &maincpu(P8098(config, "maincpu", 12_MHz_XTAL)); +void mt32_state::mt32(machine_config &config) +{ + i8x9x_device &maincpu(P8098(config, cpu, 12_MHz_XTAL)); maincpu.set_addrmap(AS_PROGRAM, &mt32_state::mt32_map); maincpu.ach7_cb().set_ioport("A7"); maincpu.serial_tx_cb().set(FUNC(mt32_state::midi_w)); maincpu.in_p0_cb().set(FUNC(mt32_state::port0_r)); - RAM( config, "ram" ).set_default_size( "32K" ); + RAM(config, ram).set_default_size("32K"); - MCFG_SCREEN_ADD( "screen", LCD ) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_UPDATE_DRIVER(mt32_state, screen_update) -// MCFG_SCREEN_SIZE(20*6-1, 9) - MCFG_SCREEN_SIZE(20*6-1, (20*6-1)*3/4) - MCFG_SCREEN_VISIBLE_AREA(0, 20*6-2, 0, (20*6-1)*3/4-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD)); + screen.set_refresh_hz(50); + screen.set_screen_update(FUNC(mt32_state::screen_update)); +// screen.set_size(20*6-1, 9); + screen.set_size(20*6-1, (20*6-1)*3/4); + screen.set_visarea(0, 20*6-2, 0, (20*6-1)*3/4-1); + screen.set_palette("palette"); PALETTE(config, "palette", FUNC(mt32_state::mt32_palette), 2); @@ -373,7 +374,7 @@ MACHINE_CONFIG_START(mt32_state::mt32) TIMER(config, midi_timer).configure_generic(FUNC(mt32_state::midi_timer_cb)); TIMER(config, "samples_timer").configure_periodic(FUNC(mt32_state::samples_timer_cb), attotime::from_hz(32000*2)); -MACHINE_CONFIG_END +} ROM_START( mt32 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/rockrage.cpp b/src/mame/drivers/rockrage.cpp index 81abbeb1508..803b9859ffa 100644 --- a/src/mame/drivers/rockrage.cpp +++ b/src/mame/drivers/rockrage.cpp @@ -248,26 +248,26 @@ void rockrage_state::machine_reset() m_vreg = 0; } -MACHINE_CONFIG_START(rockrage_state::rockrage) - +void rockrage_state::rockrage(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", HD6309E, XTAL(24'000'000) / 8) - MCFG_DEVICE_PROGRAM_MAP(rockrage_map) + HD6309E(config, m_maincpu, XTAL(24'000'000) / 8); + m_maincpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_map); - MCFG_DEVICE_ADD("audiocpu", MC6809E, XTAL(24'000'000) / 16) - MCFG_DEVICE_PROGRAM_MAP(rockrage_sound_map) + MC6809E(config, m_audiocpu, XTAL(24'000'000) / 16); + m_audiocpu->set_addrmap(AS_PROGRAM, &rockrage_state::rockrage_sound_map); WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rockrage_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rockrage_state::screen_update_rockrage)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rockrage_state::vblank_irq)); K007342(config, m_k007342, 0); m_k007342->set_gfxnum(0); @@ -292,11 +292,11 @@ MACHINE_CONFIG_START(rockrage_state::rockrage) YM2151(config, "ymsnd", 3579545).add_route(0, "lspeaker", 0.60).add_route(1, "rspeaker", 0.60); - MCFG_DEVICE_ADD("vlm", VLM5030, 3579545) - MCFG_DEVICE_ADDRESS_MAP(0, rockrage_vlm_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60) -MACHINE_CONFIG_END + VLM5030(config, m_vlm, 3579545); + m_vlm->set_addrmap(0, &rockrage_state::rockrage_vlm_map); + m_vlm->add_route(ALL_OUTPUTS, "lspeaker", 0.60); + m_vlm->add_route(ALL_OUTPUTS, "rspeaker", 0.60); +} /*************************************************************************** diff --git a/src/mame/drivers/rocnrope.cpp b/src/mame/drivers/rocnrope.cpp index d112e720d84..2518a36dfab 100644 --- a/src/mame/drivers/rocnrope.cpp +++ b/src/mame/drivers/rocnrope.cpp @@ -206,11 +206,11 @@ WRITE_LINE_MEMBER(rocnrope_state::vblank_irq) m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); } -MACHINE_CONFIG_START(rocnrope_state::rocnrope) - +void rocnrope_state::rocnrope(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK / 3 / 4) /* Verified in schematics */ - MCFG_DEVICE_PROGRAM_MAP(rocnrope_map) + KONAMI1(config, m_maincpu, MASTER_CLOCK / 3 / 4); /* Verified in schematics */ + m_maincpu->set_addrmap(AS_PROGRAM, &rocnrope_state::rocnrope_map); ls259_device &mainlatch(LS259(config, "mainlatch")); // B2 mainlatch.q_out_cb<0>().set(FUNC(rocnrope_state::flip_screen_w)); @@ -223,21 +223,21 @@ MACHINE_CONFIG_START(rocnrope_state::rocnrope) WATCHDOG_TIMER(config, "watchdog"); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rocnrope_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 2*8, 30*8-1); + screen.set_screen_update(FUNC(rocnrope_state::screen_update_rocnrope)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rocnrope_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rocnrope); PALETTE(config, m_palette, FUNC(rocnrope_state::rocnrope_palette), 16*16+16*16, 32); /* sound hardware */ TIMEPLT_AUDIO(config, "timeplt_audio"); -MACHINE_CONFIG_END +} /************************************* * diff --git a/src/mame/drivers/rohga.cpp b/src/mame/drivers/rohga.cpp index 1a0bacf9abd..da1d4c8d39d 100644 --- a/src/mame/drivers/rohga.cpp +++ b/src/mame/drivers/rohga.cpp @@ -871,12 +871,12 @@ DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback) return colour; } -MACHINE_CONFIG_START(rohga_state::rohga) - +void rohga_state::rohga(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(rohga_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::rohga_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -884,18 +884,18 @@ MACHINE_CONFIG_START(rohga_state::rohga) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_rohga)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_rohga); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -954,21 +954,21 @@ MACHINE_CONFIG_START(rohga_state::rohga) ymsnd.add_route(0, "lspeaker", 0.78); ymsnd.add_route(1, "rspeaker", 0.78); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rohga_state::wizdfire) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::wizdfire(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(wizdfire_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::wizdfire_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -976,18 +976,18 @@ MACHINE_CONFIG_START(rohga_state::wizdfire) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); + BUFFERED_SPRITERAM16(config, m_spriteram[1]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_wizdfire)); GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1051,21 +1051,21 @@ MACHINE_CONFIG_START(rohga_state::wizdfire) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rohga_state::nitrobal) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::nitrobal(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(nitrobal_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::nitrobal_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -1073,18 +1073,18 @@ MACHINE_CONFIG_START(rohga_state::nitrobal) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) - MCFG_DEVICE_ADD("spriteram2", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); + BUFFERED_SPRITERAM16(config, m_spriteram[1]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_nitrobal)); GFXDECODE(config, "gfxdecode", m_palette, gfx_wizdfire); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1149,21 +1149,21 @@ MACHINE_CONFIG_START(rohga_state::nitrobal) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rohga_state::schmeisr) + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} +void rohga_state::schmeisr(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 14000000) - MCFG_DEVICE_PROGRAM_MAP(schmeisr_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rohga_state, irq6_line_assert) + M68000(config, m_maincpu, 14000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::schmeisr_map); + m_maincpu->set_vblank_int("screen", FUNC(rohga_state::irq6_line_assert)); H6280(config, m_audiocpu, 32220000/4/3); /* verified on pcb (8.050Mhz is XIN on pin 10 of H6280 */ m_audiocpu->set_addrmap(AS_PROGRAM, &rohga_state::sound_map); @@ -1171,18 +1171,18 @@ MACHINE_CONFIG_START(rohga_state::schmeisr) m_audiocpu->add_route(ALL_OUTPUTS, "rspeaker", 0); /* video hardware */ - MCFG_DEVICE_ADD("spriteram1", BUFFERED_SPRITERAM16) + BUFFERED_SPRITERAM16(config, m_spriteram[0]); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(58) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) - MCFG_SCREEN_SIZE(40*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) - MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(58); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(529)); + screen.set_size(40*8, 32*8); + screen.set_visarea(0*8, 40*8-1, 1*8, 31*8-1); + screen.set_screen_update(FUNC(rohga_state::screen_update_rohga)); + screen.set_palette(m_palette); GFXDECODE(config, "gfxdecode", m_palette, gfx_schmeisr); - MCFG_PALETTE_ADD("palette", 2048) + PALETTE(config, m_palette).set_entries(2048); DECOCOMN(config, m_decocomn, 0); m_decocomn->set_palette_tag(m_palette); @@ -1241,24 +1241,24 @@ MACHINE_CONFIG_START(rohga_state::schmeisr) ymsnd.add_route(0, "lspeaker", 0.80); ymsnd.add_route(1, "rspeaker", 0.80); - MCFG_DEVICE_ADD("oki1", OKIM6295, 32220000/32, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) + OKIM6295(config, m_oki[0], 32220000/32, okim6295_device::PIN7_HIGH); + m_oki[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_oki[0]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("oki2", OKIM6295, 32220000/16, okim6295_device::PIN7_HIGH) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) -MACHINE_CONFIG_END + OKIM6295(config, m_oki[1], 32220000/16, okim6295_device::PIN7_HIGH); + m_oki[1]->add_route(ALL_OUTPUTS, "lspeaker", 0.40); + m_oki[1]->add_route(ALL_OUTPUTS, "rspeaker", 0.40); +} -MACHINE_CONFIG_START(rohga_state::hangzo) +void rohga_state::hangzo(machine_config &config) +{ schmeisr(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(hangzo_map) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &rohga_state::hangzo_map); +} /**********************************************************************************/ diff --git a/src/mame/drivers/rollext.cpp b/src/mame/drivers/rollext.cpp index 57de06bd0ea..8a5af16a441 100644 --- a/src/mame/drivers/rollext.cpp +++ b/src/mame/drivers/rollext.cpp @@ -543,25 +543,26 @@ void rollext_state::machine_start() } -MACHINE_CONFIG_START(rollext_state::rollext) - MCFG_DEVICE_ADD("maincpu", TMS32082_MP, 60000000) - MCFG_DEVICE_PROGRAM_MAP(memmap) - //MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt) - MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq1_line_assert, 60) - //MCFG_DEVICE_PERIODIC_INT_DRIVER(rollext_state, irq3_line_assert, 500) +void rollext_state::rollext(machine_config &config) +{ + TMS32082_MP(config, m_maincpu, 60000000); + m_maincpu->set_addrmap(AS_PROGRAM, &rollext_state::memmap); + //m_maincpu->set_vblank_int("screen", FUNC(rollext_state::vblank_interrupt)); + m_maincpu->set_periodic_int(FUNC(rollext_state::irq1_line_assert), attotime::from_hz(60)); + //m_maincpu->set_periodic_int(FUNC(rollext_state::irq3_line_assert), attotime::from_hz(500)); - MCFG_DEVICE_ADD("pp0", TMS32082_PP, 60000000) - MCFG_DEVICE_PROGRAM_MAP(memmap); + tms32082_pp_device &pp0(TMS32082_PP(config, "pp0", 60000000)); + pp0.set_addrmap(AS_PROGRAM, &rollext_state::memmap); config.m_minimum_quantum = attotime::from_hz(100); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 384) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_DRIVER(rollext_state, screen_update) -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 384); + m_screen->set_visarea(0, 511, 0, 383); + m_screen->set_screen_update(FUNC(rollext_state::screen_update)); +} INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt) diff --git a/src/mame/drivers/rollrace.cpp b/src/mame/drivers/rollrace.cpp index b9e4655c71c..b05c7776697 100644 --- a/src/mame/drivers/rollrace.cpp +++ b/src/mame/drivers/rollrace.cpp @@ -249,15 +249,15 @@ INTERRUPT_GEN_MEMBER(rollrace_state::sound_timer_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(rollrace_state::rollrace) - +void rollrace_state::rollrace(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80,XTAL(24'000'000)/8) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rollrace_map) + Z80(config, m_maincpu, XTAL(24'000'000)/8); /* verified on pcb */ + m_maincpu->set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_map); - MCFG_DEVICE_ADD("audiocpu", Z80,XTAL(24'000'000)/16) /* verified on pcb */ - MCFG_DEVICE_PROGRAM_MAP(rollrace_sound_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(rollrace_state, sound_timer_irq, 4*60) + z80_device &audiocpu(Z80(config, "audiocpu", XTAL(24'000'000)/16)); /* verified on pcb */ + audiocpu.set_addrmap(AS_PROGRAM, &rollrace_state::rollrace_sound_map); + audiocpu.set_periodic_int(FUNC(rollrace_state::sound_timer_irq), attotime::from_hz(4*60)); ls259_device &mainlatch(LS259(config, "mainlatch")); mainlatch.q_out_cb<0>().set(FUNC(rollrace_state::flipx_w)); @@ -269,14 +269,14 @@ MACHINE_CONFIG_START(rollrace_state::rollrace) mainlatch.q_out_cb<6>().set(FUNC(rollrace_state::spritebank_w)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16) - MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update) - MCFG_SCREEN_PALETTE(m_palette) - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, rollrace_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(256, 256); + screen.set_visarea(0, 256-1, 16, 255-16); + screen.set_screen_update(FUNC(rollrace_state::screen_update)); + screen.set_palette(m_palette); + screen.screen_vblank().set(FUNC(rollrace_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rollrace); PALETTE(config, m_palette, FUNC(rollrace_state::rollrace_palette), 256); @@ -292,16 +292,16 @@ MACHINE_CONFIG_START(rollrace_state::rollrace) AY8910(config, "ay2", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "rspeaker", 0.10); /* verified on pcb */ AY8910(config, "ay3", XTAL(24'000'000)/16).add_route(ALL_OUTPUTS, "lspeaker", 0.10); /* verified on pcb */ -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rollrace_state::rollace2) +void rollrace_state::rollace2(machine_config &config) +{ rollrace(config); /* basic machine hardware */ -// MCFG_SCREEN_MODIFY("screen") -// MCFG_SCREEN_VISIBLE_AREA(0,256-1,16, 255-16) -MACHINE_CONFIG_END +// subdevice("screen")->set_visarea(0, 256-1, 16, 255-16); +} /*************************************************************************** diff --git a/src/mame/drivers/ron.cpp b/src/mame/drivers/ron.cpp index 2bade072443..a2f6d8d91b2 100644 --- a/src/mame/drivers/ron.cpp +++ b/src/mame/drivers/ron.cpp @@ -486,12 +486,12 @@ WRITE8_MEMBER(ron_state::ay_pa_w) { } -MACHINE_CONFIG_START(ron_state::ron) - +void ron_state::ron(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(ron_map) - MCFG_DEVICE_IO_MAP(ron_io) + Z80(config, m_maincpu, MAIN_CLOCK); + m_maincpu->set_addrmap(AS_PROGRAM, &ron_state::ron_map); + m_maincpu->set_addrmap(AS_IO, &ron_state::ron_io); I8035(config, m_audiocpu, SOUND_CLOCK); m_audiocpu->set_addrmap(AS_PROGRAM, &ron_state::ron_audio_map); @@ -503,11 +503,11 @@ MACHINE_CONFIG_START(ron_state::ron) m_audiocpu->t1_in_cb().set(FUNC(ron_state::audio_t1_r)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DRIVER(ron_state, screen_update) - MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, ron_state, vblank_irq)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update(FUNC(ron_state::screen_update)); + screen.set_raw(VIDEO_CLOCK, 320, 0, 256, 264, 0, 240); + screen.set_palette("palette"); + screen.screen_vblank().set(FUNC(ron_state::vblank_irq)); GFXDECODE(config, m_gfxdecode, "palette", gfx_ron); @@ -519,7 +519,7 @@ MACHINE_CONFIG_START(ron_state::ron) AY8910(config, m_ay, 0); // T0 CLK from I8035 (not verified) m_ay->add_route(ALL_OUTPUTS, "mono", 0.30); m_ay->port_a_write_callback().set(FUNC(ron_state::ay_pa_w)); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/roul.cpp b/src/mame/drivers/roul.cpp index 1857d4bb465..51e23dcbb38 100644 --- a/src/mame/drivers/roul.cpp +++ b/src/mame/drivers/roul.cpp @@ -312,27 +312,28 @@ static INPUT_PORTS_START( roul ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) INPUT_PORTS_END -MACHINE_CONFIG_START(roul_state::roul) +void roul_state::roul(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(roul_map) - MCFG_DEVICE_IO_MAP(roul_cpu_io_map) + Z80(config, m_maincpu, 4000000); + m_maincpu->set_addrmap(AS_PROGRAM, &roul_state::roul_map); + m_maincpu->set_addrmap(AS_IO, &roul_state::roul_cpu_io_map); - MCFG_DEVICE_ADD("soundcpu", Z80, 4000000) - MCFG_DEVICE_PROGRAM_MAP(sound_map) - MCFG_DEVICE_IO_MAP(sound_cpu_io_map) + Z80(config, m_soundcpu, 4000000); + m_soundcpu->set_addrmap(AS_PROGRAM, &roul_state::sound_map); + m_soundcpu->set_addrmap(AS_IO, &roul_state::sound_cpu_io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(32*8, 32*8) - MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) - MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update) - MCFG_SCREEN_PALETTE("palette") - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_NMI)) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(32*8, 32*8); + screen.set_visarea(0*8, 32*8-1, 0*8, 32*8-1); + screen.set_screen_update(FUNC(roul_state::screen_update)); + screen.set_palette("palette"); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_NMI); PALETTE(config, "palette", FUNC(roul_state::roul_palette), 0x100); @@ -341,7 +342,7 @@ MACHINE_CONFIG_START(roul_state::roul) GENERIC_LATCH_8(config, m_soundlatch); AY8910(config, "aysnd", 1000000).add_route(ALL_OUTPUTS, "mono", 1.0); -MACHINE_CONFIG_END +} ROM_START(roul) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index d6d61f4ff71..e7911dd960b 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -3532,26 +3532,26 @@ static INPUT_PORTS_START( mjvegasa ) INPUT_PORTS_END -MACHINE_CONFIG_START(royalmah_state::royalmah) - +void royalmah_state::royalmah(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, Z80, 18432000/6) /* 3.072 MHz */ - MCFG_DEVICE_PROGRAM_MAP(royalmah_map) - MCFG_DEVICE_IO_MAP(royalmah_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold) + Z80(config, m_maincpu, 18432000/6); /* 3.072 MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::royalmah_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap); + m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* video hardware */ PALETTE(config, "palette", FUNC(royalmah_state::royalmah_palette), 16*4); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_SIZE(256, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_size(256, 256); + screen.set_visarea(0, 255, 8, 247); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_screen_update(FUNC(royalmah_state::screen_update_royalmah)); + screen.set_palette("palette"); /* sound hardware */ SPEAKER(config, "speaker").front_center(); @@ -3560,32 +3560,32 @@ MACHINE_CONFIG_START(royalmah_state::royalmah) m_ay->port_a_read_callback().set(FUNC(royalmah_state::player_1_port_r)); m_ay->port_b_read_callback().set(FUNC(royalmah_state::player_2_port_r)); m_ay->add_route(ALL_OUTPUTS, "speaker", 0.33); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::janoh) +void royalmah_state::janoh(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(janoh_map) + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::janoh_map); - MCFG_DEVICE_ADD("sub", Z80, 4000000) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(janoh_sub_map) - MCFG_DEVICE_IO_MAP(janoh_sub_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, irq0_line_hold) -MACHINE_CONFIG_END + z80_device &sub(Z80(config, "sub", 4000000)); /* 4 MHz ? */ + sub.set_addrmap(AS_PROGRAM, &royalmah_state::janoh_sub_map); + sub.set_addrmap(AS_IO, &royalmah_state::janoh_sub_iomap); + sub.set_vblank_int("screen", FUNC(royalmah_state::irq0_line_hold)); +} -MACHINE_CONFIG_START(royalmah_state::jansou) +void royalmah_state::jansou(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(jansou_map) - MCFG_DEVICE_IO_MAP(royalmah_iomap) + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::royalmah_iomap); - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) /* 4.000 MHz */ - MCFG_DEVICE_PROGRAM_MAP(jansou_sub_map) - MCFG_DEVICE_IO_MAP(jansou_sub_iomap) - MCFG_DEVICE_PERIODIC_INT_DRIVER(royalmah_state, irq0_line_hold, 4000000/512) + Z80(config, m_audiocpu, 4000000); /* 4.000 MHz */ + m_audiocpu->set_addrmap(AS_PROGRAM, &royalmah_state::jansou_sub_map); + m_audiocpu->set_addrmap(AS_IO, &royalmah_state::jansou_sub_iomap); + m_audiocpu->set_periodic_int(FUNC(royalmah_state::irq0_line_hold), attotime::from_hz(4000000/512)); GENERIC_LATCH_8(config, m_soundlatch); @@ -3593,74 +3593,74 @@ MACHINE_CONFIG_START(royalmah_state::jansou) voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref")); vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::dondenmj) +void royalmah_state::dondenmj(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(dondenmj_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::dondenmj_iomap); +} -MACHINE_CONFIG_START(royalmah_state::tahjong) +void royalmah_state::tahjong(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_PROGRAM_MAP(tahjong_map) - MCFG_DEVICE_IO_MAP(tahjong_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::tahjong_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::tahjong_iomap); +} -MACHINE_CONFIG_START(royalmah_state::makaijan) +void royalmah_state::makaijan(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(makaijan_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::makaijan_iomap); +} -MACHINE_CONFIG_START(royalmah_state::daisyari) +void royalmah_state::daisyari(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(daisyari_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::daisyari_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjclub) +void royalmah_state::mjclub(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(8000000/2) /* 4 MHz ? */ - MCFG_DEVICE_IO_MAP(mjclub_iomap) -MACHINE_CONFIG_END + m_maincpu->set_clock(8000000/2); /* 4 MHz ? */ + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjclub_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjyarou) +void royalmah_state::mjyarou(machine_config &config) +{ royalmah(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjyarou_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjyarou_iomap); +} -MACHINE_CONFIG_START(royalmah_state::ippatsu) +void royalmah_state::ippatsu(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(ippatsu_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::ippatsu_iomap); +} -MACHINE_CONFIG_START(royalmah_state::janyoup2) +void royalmah_state::janyoup2(machine_config &config) +{ ippatsu(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_CLOCK(XTAL(18'432'000)/4) // unknown divider - MCFG_DEVICE_IO_MAP(janyoup2_iomap) + m_maincpu->set_clock(XTAL(18'432'000)/4); // unknown divider + m_maincpu->set_addrmap(AS_IO, &royalmah_state::janyoup2_iomap); h46505_device &crtc(H46505(config, "crtc", XTAL(18'432'000)/12)); // unknown divider crtc.set_screen("screen"); crtc.set_show_border_area(false); crtc.set_char_width(4); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::seljan) +void royalmah_state::seljan(machine_config &config) +{ janyoup2(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(seljan_map) - MCFG_DEVICE_IO_MAP(seljan_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::seljan_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::seljan_iomap); +} INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq) { @@ -3668,12 +3668,12 @@ INTERRUPT_GEN_MEMBER(royalmah_state::suzume_irq) device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero); } -MACHINE_CONFIG_START(royalmah_state::suzume) +void royalmah_state::suzume(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(suzume_iomap) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", royalmah_state, suzume_irq) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::suzume_iomap); + m_maincpu->set_vblank_int("screen", FUNC(royalmah_state::suzume_irq)); +} void royalmah_state::jongshin(machine_config &config) { @@ -3681,41 +3681,41 @@ void royalmah_state::jongshin(machine_config &config) m_maincpu->set_addrmap(AS_IO, &royalmah_state::jongshin_iomap); } -MACHINE_CONFIG_START(royalmah_state::tontonb) +void royalmah_state::tontonb(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(tontonb_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::tontonb_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjdiplob) +void royalmah_state::mjdiplob(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjdiplob_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjdiplob_iomap); +} -MACHINE_CONFIG_START(royalmah_state::majs101b) +void royalmah_state::majs101b(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(majs101b_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_IO, &royalmah_state::majs101b_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjapinky) +void royalmah_state::mjapinky(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mjapinky_map) - MCFG_DEVICE_IO_MAP(mjapinky_iomap) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &royalmah_state::mjapinky_map); + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjapinky_iomap); +} -MACHINE_CONFIG_START(royalmah_state::mjderngr) +void royalmah_state::mjderngr(machine_config &config) +{ dondenmj(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(mjderngr_iomap) + m_maincpu->set_addrmap(AS_IO, &royalmah_state::mjderngr_iomap); /* video hardware */ auto &palette(*subdevice("palette")); palette.set_entries(16*32); palette.set_init(FUNC(royalmah_state::mjderngr_palette)); -MACHINE_CONFIG_END +} void royalmah_state::janptr96(machine_config &config) { @@ -3737,7 +3737,8 @@ void royalmah_state::janptr96(machine_config &config) } -MACHINE_CONFIG_START(royalmah_state::mjifb) +void royalmah_state::mjifb(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map); @@ -3750,13 +3751,14 @@ MACHINE_CONFIG_START(royalmah_state::mjifb) tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) -MACHINE_CONFIG_END + screen_device &screen(*subdevice("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); +} -MACHINE_CONFIG_START(royalmah_state::mjdejavu) +void royalmah_state::mjdejavu(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map); @@ -3769,43 +3771,46 @@ MACHINE_CONFIG_START(royalmah_state::mjdejavu) tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) -MACHINE_CONFIG_END + screen_device &screen(*subdevice("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); +} -MACHINE_CONFIG_START(royalmah_state::mjtensin) +void royalmah_state::mjtensin(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map); tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r)); tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::cafetime) +void royalmah_state::cafetime(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map); tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w)); tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(royalmah_state::mjvegasa) +void royalmah_state::mjvegasa(machine_config &config) +{ mjderngr(config); tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */ tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map); @@ -3813,13 +3818,13 @@ MACHINE_CONFIG_START(royalmah_state::mjvegasa) tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w)); tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w)); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) - MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + screen_device &screen(*subdevice("screen")); + screen.set_visarea(0, 255, 8, 255-8); + screen.screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0); /* devices */ MSM6242(config, m_rtc, 32.768_kHz_XTAL).out_int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ1); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rpunch.cpp b/src/mame/drivers/rpunch.cpp index 6b16c5bd4d5..2e2b36e2ac7 100644 --- a/src/mame/drivers/rpunch.cpp +++ b/src/mame/drivers/rpunch.cpp @@ -457,14 +457,14 @@ GFXDECODE_END * *************************************/ -MACHINE_CONFIG_START(rpunch_state::rpunch) - +void rpunch_state::rpunch(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map); - MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, MASTER_CLOCK/4); + m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>)); @@ -472,12 +472,12 @@ MACHINE_CONFIG_START(rpunch_state::rpunch) INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(304, 224) - MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) - MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(304, 224); + m_screen->set_visarea(8, 303-8, 0, 223-8); + m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_rpunch); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -495,25 +495,25 @@ MACHINE_CONFIG_START(rpunch_state::rpunch) ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50); +} -MACHINE_CONFIG_START(rpunch_state::svolley) +void rpunch_state::svolley(machine_config &config) +{ rpunch(config); MCFG_VIDEO_START_OVERRIDE(rpunch_state,svolley) -MACHINE_CONFIG_END +} // c+p of above for now, bootleg hw, things need verifying -MACHINE_CONFIG_START(rpunch_state::svolleybl) - +void rpunch_state::svolleybl(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, MASTER_CLOCK/2) - MCFG_DEVICE_PROGRAM_MAP(main_map) + M68000(config, m_maincpu, MASTER_CLOCK/2); + m_maincpu->set_addrmap(AS_PROGRAM, &rpunch_state::main_map); - MCFG_DEVICE_ADD("audiocpu", Z80, MASTER_CLOCK/4) - MCFG_DEVICE_PROGRAM_MAP(sound_map) + Z80(config, m_audiocpu, MASTER_CLOCK/4); + m_audiocpu->set_addrmap(AS_PROGRAM, &rpunch_state::sound_map); GENERIC_LATCH_8(config, m_soundlatch); m_soundlatch->data_pending_callback().set("soundirq", FUNC(input_merger_device::in_w<0>)); @@ -521,12 +521,12 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl) INPUT_MERGER_ANY_HIGH(config, "soundirq").output_handler().set_inputline(m_audiocpu, 0); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_SIZE(304, 224) - MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) - MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch) - MCFG_SCREEN_PALETTE(m_palette) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_size(304, 224); + m_screen->set_visarea(8, 303-8, 0, 223-8); + m_screen->set_screen_update(FUNC(rpunch_state::screen_update_rpunch)); + m_screen->set_palette(m_palette); GFXDECODE(config, m_gfxdecode, m_palette, gfx_svolleybl); PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 1024); @@ -545,9 +545,8 @@ MACHINE_CONFIG_START(rpunch_state::svolleybl) ymsnd.add_route(0, "mono", 0.50); ymsnd.add_route(1, "mono", 0.50); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) -MACHINE_CONFIG_END + UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.50); +} diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp index 376471eb391..ce780064f3c 100644 --- a/src/mame/drivers/rt1715.cpp +++ b/src/mame/drivers/rt1715.cpp @@ -284,7 +284,8 @@ static const z80_daisy_config rt1715_daisy_chain[] = { nullptr } }; -MACHINE_CONFIG_START(rt1715_state::rt1715) +void rt1715_state::rt1715(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 9.832_MHz_XTAL / 4); m_maincpu->set_addrmap(AS_PROGRAM, &rt1715_state::rt1715_mem); @@ -292,14 +293,14 @@ MACHINE_CONFIG_START(rt1715_state::rt1715) m_maincpu->set_daisy_config(rt1715_daisy_chain); /* keyboard */ - MCFG_DEVICE_ADD("keyboard", Z80, 683000) - MCFG_DEVICE_PROGRAM_MAP(k7658_mem) - MCFG_DEVICE_IO_MAP(k7658_io) + z80_device &keyboard(Z80(config, "keyboard", 683000)); + keyboard.set_addrmap(AS_PROGRAM, &rt1715_state::k7658_mem); + keyboard.set_addrmap(AS_IO, &rt1715_state::k7658_io); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_UPDATE_DEVICE("a26", i8275_device, screen_update) - MCFG_SCREEN_RAW_PARAMS(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300) // ? + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_screen_update("a26", FUNC(i8275_device::screen_update)); + screen.set_raw(13.824_MHz_XTAL, 864, 0, 624, 320, 0, 300); // ? GFXDECODE(config, "gfxdecode", "palette", gfx_rt1715); PALETTE(config, "palette", FUNC(rt1715_state::rt1715_palette), 3); @@ -320,11 +321,12 @@ MACHINE_CONFIG_START(rt1715_state::rt1715) /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K").set_default_value(0x00); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(rt1715_state::rt1715w) +void rt1715_state::rt1715w(machine_config &config) +{ rt1715(config); -MACHINE_CONFIG_END +} /*************************************************************************** diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp index 716d9bd0435..c6002549395 100644 --- a/src/mame/drivers/rx78.cpp +++ b/src/mame/drivers/rx78.cpp @@ -472,24 +472,23 @@ GFXDECODE_END MACHINE_CONFIG_START(rx78_state::rx78) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, MASTER_CLOCK/7) // unknown divider - MCFG_DEVICE_PROGRAM_MAP(rx78_mem) - MCFG_DEVICE_IO_MAP(rx78_io) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", rx78_state, irq0_line_hold) + Z80(config, m_maincpu, MASTER_CLOCK/7); // unknown divider + m_maincpu->set_addrmap(AS_PROGRAM, &rx78_state::rx78_mem); + m_maincpu->set_addrmap(AS_IO, &rx78_state::rx78_io); + m_maincpu->set_vblank_int("screen", FUNC(rx78_state::irq0_line_hold)); /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) -// MCFG_SCREEN_REFRESH_RATE(60) -// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ -// MCFG_SCREEN_SIZE(192, 184) -// MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 184-1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); +// screen.set_refresh_hz(60); +// screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ +// screen.set_size(192, 184); +// screen.set_visarea(0, 192-1, 0, 184-1); /* guess: generic NTSC video timing at 256x224, system runs at 192x184, suppose with some border area to compensate */ - MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224) - MCFG_SCREEN_UPDATE_DRIVER(rx78_state, screen_update) + screen.set_raw(MASTER_CLOCK/4, 442, 0, 256, 263, 0, 224); + screen.set_screen_update(FUNC(rx78_state::screen_update)); + screen.set_palette("palette"); - MCFG_SCREEN_PALETTE("palette") - - MCFG_PALETTE_ADD("palette", 16+1) //+1 for the background color + PALETTE(config, m_palette).set_entries(16+1); //+1 for the background color GFXDECODE(config, "gfxdecode", m_palette, gfx_rx78); MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "rx78_cart") @@ -504,8 +503,7 @@ MACHINE_CONFIG_START(rx78_state::rx78) WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); - MCFG_DEVICE_ADD("sn1", SN76489A, XTAL(28'636'363)/8) // unknown divider - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) + SN76489A(config, "sn1", XTAL(28'636'363)/8).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown divider /* Software lists */ SOFTWARE_LIST(config, "cart_list").set_original("rx78"); diff --git a/src/mame/drivers/rzone.cpp b/src/mame/drivers/rzone.cpp index 0052aa75c23..53305092ea2 100644 --- a/src/mame/drivers/rzone.cpp +++ b/src/mame/drivers/rzone.cpp @@ -242,8 +242,8 @@ INPUT_PORTS_END ***************************************************************************/ -MACHINE_CONFIG_START(rzone_state::rzbatfor) - +void rzone_state::rzbatfor(machine_config &config) +{ /* basic machine hardware */ SM512(config, m_maincpu); // no external XTAL m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm510_lcd_segment_w)); @@ -252,10 +252,10 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor) m_maincpu->write_r().set(FUNC(rzone_state::t2_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1368, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1368-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1368, 1080); + screen.set_visarea(0, 1368-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -263,12 +263,11 @@ MACHINE_CONFIG_START(rzone_state::rzbatfor) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rzone_state::rztoshden) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} +void rzone_state::rztoshden(machine_config &config) +{ /* basic machine hardware */ SM510(config, m_maincpu); m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); @@ -278,10 +277,10 @@ MACHINE_CONFIG_START(rzone_state::rztoshden) m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1392, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1392-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1392, 1080); + screen.set_visarea(0, 1392-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -289,12 +288,11 @@ MACHINE_CONFIG_START(rzone_state::rztoshden) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(rzone_state::rzindy500) + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} +void rzone_state::rzindy500(machine_config &config) +{ /* basic machine hardware */ SM510(config, m_maincpu); // no external XTAL m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed @@ -304,10 +302,10 @@ MACHINE_CONFIG_START(rzone_state::rzindy500) m_maincpu->write_r().set(FUNC(rzone_state::t1_write_r)); /* video hardware */ - MCFG_SCREEN_SVG_ADD("screen", "svg") - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_SIZE(1425, 1080) - MCFG_SCREEN_VISIBLE_AREA(0, 1425-1, 0, 1080-1) + screen_device &screen(SCREEN(config, "screen", "svg")); + screen.set_refresh_hz(50); + screen.set_size(1425, 1080); + screen.set_visarea(0, 1425-1, 0, 1080-1); TIMER(config, m_led_off).configure_generic(FUNC(rzone_state::led_off_callback)); TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); @@ -315,9 +313,8 @@ MACHINE_CONFIG_START(rzone_state::rzindy500) /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25); +} From 7f5b2f31ff7a27d631ebebfe9a21cfd660ad45a6 Mon Sep 17 00:00:00 2001 From: cam900 Date: Tue, 26 Feb 2019 05:11:49 +0900 Subject: [PATCH 34/42] divideo.h : Remove MCFG_VIDEO_SET_SCREEN usage (#4667) * divideo.h : Remove MCFG_VIDEO_SET_SCREEN usage attckufo.cpp, bw2.cpp, cdi.cpp, gambl186.cpp, gamtor.cpp, ibmpcjr.cpp, intv.cpp, photoply.cpp, pntnpuzl.cpp, tandy1t.cpp : Remove MCFGs * ibmpcjr.cpp : Partially revert this --- src/emu/divideo.h | 9 -- src/mame/drivers/attckufo.cpp | 31 ++--- src/mame/drivers/bw2.cpp | 30 ++--- src/mame/drivers/cdi.cpp | 206 +++++++++++++++++----------------- src/mame/drivers/gambl186.cpp | 25 ++--- src/mame/drivers/gamtor.cpp | 20 ++-- src/mame/drivers/ibmpcjr.cpp | 9 +- src/mame/drivers/intv.cpp | 74 ++++++------ src/mame/drivers/photoply.cpp | 17 ++- src/mame/drivers/pntnpuzl.cpp | 18 +-- src/mame/drivers/tandy1t.cpp | 115 ++++++++++--------- 11 files changed, 275 insertions(+), 279 deletions(-) diff --git a/src/emu/divideo.h b/src/emu/divideo.h index 1b6f48104bd..626d5bc66b4 100644 --- a/src/emu/divideo.h +++ b/src/emu/divideo.h @@ -18,15 +18,6 @@ #define MAME_EMU_DIVIDEO_H -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_VIDEO_SET_SCREEN(_tag) \ - dynamic_cast(*device).set_screen(_tag); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** diff --git a/src/mame/drivers/attckufo.cpp b/src/mame/drivers/attckufo.cpp index b2b120b85c4..3f2e507c411 100644 --- a/src/mame/drivers/attckufo.cpp +++ b/src/mame/drivers/attckufo.cpp @@ -119,9 +119,10 @@ READ8_MEMBER(attckufo_state::vic_colorram_r) // MACHINE DEFINTIONS //************************************************************************** -MACHINE_CONFIG_START(attckufo_state::attckufo) - MCFG_DEVICE_ADD("maincpu", M6502, XTAL(14'318'181) / 14) - MCFG_DEVICE_PROGRAM_MAP(cpu_map) +void attckufo_state::attckufo(machine_config &config) +{ + M6502(config, m_maincpu, XTAL(14'318'181) / 14); + m_maincpu->set_addrmap(AS_PROGRAM, &attckufo_state::cpu_map); pia6821_device &pia(PIA6821(config, "pia", 0)); pia.readpa_handler().set_ioport("DSW"); @@ -129,19 +130,19 @@ MACHINE_CONFIG_START(attckufo_state::attckufo) SPEAKER(config, "mono").front_center(); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(MOS6560_VRETRACERATE) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) - MCFG_SCREEN_SIZE((MOS6560_XSIZE + 7) & ~7, MOS6560_YSIZE) - MCFG_SCREEN_VISIBLE_AREA(0, 23*8 - 1, 0, 22*8 - 1) - MCFG_SCREEN_UPDATE_DEVICE("mos6560", mos6560_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(MOS6560_VRETRACERATE); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); + screen.set_size((MOS6560_XSIZE + 7) & ~7, MOS6560_YSIZE); + screen.set_visarea(0, 23*8 - 1, 0, 22*8 - 1); + screen.set_screen_update("mos6560", FUNC(mos6560_device::screen_update)); - MCFG_DEVICE_ADD("mos6560", MOS656X_ATTACK_UFO, XTAL(14'318'181) / 14) - MCFG_VIDEO_SET_SCREEN("screen") - MCFG_DEVICE_ADDRESS_MAP(0, vic_videoram_map) - MCFG_DEVICE_ADDRESS_MAP(1, vic_colorram_map) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) -MACHINE_CONFIG_END + mos6560_device &mos6560(MOS656X_ATTACK_UFO(config, "mos6560", XTAL(14'318'181) / 14)); + mos6560.set_screen("screen"); + mos6560.set_addrmap(0, &attckufo_state::vic_videoram_map); + mos6560.set_addrmap(1, &attckufo_state::vic_colorram_map); + mos6560.add_route(ALL_OUTPUTS, "mono", 0.25); +} //************************************************************************** diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp index bd7769698d0..0d8430fe6fe 100644 --- a/src/mame/drivers/bw2.cpp +++ b/src/mame/drivers/bw2.cpp @@ -542,19 +542,21 @@ void bw2_state::machine_start() // MACHINE_CONFIG( bw2 ) //------------------------------------------------- -MACHINE_CONFIG_START(bw2_state::bw2) +void bw2_state::bw2(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(Z80_TAG, Z80, 16_MHz_XTAL / 4) - MCFG_DEVICE_PROGRAM_MAP(bw2_mem) - MCFG_DEVICE_IO_MAP(bw2_io) + Z80(config, m_maincpu, 16_MHz_XTAL / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &bw2_state::bw2_mem); + m_maincpu->set_addrmap(AS_IO, &bw2_state::bw2_io); // video hardware - MCFG_SCREEN_ADD(SCREEN_TAG, LCD) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_UPDATE_DEVICE( MSM6255_TAG, msm6255_device, screen_update ) - MCFG_SCREEN_SIZE(640, 200) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) - MCFG_SCREEN_PALETTE("palette") + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_LCD)); + screen.set_refresh_hz(60); + screen.set_screen_update(MSM6255_TAG, FUNC(msm6255_device::screen_update)); + screen.set_size(640, 200); + screen.set_visarea(0, 640-1, 0, 200-1); + screen.set_palette("palette"); + PALETTE(config, "palette", FUNC(bw2_state::bw2_palette), 2); // devices @@ -573,9 +575,9 @@ MACHINE_CONFIG_START(bw2_state::bw2) ppi.in_pc_callback().set(FUNC(bw2_state::ppi_pc_r)); ppi.out_pc_callback().set(FUNC(bw2_state::ppi_pc_w)); - MCFG_DEVICE_ADD(MSM6255_TAG, MSM6255, 16_MHz_XTAL) - MCFG_DEVICE_ADDRESS_MAP(0, lcdc_map) - MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) + MSM6255(config, m_lcdc, 16_MHz_XTAL); + m_lcdc->set_addrmap(0, &bw2_state::lcdc_map); + m_lcdc->set_screen(SCREEN_TAG); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(bw2_state::write_centronics_busy)); @@ -605,7 +607,7 @@ MACHINE_CONFIG_START(bw2_state::bw2) // internal ram RAM(config, RAM_TAG).set_default_size("64K").set_extra_options("96K,128K,160K,192K,224K"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/cdi.cpp b/src/mame/drivers/cdi.cpp index 2230ba8a0cc..6df32896e33 100644 --- a/src/mame/drivers/cdi.cpp +++ b/src/mame/drivers/cdi.cpp @@ -748,86 +748,88 @@ WRITE8_MEMBER( cdi_state::slave_io_w ) *************************/ // CD-i Mono-I system base -MACHINE_CONFIG_START(cdi_state::cdimono1_base) - MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) - MCFG_DEVICE_PROGRAM_MAP(cdimono1_mem) +void cdi_state::cdimono1_base(machine_config &config) +{ + SCC68070(config, m_maincpu, CLOCK_A/2); + m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono1_mem); - MCFG_DEVICE_ADD("mcd212", MCD212, 0) - MCFG_VIDEO_SET_SCREEN("screen") + MCD212(config, m_mcd212, 0); + m_mcd212->set_screen("screen"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(384, 302) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(384, 302); + screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution + screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1)); - MCFG_SCREEN_ADD("lcd", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(192, 22) - MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd) + SCREEN(config, m_lcd, SCREEN_TYPE_RASTER); + m_lcd->set_refresh_hz(60); + m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_lcd->set_size(192, 22); + m_lcd->set_visarea(0, 192-1, 0, 22-1); + m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd)); - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, "palette").set_entries(0x100); config.set_default_layout(layout_cdi); - MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") + CDI_68070(config, m_scc, 0, "maincpu"); - MCFG_DEVICE_ADD("cdic", CDI_CDIC, 0) - MCFG_DEVICE_ADD("slave_hle", CDI_SLAVE, 0) + CDI_CDIC(config, m_cdic, 0); + CDI_SLAVE(config, m_slave_hle, 0); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD( "dac1", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) + DMADAC(config, m_dmadac[0]); + m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - MCFG_DEVICE_ADD( "dac2", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + DMADAC(config, m_dmadac[1]); + m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD( "cdda", CDDA ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + CDDA(config, m_cdda); + m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("mk48t08", MK48T08, 0) -MACHINE_CONFIG_END + MK48T08(config, "mk48t08", 0); +} // CD-i model 220 (Mono-II, NTSC) -MACHINE_CONFIG_START(cdi_state::cdimono2) - MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) - MCFG_DEVICE_PROGRAM_MAP(cdimono2_mem) +void cdi_state::cdimono2(machine_config &config) +{ + SCC68070(config, m_maincpu, CLOCK_A/2); + m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_mem); - MCFG_DEVICE_ADD("mcd212", MCD212, 0) - MCFG_VIDEO_SET_SCREEN("screen") + MCD212(config, m_mcd212, 0); + m_mcd212->set_screen("screen"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(384, 302) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(384, 302); + screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution + screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1)); - MCFG_SCREEN_ADD("lcd", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(192, 22) - MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd) + SCREEN(config, m_lcd, SCREEN_TYPE_RASTER); + m_lcd->set_refresh_hz(60); + m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_lcd->set_size(192, 22); + m_lcd->set_visarea(0, 192-1, 0, 22-1); + m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd)); - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, "palette").set_entries(0x100); config.set_default_layout(layout_cdi); MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) - MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") - MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ - MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem) - MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ - MCFG_DEVICE_PROGRAM_MAP(cdimono2_slave_mem) + CDI_68070(config, m_scc, 0, "maincpu"); + M68HC05EG(config, m_servo, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */ + m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem); + M68HC05EG(config, m_slave, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */ + m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem); CDROM(config, "cdrom").set_interface("cdi_cdrom"); SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC"); @@ -836,51 +838,52 @@ MACHINE_CONFIG_START(cdi_state::cdimono2) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD( "dac1", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) + DMADAC(config, m_dmadac[0]); + m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - MCFG_DEVICE_ADD( "dac2", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + DMADAC(config, m_dmadac[1]); + m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD( "cdda", CDDA ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + CDDA(config, m_cdda); + m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("mk48t08", MK48T08, 0) -MACHINE_CONFIG_END + MK48T08(config, "mk48t08", 0); +} -MACHINE_CONFIG_START(cdi_state::cdi910) - MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) - MCFG_DEVICE_PROGRAM_MAP(cdi910_mem) +void cdi_state::cdi910(machine_config &config) +{ + SCC68070(config, m_maincpu, CLOCK_A/2); + m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdi910_mem); - MCFG_DEVICE_ADD("mcd212", MCD212, 0) - MCFG_VIDEO_SET_SCREEN("screen") + MCD212(config, m_mcd212, 0); + m_mcd212->set_screen("screen"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(384, 302) - MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) // TODO: dynamic resolution - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(60); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(0)); + screen.set_size(384, 302); + screen.set_visarea(0, 384-1, 22, 302-1); // TODO: dynamic resolution + screen.set_screen_update(FUNC(cdi_state::screen_update_cdimono1)); - MCFG_SCREEN_ADD("lcd", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(192, 22) - MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) - MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd) + SCREEN(config, m_lcd, SCREEN_TYPE_RASTER); + m_lcd->set_refresh_hz(60); + m_lcd->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_lcd->set_size(192, 22); + m_lcd->set_visarea(0, 192-1, 0, 22-1); + m_lcd->set_screen_update(FUNC(cdi_state::screen_update_cdimono1_lcd)); - MCFG_PALETTE_ADD("palette", 0x100) + PALETTE(config, "palette").set_entries(0x100); config.set_default_layout(layout_cdi); MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) - MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") - MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ - MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem) - MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ - MCFG_DEVICE_PROGRAM_MAP(cdimono2_slave_mem) + CDI_68070(config, m_scc, 0, "maincpu"); + M68HC05EG(config, m_servo, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */ + m_servo->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_servo_mem); + M68HC05EG(config, m_slave, 2000000); /* Unknown clock speed, docs say 2MHz internal clock */ + m_slave->set_addrmap(AS_PROGRAM, &cdi_state::cdimono2_slave_mem); CDROM(config, "cdrom").set_interface("cdi_cdrom"); SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC"); @@ -889,34 +892,35 @@ MACHINE_CONFIG_START(cdi_state::cdi910) SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); - MCFG_DEVICE_ADD( "dac1", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) + DMADAC(config, m_dmadac[0]); + m_dmadac[0]->add_route(ALL_OUTPUTS, "lspeaker", 1.0); - MCFG_DEVICE_ADD( "dac2", DMADAC ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + DMADAC(config, m_dmadac[1]); + m_dmadac[1]->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD( "cdda", CDDA ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) - MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) + CDDA(config, m_cdda); + m_cdda->add_route(ALL_OUTPUTS, "lspeaker", 1.0); + m_cdda->add_route(ALL_OUTPUTS, "rspeaker", 1.0); - MCFG_DEVICE_ADD("mk48t08", MK48T08, 0) -MACHINE_CONFIG_END + MK48T08(config, "mk48t08", 0); +} // CD-i Mono-I, with CD-ROM image device (MESS) and Software List (MESS) -MACHINE_CONFIG_START(cdi_state::cdimono1) +void cdi_state::cdimono1(machine_config &config) +{ cdimono1_base(config); MCFG_MACHINE_RESET_OVERRIDE(cdi_state, cdimono1) CDROM(config, "cdrom").set_interface("cdi_cdrom"); SOFTWARE_LIST(config, "cd_list").set_original("cdi").set_filter("!DVC"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(cdi_state::quizard) +void cdi_state::quizard(machine_config &config) +{ cdimono1_base(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(cdimono1_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cdi_state, mcu_frame) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &cdi_state::cdimono1_mem); + m_maincpu->set_vblank_int("screen", FUNC(cdi_state::mcu_frame)); +} READ8_MEMBER( cdi_state::quizard_mcu_p1_r ) diff --git a/src/mame/drivers/gambl186.cpp b/src/mame/drivers/gambl186.cpp index fb24cd27511..96c7bd1b3fa 100644 --- a/src/mame/drivers/gambl186.cpp +++ b/src/mame/drivers/gambl186.cpp @@ -472,26 +472,25 @@ INPUT_PORTS_END -MACHINE_CONFIG_START(gambl186_state::gambl186) - MCFG_DEVICE_ADD("maincpu", I80186, XTAL(40'000'000)) - MCFG_DEVICE_PROGRAM_MAP(gambl186_map) - MCFG_DEVICE_IO_MAP(gambl186_io) +void gambl186_state::gambl186(machine_config &config) +{ + I80186(config, m_maincpu, XTAL(40'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &gambl186_state::gambl186_map); + m_maincpu->set_addrmap(AS_IO, &gambl186_state::gambl186_io); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480); + screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update)); - MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0) - MCFG_VIDEO_SET_SCREEN("screen") + CIRRUS_GD5428(config, "vga", 0).set_screen("screen"); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("7759", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) - -MACHINE_CONFIG_END + UPD7759(config, m_upd7759); + m_upd7759->add_route(ALL_OUTPUTS, "mono", 0.75); +} diff --git a/src/mame/drivers/gamtor.cpp b/src/mame/drivers/gamtor.cpp index c282e7944f7..02800959be0 100644 --- a/src/mame/drivers/gamtor.cpp +++ b/src/mame/drivers/gamtor.cpp @@ -85,23 +85,23 @@ INPUT_PORTS_END -MACHINE_CONFIG_START(gaminator_state::gaminator) - MCFG_DEVICE_ADD("maincpu", MCF5206E, 40000000) /* definitely Coldfire, model / clock uncertain */ - MCFG_DEVICE_PROGRAM_MAP(gaminator_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", gaminator_state, irq6_line_hold) // irq6 seems to be needed to get past the ROM checking +void gaminator_state::gaminator(machine_config &config) +{ + MCF5206E(config, m_maincpu, 40000000); /* definitely Coldfire, model / clock uncertain */ + m_maincpu->set_addrmap(AS_PROGRAM, &gaminator_state::gaminator_map); + m_maincpu->set_vblank_int("screen", FUNC(gaminator_state::irq6_line_hold)); // irq6 seems to be needed to get past the ROM checking MCF5206E_PERIPHERAL(config, "maincpu_onboard", 0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", gamtor_vga_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480); + screen.set_screen_update("vga", FUNC(gamtor_vga_device::screen_update)); - MCFG_DEVICE_ADD("vga", GAMTOR_VGA, 0) - MCFG_VIDEO_SET_SCREEN("screen") + GAMTOR_VGA(config, "vga", 0).set_screen("screen"); SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); /* unknown sound */ -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp index 52f85851c7b..caeaea3ba4b 100644 --- a/src/mame/drivers/ibmpcjr.cpp +++ b/src/mame/drivers/ibmpcjr.cpp @@ -638,17 +638,14 @@ MACHINE_CONFIG_START(pcjr_state::ibmpcjr) serport.cts_handler().set("ins8250", FUNC(ins8250_uart_device::cts_w)); /* video hardware */ - MCFG_DEVICE_ADD("pcvideo_pcjr", PCVIDEO_PCJR, 0) - MCFG_VIDEO_SET_SCREEN("pcvideo_pcjr:screen") + PCVIDEO_PCJR(config, "pcvideo_pcjr", 0).set_screen("pcvideo_pcjr:screen"); GFXDECODE(config, "gfxdecode", "pcvideo_pcjr:palette", gfx_pcjr); /* sound hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_DEVICE_ADD("sn76496", SN76496, XTAL(14'318'181)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) + SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80); + SN76496(config, "sn76496", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mono", 0.80); /* printer */ pc_lpt_device &lpt0(PC_LPT(config, "lpt_0")); diff --git a/src/mame/drivers/intv.cpp b/src/mame/drivers/intv.cpp index a2e0ce17778..34fdf36526d 100644 --- a/src/mame/drivers/intv.cpp +++ b/src/mame/drivers/intv.cpp @@ -457,24 +457,25 @@ INTERRUPT_GEN_MEMBER(intv_state::intv_interrupt2) timer_set(m_keyboard->cycles_to_attotime(100), TIMER_INTV_INTERRUPT2_COMPLETE); } -MACHINE_CONFIG_START(intv_state::intv) +void intv_state::intv(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", CP1610, XTAL(3'579'545)/4) /* Colorburst/4 */ - MCFG_DEVICE_PROGRAM_MAP(intv_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt) + CP1610(config, m_maincpu, XTAL(3'579'545)/4); /* Colorburst/4 */ + m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intv_mem); + m_maincpu->set_vblank_int("screen", FUNC(intv_state::intv_interrupt)); config.m_minimum_quantum = attotime::from_hz(60); /* video hardware */ - MCFG_DEVICE_ADD("stic", STIC, XTAL(3'579'545)) - MCFG_VIDEO_SET_SCREEN("screen") + STIC(config, m_stic, XTAL(3'579'545)); + m_stic->set_screen("screen"); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(59.92) - //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv) - MCFG_SCREEN_SIZE(stic_device::SCREEN_WIDTH*INTV_X_SCALE, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE) - MCFG_SCREEN_VISIBLE_AREA(0, stic_device::SCREEN_WIDTH*INTV_X_SCALE-1, 0, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE-1) - MCFG_SCREEN_PALETTE(m_palette) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(59.92); + //screen.set_vblank_time(ATTOSECONDS_IN_USEC(2400)); /* not accurate */ + screen.set_screen_update(FUNC(intv_state::screen_update_intv)); + screen.set_size(stic_device::SCREEN_WIDTH*INTV_X_SCALE, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE); + screen.set_visarea(0, stic_device::SCREEN_WIDTH*INTV_X_SCALE-1, 0, stic_device::SCREEN_HEIGHT*INTV_Y_SCALE-1); + screen.set_palette(m_palette); PALETTE(config, m_palette, FUNC(intv_state::intv_palette), 0x400, 32); @@ -494,30 +495,30 @@ MACHINE_CONFIG_START(intv_state::intv) /* software lists */ SOFTWARE_LIST(config, "cart_list").set_original("intv"); SOFTWARE_LIST(config, "ecs_list").set_compatible("intvecs"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(intv_state::intv2) +void intv_state::intv2(machine_config &config) +{ intv(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(intv2_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intv2_mem); +} -MACHINE_CONFIG_START(intv_state::intvoice) +void intv_state::intvoice(machine_config &config) +{ intv(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(intvoice_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvoice_mem); config.device_remove("cartslot"); - MCFG_DEVICE_ADD("voice", INTV_ROM_VOICE, 0) -MACHINE_CONFIG_END + INTV_ROM_VOICE(config, "voice", 0); +} -MACHINE_CONFIG_START(intv_state::intvecs) +void intv_state::intvecs(machine_config &config) +{ intv(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(intvecs_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvecs_mem); config.device_remove("cartslot"); - MCFG_DEVICE_ADD("ecs", INTV_ROM_ECS, 0) + INTV_ROM_ECS(config, "ecs", 0); sp0256_device &speech(SP0256(config, "speech", 3120000)); /* The Intellivoice uses a speaker with its own volume control so the relative volumes to use are subjective */ @@ -530,16 +531,16 @@ MACHINE_CONFIG_START(intv_state::intvecs) config.device_remove("ecs_list"); SOFTWARE_LIST(config.replace(), "cart_list").set_original("intvecs"); SOFTWARE_LIST(config, "intv_list").set_compatible("intv"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(intv_state::intvkbd) +void intv_state::intvkbd(machine_config &config) +{ intv(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_PROGRAM_MAP(intvkbd_mem) + m_maincpu->set_addrmap(AS_PROGRAM, &intv_state::intvkbd_mem); - MCFG_DEVICE_ADD("keyboard", M6502, XTAL(7'159'090)/8) - MCFG_DEVICE_PROGRAM_MAP(intvkbd2_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", intv_state, intv_interrupt2) + M6502(config, m_keyboard, XTAL(7'159'090)/8); + m_keyboard->set_addrmap(AS_PROGRAM, &intv_state::intvkbd2_mem); + m_keyboard->set_vblank_int("screen", FUNC(intv_state::intv_interrupt2)); config.m_minimum_quantum = attotime::from_hz(6000); @@ -555,13 +556,12 @@ MACHINE_CONFIG_START(intv_state::intvkbd) stic_device::OVERSCAN_TOP_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE, stic_device::OVERSCAN_BOTTOM_HEIGHT*stic_device::Y_SCALE*INTVKBD_Y_SCALE); - MCFG_SCREEN_MODIFY("screen") - MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd) + subdevice("screen")->set_screen_update(FUNC(intv_state::screen_update_intvkbd)); /* I/O cartslots for BASIC */ GENERIC_CARTSLOT(config, m_iocart1, generic_plain_slot, "intbasic_cart"); GENERIC_CARTSLOT(config, m_iocart2, generic_plain_slot, "intbasic_cart"); -MACHINE_CONFIG_END +} ROM_START(intv) // the intv1 exec rom should be two roms: RO-3-9502-011.U5 and RO-3-9504-021.U6 ROM_REGION(0x10000<<1,"maincpu", ROMREGION_ERASEFF) diff --git a/src/mame/drivers/photoply.cpp b/src/mame/drivers/photoply.cpp index adf7356087d..0e8e8d69e10 100644 --- a/src/mame/drivers/photoply.cpp +++ b/src/mame/drivers/photoply.cpp @@ -302,10 +302,10 @@ GFXDECODE_END MACHINE_CONFIG_START(photoply_state::photoply) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I486DX4, 75000000) /* I486DX4, 75 or 100 Mhz */ - MCFG_DEVICE_PROGRAM_MAP(photoply_map) - MCFG_DEVICE_IO_MAP(photoply_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_1", pic8259_device, inta_cb) + I486DX4(config, m_maincpu, 75000000); /* I486DX4, 75 or 100 Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &photoply_state::photoply_map); + m_maincpu->set_addrmap(AS_IO, &photoply_state::photoply_io); + m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb)); pcat_common(config); @@ -320,12 +320,11 @@ MACHINE_CONFIG_START(photoply_state::photoply) MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0) MCFG_PCI_BUS_LEGACY_DEVICE(5, DEVICE_SELF, photoply_state, sis_pcm_r, sis_pcm_w) - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5446_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480); + screen.set_screen_update("vga", FUNC(cirrus_gd5446_device::screen_update)); - MCFG_DEVICE_ADD("vga", CIRRUS_GD5446, 0) - MCFG_VIDEO_SET_SCREEN("screen") + CIRRUS_GD5446(config, "vga", 0).set_screen("screen"); EEPROM_93C46_16BIT(config, "eeprom") .write_time(attotime::from_usec(1)) diff --git a/src/mame/drivers/pntnpuzl.cpp b/src/mame/drivers/pntnpuzl.cpp index e8272f42498..bd4695a2963 100644 --- a/src/mame/drivers/pntnpuzl.cpp +++ b/src/mame/drivers/pntnpuzl.cpp @@ -353,9 +353,10 @@ static INPUT_PORTS_START( pntnpuzl ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) INPUT_PORTS_END -MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl) - MCFG_DEVICE_ADD("maincpu", M68000, 12_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(pntnpuzl_map) +void pntnpuzl_state::pntnpuzl(machine_config &config) +{ + M68000(config, m_maincpu, 12_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &pntnpuzl_state::pntnpuzl_map); EEPROM_93C46_16BIT(config, "eeprom"); @@ -373,13 +374,12 @@ MACHINE_CONFIG_START(pntnpuzl_state::pntnpuzl) mcu.ach7_cb().set_constant(0x180); // ? /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480) - MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_raw(XTAL(25'174'800),900,0,640,526,0,480); + screen.set_screen_update("vga", FUNC(vga_device::screen_update)); - MCFG_DEVICE_ADD("vga", VGA, 0) - MCFG_VIDEO_SET_SCREEN("screen") -MACHINE_CONFIG_END + VGA(config, "vga", 0).set_screen("screen"); +} ROM_START( pntnpuzl ) ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */ diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp index be4f6031903..5b2e4e95f50 100644 --- a/src/mame/drivers/tandy1t.cpp +++ b/src/mame/drivers/tandy1t.cpp @@ -658,26 +658,26 @@ static GFXDECODE_START( gfx_t1000 ) GFXDECODE_ENTRY( "gfx1", 0x0000, t1000_charlayout, 3, 1 ) GFXDECODE_END -MACHINE_CONFIG_START(tandy1000_state::tandy1000_common) - MCFG_DEVICE_ADD("mb", T1000_MOTHERBOARD, 0) - downcast(*device).set_cputag("maincpu"); +void tandy1000_state::tandy1000_common(machine_config &config) +{ + T1000_MOTHERBOARD(config, m_mb, 0); + m_mb->set_cputag("maincpu"); /* video hardware */ - MCFG_DEVICE_ADD("pcvideo_t1000", PCVIDEO_T1000, 0) - MCFG_VIDEO_SET_SCREEN("pcvideo_t1000:screen") + PCVIDEO_T1000(config, m_video, 0); + m_video->set_screen("pcvideo_t1000:screen"); GFXDECODE(config, "gfxdecode", "pcvideo_t1000:palette", gfx_t1000); /* sound hardware */ - MCFG_DEVICE_ADD("sn76496", NCR8496, XTAL(14'318'181)/4) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mb:mono", 0.80) + NCR8496(config, "sn76496", XTAL(14'318'181)/4).add_route(ALL_OUTPUTS, "mb:mono", 0.80); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_DEVICE_ADD("isa_fdc", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", true) // FIXME: determine ISA bus clock - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_35) + isa8_slot_device &isa_fdc(ISA8_SLOT(config, "isa_fdc", 0, "mb:isa", pc_isa8_cards, "fdc_xt", true)); // FIXME: determine ISA bus clock + isa_fdc.set_option_machine_config("fdc_xt", cfg_fdc_35); - MCFG_DEVICE_ADD("isa_lpt", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "lpt", true) - MCFG_DEVICE_ADD("isa_com", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "com", true) + ISA8_SLOT(config, "isa_lpt", 0, "mb:isa", pc_isa8_cards, "lpt", true); + ISA8_SLOT(config, "isa_com", 0, "mb:isa", pc_isa8_cards, "com", true); PC_JOY(config, "pc_joy"); @@ -686,7 +686,7 @@ MACHINE_CONFIG_START(tandy1000_state::tandy1000_common) SOFTWARE_LIST(config, "disk_list").set_original("t1000"); SOFTWARE_LIST(config, "pc_list").set_compatible("ibm5150"); -MACHINE_CONFIG_END +} void tandy1000_state::tandy1000_90key(machine_config &config) { @@ -700,40 +700,42 @@ void tandy1000_state::tandy1000_101key(machine_config &config) m_keyboard->keypress().set("mb:pic8259", FUNC(pic8259_device::ir1_w)); } -MACHINE_CONFIG_START(tandy1000_state::t1000hx) - MCFG_DEVICE_ADD("maincpu", I8088, 8000000) - MCFG_DEVICE_PROGRAM_MAP(tandy1000_map) - MCFG_DEVICE_IO_MAP(tandy1000_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void tandy1000_state::t1000hx(machine_config &config) +{ + I8088(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_map); + m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); tandy1000_common(config); tandy1000_90key(config); // plus cards are isa with a nonstandard conntector - MCFG_DEVICE_ADD("plus1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock + ISA8_SLOT(config, "plus1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock m_ram->set_extra_options("256K, 384K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tandy1000_state::t1000sx) +void tandy1000_state::t1000sx(machine_config &config) +{ t1000hx(config); - MCFG_DEVICE_MODIFY("isa_fdc") - MCFG_SLOT_OPTION_MACHINE_CONFIG("fdc_xt", cfg_fdc_525) + subdevice("isa_fdc")->set_option_machine_config("fdc_xt", cfg_fdc_525); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); m_ram->set_extra_options("384K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tandy1000_state::t1000rl) - MCFG_DEVICE_ADD("maincpu", I8086, XTAL(28'636'363) / 3) - MCFG_DEVICE_PROGRAM_MAP(tandy1000_bank_map) - MCFG_DEVICE_IO_MAP(tandy1000_bank_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void tandy1000_state::t1000rl(machine_config &config) +{ + I8086(config, m_maincpu, XTAL(28'636'363) / 3); + m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_bank_map); + m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_bank_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); tandy1000_common(config); @@ -744,44 +746,45 @@ MACHINE_CONFIG_START(tandy1000_state::t1000rl) MCFG_MACHINE_RESET_OVERRIDE(tandy1000_state,tandy1000rl) m_ram->set_extra_options("384K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tandy1000_state::t1000sl2) +void tandy1000_state::t1000sl2(machine_config &config) +{ t1000rl(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_CLOCK( XTAL(24'000'000) / 3 ) + m_maincpu->set_clock(XTAL(24'000'000) / 3); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) -MACHINE_CONFIG_END + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); +} -MACHINE_CONFIG_START(tandy1000_state::t1000tl) - MCFG_DEVICE_ADD("maincpu", I80286, XTAL(28'636'363) / 2) - MCFG_DEVICE_PROGRAM_MAP(tandy1000_286_map) - MCFG_DEVICE_IO_MAP(tandy1000_16_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb) +void tandy1000_state::t1000tl(machine_config &config) +{ + I80286(config, m_maincpu, XTAL(28'636'363) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &tandy1000_state::tandy1000_286_map); + m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000_16_io); + m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb)); tandy1000_common(config); tandy1000_101key(config); - MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) - MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) -MACHINE_CONFIG_END + ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, nullptr, false); // FIXME: determine ISA bus clock + ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); + ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false); +} -MACHINE_CONFIG_START(tandy1000_state::t1000tx) +void tandy1000_state::t1000tx(machine_config &config) +{ t1000tl(config); - MCFG_DEVICE_MODIFY( "maincpu" ) - MCFG_DEVICE_IO_MAP(tandy1000tx_io) + m_maincpu->set_addrmap(AS_IO, &tandy1000_state::tandy1000tx_io); config.device_remove("pc_keyboard"); tandy1000_90key(config); -MACHINE_CONFIG_END +} #ifdef UNUSED_DEFINITION ROM_START( t1000 ) From c7cc90b52b2f4dd067f6bb63074ff3fc191af084 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Mon, 25 Feb 2019 21:12:37 +0100 Subject: [PATCH 35/42] New NOT_WORKING software list additions (#4683) leapfrog_leappad_cart.xm: Pre Reading - Leap's Friends From A to Z (UK), Music - Hit it, Maestro! (UK), Reading - Disney/Pixar Finding Nemo (UK), Hop on Pop - Based on the Book by Dr. Seuss (UK), ABC-Abenteuer (Germany), What will you be? (UK) [TeamEurope] --- hash/leapfrog_leappad_cart.xml | 84 ++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/hash/leapfrog_leappad_cart.xml b/hash/leapfrog_leappad_cart.xml index be280d97d50..792afdc2c6a 100644 --- a/hash/leapfrog_leappad_cart.xml +++ b/hash/leapfrog_leappad_cart.xml @@ -2,6 +2,19 @@ + + Music - Hit it, Maestro! (UK) + 2001 + LeapFrog + + + + + + + + + Pre Math - Tad goes shopping (UK) 2001 @@ -81,6 +94,34 @@ + + + Pre Reading - Leap's Friends From A to Z (UK) + 2002 + LeapFrog + + + + + + + + + + + Reading - Disney/Pixar Finding Nemo (UK) + 2003 + LeapFrog + + + + + + + + + + Leap's Pond - Activity & Game Book (UK) 2003 @@ -96,6 +137,19 @@ + + Hop on Pop - Based on the Book by Dr. Seuss (UK) + 2004 + LeapFrog + + + + + + + + + Leap und die Welt der Dinosaurier (Germany) 2004 @@ -111,6 +165,21 @@ + + ABC-Abenteuer (Germany) + 2003 + LeapFrog + + + + + + + + + + + Tad's Good Night (UK) 1999 @@ -141,6 +210,21 @@ + + What will you be? (UK) + 2004 + LeapFrog + + + + + + + + + + + Das Angel-Abenteuer (Germany) 2002 From 6a3efe52d6dbd2b8dfb4a5fa38e2a855b6353fb9 Mon Sep 17 00:00:00 2001 From: couriersud Date: Mon, 25 Feb 2019 21:17:59 +0100 Subject: [PATCH 36/42] netlist: fix bugs in the alignment code. (nw) --- src/lib/netlist/nl_base.h | 6 +-- src/lib/netlist/plib/palloc.h | 52 +++++++++------------ src/lib/netlist/plib/pconfig.h | 2 +- src/lib/netlist/plib/pmatrix2d.h | 6 ++- src/lib/netlist/plib/ptypes.h | 53 ++++++++++++++++++++++ src/lib/netlist/solver/nld_matrix_solver.h | 20 +++++--- src/lib/netlist/solver/nld_ms_gcr.h | 14 +++--- src/lib/netlist/solver/nld_ms_gmres.h | 13 +++--- 8 files changed, 107 insertions(+), 59 deletions(-) diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index e54d3b1abae..3d2b8cd1364 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -13,9 +13,6 @@ #error "nl_base.h included. Please correct." #endif -#include -#include - #include "plib/palloc.h" // owned_ptr #include "plib/pdynlib.h" #include "plib/pfmtlog.h" @@ -29,6 +26,9 @@ #include "nltypes.h" #include "plib/ptime.h" +#include +#include + //============================================================ // MACROS / New Syntax //============================================================ diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h index d8e4ffbb5d7..d7b00262f7f 100644 --- a/src/lib/netlist/plib/palloc.h +++ b/src/lib/netlist/plib/palloc.h @@ -28,8 +28,6 @@ namespace plib { // Memory allocation //============================================================ - static constexpr bool is_pow2(std::size_t v) noexcept { return !(v & (v-1)); } - #if (USE_ALIGNED_ALLOCATION) static inline void *paligned_alloc( size_t alignment, size_t size ) { @@ -52,24 +50,6 @@ namespace plib { free(ptr); } - static constexpr bool is_pow2(std::size_t v) noexcept { return !(v & (v-1)); } - - template - inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept - { - static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); - static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); - //auto t = reinterpret_cast(p); - //if (t & (ALIGN-1)) - // printf("alignment error!"); - return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); - } - - template - inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept - { - return reinterpret_cast(__builtin_assume_aligned(p, ALIGN)); - } #else static inline void *paligned_alloc( size_t alignment, size_t size ) { @@ -84,7 +64,7 @@ namespace plib { #endif template - inline C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept + /*inline */ C14CONSTEXPR T *assume_aligned_ptr(T *p) noexcept { static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); @@ -99,7 +79,7 @@ namespace plib { } template - inline C14CONSTEXPR const T *assume_aligned_ptr(const T *p) noexcept + constexpr const T *assume_aligned_ptr(const T *p) noexcept { static_assert(ALIGN >= alignof(T), "Alignment must be greater or equal to alignof(T)"); static_assert(is_pow2(ALIGN), "Alignment must be a power of 2"); @@ -272,7 +252,7 @@ namespace plib { { public: using value_type = T; - static constexpr const std::size_t align_size = (USE_ALIGNED_ALLOCATION) ? ALIGN : alignof(std::max_align_t); + static constexpr const std::size_t align_size = ALIGN; static_assert(align_size >= alignof(T) && (align_size % alignof(T)) == 0, "ALIGN must be greater than alignof(T) and a multiple"); @@ -340,20 +320,30 @@ namespace plib { struct align_traits { static constexpr const std::size_t align_size = alignof(std::max_align_t); + static constexpr const std::size_t value_size = sizeof(typename T::value_type); +#if 0 static constexpr const std::size_t stride_size = - (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size - : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T - : align_size / sizeof(T))); + ((value_size % align_size) == 0 ? 1 //T is a multiple of align_size + : ((align_size % value_size) != 0 ? align_size // align_size is not a multiple of T + : align_size / value_size)); +#else + static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size; +#endif }; template struct align_traits::value, void>::type> { static constexpr const std::size_t align_size = T::align_size; + static constexpr const std::size_t value_size = sizeof(typename T::value_type); +#if 0 static constexpr const std::size_t stride_size = - (sizeof(T) % align_size == 0 ? 1 //T is a multiple of align_size - : (align_size % sizeof(T) != 0 ? align_size // align_size is not a multiple of T - : align_size / sizeof(T))); + ((value_size % align_size) == 0 ? 1 //T is a multiple of align_size + : ((align_size % value_size) != 0 ? align_size // align_size is not a multiple of T + : align_size / value_size)); +#else + static constexpr const std::size_t stride_size = lcm(align_size, value_size) / value_size; +#endif }; //============================================================ @@ -377,11 +367,11 @@ namespace plib { C14CONSTEXPR reference operator[](size_type i) noexcept { - return assume_aligned_ptr(&((*this)[0]))[i]; + return assume_aligned_ptr(&(base::operator[](0)))[i]; } constexpr const_reference operator[](size_type i) const noexcept { - return assume_aligned_ptr(&((*this)[0]))[i]; + return assume_aligned_ptr(&(base::operator[](0)))[i]; } pointer data() noexcept { return assume_aligned_ptr(base::data()); } diff --git a/src/lib/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h index 158fb3faae7..c521f24e5f8 100644 --- a/src/lib/netlist/plib/pconfig.h +++ b/src/lib/netlist/plib/pconfig.h @@ -48,7 +48,7 @@ */ #define PALIGN_CACHELINE (64) -#define PALIGN_VECTOROPT (8) +#define PALIGN_VECTOROPT (32) #define PALIGNAS_CACHELINE() PALIGNAS(PALIGN_CACHELINE) #define PALIGNAS_VECTOROPT() PALIGNAS(PALIGN_VECTOROPT) diff --git a/src/lib/netlist/plib/pmatrix2d.h b/src/lib/netlist/plib/pmatrix2d.h index f0439105e5c..52228548cbf 100644 --- a/src/lib/netlist/plib/pmatrix2d.h +++ b/src/lib/netlist/plib/pmatrix2d.h @@ -36,15 +36,17 @@ namespace plib } pmatrix2d(std::size_t N, std::size_t M) - : m_N(N), m_M(M), m_stride((M+stride_size-1) & ~(stride_size-1)), m_v(N * m_stride) + : m_N(N), m_M(M) { + m_stride = ((M + stride_size-1) / stride_size) * stride_size; + m_v.resize(N * m_stride); } void resize(std::size_t N, std::size_t M) { m_N = N; m_M = M; - m_stride = (M+stride_size-1) & ~(stride_size-1); + m_stride = ((M + stride_size-1) / stride_size) * stride_size; m_v.resize(N * m_stride); } diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h index 99bc5715a05..6b4a4af2f75 100644 --- a/src/lib/netlist/plib/ptypes.h +++ b/src/lib/netlist/plib/ptypes.h @@ -81,6 +81,59 @@ namespace plib template inline void unused_var(Ts&&...) {} + //============================================================ + // is_pow2 + //============================================================ + template + constexpr bool is_pow2(T v) noexcept + { + static_assert(is_integral::value, "is_pow2 needs integer arguments"); + return !(v & (v-1)); + } + + + //============================================================ + // abs, lcd, gcm + //============================================================ + + template + constexpr + typename std::enable_if::value && std::is_signed::value, T>::type + abs(T v) + { + return v < 0 ? -v : v; + } + + template + constexpr + typename std::enable_if::value && std::is_unsigned::value, T>::type + abs(T v) + { + return v; + } + + template + constexpr typename std::common_type::type + gcd(M m, N n) + { + static_assert(std::is_integral::value, "gcd: M must be an integer"); + static_assert(std::is_integral::value, "gcd: N must be an integer"); + + return m == 0 ? plib::abs(n) + : n == 0 ? plib::abs(m) + : gcd(n, m % n); + } + + template + constexpr typename std::common_type::type + lcm(M m, N n) + { + static_assert(std::is_integral::value, "lcm: M must be an integer"); + static_assert(std::is_integral::value, "lcm: N must be an integer"); + + return (m != 0 && n != 0) ? (plib::abs(m) / gcd(m, n)) * plib::abs(n) : 0; + } + } // namespace plib //============================================================ diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index 88d4dbb4bb0..efd60a0c5fa 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -172,14 +172,19 @@ namespace devices { const std::size_t iN = this->m_nets.size(); - std::size_t max_col = 0; + std::size_t max_count = 0; + std::size_t max_rail = 0; for (std::size_t k = 0; k < iN; k++) - max_col = std::max(max_col, m_terms[k]->count()); + { + max_count = std::max(max_count, m_terms[k]->count()); + max_rail = std::max(max_rail, m_terms[k]->m_railstart); + } - m_gtn.resize(iN, max_col); - m_gon.resize(iN, max_col); - m_Idrn.resize(iN, max_col); - m_connected_net_Vn.resize(iN, max_col); + m_mat_ptr.resize(iN, max_rail+1); + m_gtn.resize(iN, max_count); + m_gon.resize(iN, max_count); + m_Idrn.resize(iN, max_count); + m_connected_net_Vn.resize(iN, max_count); for (std::size_t k = 0; k < iN; k++) { @@ -199,7 +204,7 @@ namespace devices for (std::size_t k = 0; k < N; k++) { auto *net = m_terms[k].get(); - auto **tcr_r = tcr[k].data(); + auto **tcr_r = &(tcr[k][0]); const std::size_t term_count = net->count(); const std::size_t railstart = net->m_railstart; @@ -243,6 +248,7 @@ namespace devices plib::pmatrix2d> m_gon; plib::pmatrix2d> m_gtn; plib::pmatrix2d> m_Idrn; + plib::pmatrix2d> m_mat_ptr; plib::pmatrix2d> m_connected_net_Vn; plib::pmatrix2d m_test; diff --git a/src/lib/netlist/solver/nld_ms_gcr.h b/src/lib/netlist/solver/nld_ms_gcr.h index c9ab4a535a9..19dea107bc9 100644 --- a/src/lib/netlist/solver/nld_ms_gcr.h +++ b/src/lib/netlist/solver/nld_ms_gcr.h @@ -66,9 +66,6 @@ private: plib::parray RHS; plib::parray new_V; - std::array, storage_N> m_term_cr; - // std::array, storage_N> m_term_cr; - mat_type mat; //extsolver m_proc; @@ -163,7 +160,7 @@ void matrix_solver_GCR_t::vsetup(analog_net_t::list_t &nets) for (mat_index_type k=0; km_terms[k]->m_railstart;j++) { @@ -171,12 +168,13 @@ void matrix_solver_GCR_t::vsetup(analog_net_t::list_t &nets) for (auto i = mat.row_idx[k]; i < mat.row_idx[k+1]; i++) if (other == static_cast(mat.col_idx[i])) { - m_term_cr[k].push_back(&mat.A[i]); + m_mat_ptr[k][j] = &mat.A[i]; + cnt++; break; } } - nl_assert(m_term_cr[k].size() == this->m_terms[k]->m_railstart); - m_term_cr[k].push_back(&mat.A[mat.diag[k]]); + nl_assert(cnt == this->m_terms[k]->m_railstart); + m_mat_ptr[k][this->m_terms[k]->m_railstart] = &mat.A[mat.diag[k]]; } this->log().verbose("maximum fill: {1}", gr.first); @@ -297,7 +295,7 @@ unsigned matrix_solver_GCR_t::vsolve_non_dynamic(const bool newton_rap /* populate matrix */ - this->fill_matrix(iN, m_term_cr, RHS); + this->fill_matrix(iN, m_mat_ptr, RHS); /* now solve it */ diff --git a/src/lib/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h index f3d894881e2..2ff515ebda7 100644 --- a/src/lib/netlist/solver/nld_ms_gmres.h +++ b/src/lib/netlist/solver/nld_ms_gmres.h @@ -37,7 +37,6 @@ namespace devices */ matrix_solver_GMRES_t(netlist_state_t &anetlist, const pstring &name, const solver_parameters_t *params, const std::size_t size) : matrix_solver_direct_t(anetlist, name, matrix_solver_t::PREFER_BAND_MATRIX, params, size) - , m_term_cr(size) //, m_ops(size, 2) , m_ops(size, 4) , m_gmres(size) @@ -51,9 +50,7 @@ namespace devices using mattype = typename plib::matrix_compressed_rows_t::index_type; - plib::parray, SIZE> m_term_cr; plib::mat_precondition_ILU m_ops; - //plib::mat_precondition_diag m_ops; plib::gmres_t m_gmres; }; @@ -86,17 +83,19 @@ namespace devices for (std::size_t k=0; km_terms[k]->m_railstart;j++) { for (std::size_t i = m_ops.m_mat.row_idx[k]; im_terms[k]->m_connected_net_idx[j] == static_cast(m_ops.m_mat.col_idx[i])) { - m_term_cr[k].push_back(&m_ops.m_mat.A[i]); + this->m_mat_ptr[k][j] = &m_ops.m_mat.A[i]; + cnt++; break; } } - nl_assert(m_term_cr[k].size() == this->m_terms[k]->m_railstart); - m_term_cr[k].push_back(&m_ops.m_mat.A[m_ops.m_mat.diag[k]]); + nl_assert(cnt == this->m_terms[k]->m_railstart); + this->m_mat_ptr[k][this->m_terms[k]->m_railstart] = &m_ops.m_mat.A[m_ops.m_mat.diag[k]]; } } @@ -111,7 +110,7 @@ namespace devices m_ops.m_mat.set_scalar(0.0); /* populate matrix and V for first estimate */ - this->fill_matrix(iN, m_term_cr, RHS); + this->fill_matrix(iN, this->m_mat_ptr, RHS); for (std::size_t k = 0; k < iN; k++) { From 8aef30ee4243dc315a7000c6e63cb8c99d12792d Mon Sep 17 00:00:00 2001 From: algestam Date: Mon, 25 Feb 2019 21:24:00 +0100 Subject: [PATCH 37/42] New working machine added (#4688) ----------- Game & Watch: Octopus [Henrik Algestam] --- src/mame/drivers/hh_sm510.cpp | 91 +++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 1 + 2 files changed, 92 insertions(+) diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 956c5d09ad2..5408932444c 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -1017,6 +1017,87 @@ void kgarfld_state::kgarfld(machine_config &config) +/*************************************************************************** + + Nintendo Game & Watch: Octopus (model OC-22) + * PCB label OC-22Y A + * Sharp SM5A label OC-22 204A (no decap) + * lcd screen with custom segments, 1-bit sound + +***************************************************************************/ + +class gnw_octopus_state : public hh_sm510_state +{ +public: + gnw_octopus_state(const machine_config &mconfig, device_type type, const char *tag) + : hh_sm510_state(mconfig, type, tag) + { + m_inp_lines = 3; + } + + void gnw_octopus(machine_config &config); +}; + +// config + +static INPUT_PORTS_START( gnw_octopus ) + PORT_START("IN.0") // R2 + PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") + PORT_CONFSETTING( 0x00, DEF_STR( Off ) ) + PORT_CONFSETTING( 0x01, DEF_STR( On ) ) + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01? + + PORT_START("IN.1") // R3 + PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED ) // alarm test? + + PORT_START("IN.2") // R4 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("BA") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + + PORT_START("B") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_16WAY + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") +INPUT_PORTS_END + +void gnw_octopus_state::gnw_octopus(machine_config &config) +{ + /* basic machine hardware */ + SM5A(config, m_maincpu); + m_maincpu->set_r_mask_option(sm510_base_device::RMASK_DIRECT); // confirmed + m_maincpu->write_segs().set(FUNC(hh_sm510_state::sm500_lcd_segment_w)); + m_maincpu->read_k().set(FUNC(hh_sm510_state::input_r)); + m_maincpu->write_r().set(FUNC(hh_sm510_state::piezo_input_w)); + m_maincpu->read_ba().set_ioport("BA"); + m_maincpu->read_b().set_ioport("B"); + + /* video hardware */ + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG)); + screen.set_svg_region("svg"); + screen.set_refresh_hz(50); + screen.set_size(1586, 1080); + screen.set_visarea(0, 1586-1, 0, 1080-1); + + TIMER(config, "display_decay").configure_periodic(FUNC(hh_sm510_state::display_decay_tick), attotime::from_msec(1)); + + /* sound hardware */ + SPEAKER(config, "mono").front_center(); + SPEAKER_SOUND(config, m_speaker); + m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25); +} + + + + + /*************************************************************************** Nintendo Game & Watch: Mickey Mouse (model MC-25), Egg (model EG-26) @@ -7610,6 +7691,15 @@ ROM_START( kgarfld ) ROM_END +ROM_START( gnw_octopus ) + ROM_REGION( 0x1000, "maincpu", 0 ) + ROM_LOAD( "oc-22", 0x0000, 0x0740, CRC(bd27781d) SHA1(07b4feb9265c83b159f96c7e8ee1c61a2cc17dc5) ) + + ROM_REGION( 119681, "svg", 0) + ROM_LOAD( "gnw_octopus.svg", 0, 119681, CRC(39900430) SHA1(61b71c475365966257f5479eab992538ec235c11) ) +ROM_END + + ROM_START( gnw_mmouse ) ROM_REGION( 0x1000, "maincpu", 0 ) ROM_LOAD( "mc-25", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone @@ -8344,6 +8434,7 @@ CONS( 1991, kbucky, 0, 0, kbucky, kbucky, kbucky_state, CONS( 1991, kgarfld, 0, 0, kgarfld, kgarfld, kgarfld_state, empty_init, "Konami", "Garfield (handheld)", MACHINE_SUPPORTS_SAVE ) // Nintendo G&W: wide screen +CONS( 1981, gnw_octopus, 0, 0, gnw_octopus, gnw_octopus, gnw_octopus_state, empty_init, "Nintendo", "Game & Watch: Octopus", MACHINE_SUPPORTS_SAVE ) CONS( 1981, gnw_mmouse, 0, 0, gnw_mmouse, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE ) CONS( 1981, gnw_egg, gnw_mmouse, 0, gnw_egg, gnw_mmouse, gnw_mmouse_state, empty_init, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE ) CONS( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, gnw_mmouse_state, empty_init, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 81d749eb686..6611e55b87d 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -15075,6 +15075,7 @@ gnw_mario // Nintendo gnw_mariocm // Nintendo gnw_mmouse // Nintendo gnw_mickdon // Nintendo +gnw_octopus // Nintendo gnw_opanic // Nintendo gnw_rshower // Nintendo gnw_smb // Nintendo From d00de16b41f8a504e6d9b1b486d0338bd6a030e1 Mon Sep 17 00:00:00 2001 From: couriersud Date: Mon, 25 Feb 2019 21:40:02 +0100 Subject: [PATCH 38/42] netlist: analog readability refactoring. (nw) Change the sign of go (or in other terms a12 and a21 matrix stencil elements). This should make further optimization of matrix population easier. In addition hopefully improve the readability of the code by sacrifying overloads for more verbose member names. --- src/lib/netlist/analog/nld_bjt.cpp | 10 ++++---- src/lib/netlist/analog/nlid_fourterm.cpp | 24 ++++++++++---------- src/lib/netlist/analog/nlid_twoterm.cpp | 4 ++-- src/lib/netlist/analog/nlid_twoterm.h | 18 +++++++-------- src/lib/netlist/devices/nld_mm5837.cpp | 4 ++-- src/lib/netlist/devices/nld_r2r_dac.cpp | 2 +- src/lib/netlist/devices/nld_schmitt.cpp | 8 +++---- src/lib/netlist/devices/nlid_proxy.cpp | 4 ++-- src/lib/netlist/devices/nlid_system.h | 4 ++-- src/lib/netlist/nl_base.h | 10 ++++---- src/lib/netlist/solver/nld_matrix_solver.cpp | 2 +- src/lib/netlist/solver/nld_matrix_solver.h | 20 ++++++++-------- src/lib/netlist/solver/nld_ms_sor.h | 8 +++---- 13 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/lib/netlist/analog/nld_bjt.cpp b/src/lib/netlist/analog/nld_bjt.cpp index 06835009f50..0f50a9103fb 100644 --- a/src/lib/netlist/analog/nld_bjt.cpp +++ b/src/lib/netlist/analog/nld_bjt.cpp @@ -293,10 +293,10 @@ NETLIB_RESET(QBJT_switch) m_state_on = 0; - m_RB.set(exec().gmin(), 0.0, 0.0); - m_RC.set(exec().gmin(), 0.0, 0.0); + m_RB.set_G_V_I(exec().gmin(), 0.0, 0.0); + m_RC.set_G_V_I(exec().gmin(), 0.0, 0.0); - m_BC_dummy.set(exec().gmin() / 10.0, 0.0, 0.0); + m_BC_dummy.set_G_V_I(exec().gmin() / 10.0, 0.0, 0.0); } @@ -351,8 +351,8 @@ NETLIB_UPDATE_TERMINALS(QBJT_switch) const nl_double gc = new_state ? m_gC : exec().gmin(); const nl_double v = new_state ? m_V * m : 0; - m_RB.set(gb, v, 0.0); - m_RC.set(gc, 0.0, 0.0); + m_RB.set_G_V_I(gb, v, 0.0); + m_RC.set_G_V_I(gc, 0.0, 0.0); m_state_on = new_state; } } diff --git a/src/lib/netlist/analog/nlid_fourterm.cpp b/src/lib/netlist/analog/nlid_fourterm.cpp index 9e5c2e46932..7fa6a2f3809 100644 --- a/src/lib/netlist/analog/nlid_fourterm.cpp +++ b/src/lib/netlist/analog/nlid_fourterm.cpp @@ -26,14 +26,14 @@ NETLIB_RESET(VCCS) const nl_double m_mult = m_G() * m_gfac; // 1.0 ==> 1V ==> 1A const nl_double GI = plib::constants::one() / m_RI(); - m_IP.set(GI); - m_IN.set(GI); + m_IP.set_conductivity(GI); + m_IN.set_conductivity(GI); - m_OP.set(m_mult, plib::constants::zero()); - m_OP1.set(-m_mult, plib::constants::zero()); + m_OP.set_go_gt(-m_mult, plib::constants::zero()); + m_OP1.set_go_gt(m_mult, plib::constants::zero()); - m_ON.set(-m_mult, plib::constants::zero()); - m_ON1.set(m_mult, plib::constants::zero()); + m_ON.set_go_gt(m_mult, plib::constants::zero()); + m_ON1.set_go_gt(-m_mult, plib::constants::zero()); } NETLIB_UPDATE(VCCS) @@ -79,11 +79,11 @@ NETLIB_UPDATE_TERMINALS(LVCCS) const nl_double beta = m_mult * (1.0 - X*X); const nl_double I = m_cur_limit() * X - beta * m_vi; - m_OP.set(beta, plib::constants::zero(), I); - m_OP1.set(-beta, plib::constants::zero()); + m_OP.set_go_gt_I(-beta, plib::constants::zero(), I); + m_OP1.set_go_gt(beta, plib::constants::zero()); - m_ON.set(-beta, plib::constants::zero(), -I); - m_ON1.set(beta, plib::constants::zero()); + m_ON.set_go_gt_I(beta, plib::constants::zero(), -I); + m_ON1.set_go_gt(-beta, plib::constants::zero()); } // ---------------------------------------------------------------------------------------- @@ -109,8 +109,8 @@ NETLIB_RESET(VCVS) m_gfac = plib::constants::one() / m_RO(); NETLIB_NAME(VCCS)::reset(); - m_OP2.set(plib::constants::one() / m_RO()); - m_ON2.set(plib::constants::one() / m_RO()); + m_OP2.set_conductivity(plib::constants::one() / m_RO()); + m_ON2.set_conductivity(plib::constants::one() / m_RO()); } } //namespace analog diff --git a/src/lib/netlist/analog/nlid_twoterm.cpp b/src/lib/netlist/analog/nlid_twoterm.cpp index 9b79c323ba4..d5578ccd5bb 100644 --- a/src/lib/netlist/analog/nlid_twoterm.cpp +++ b/src/lib/netlist/analog/nlid_twoterm.cpp @@ -198,7 +198,7 @@ NETLIB_UPDATE_PARAM(POT2) NETLIB_RESET(C) { // FIXME: Startup conditions - set(exec().gmin(), 0.0, -5.0 / exec().gmin()); + set_G_V_I(exec().gmin(), 0.0, -5.0 / exec().gmin()); //set(exec().gmin(), 0.0, 0.0); } @@ -255,7 +255,7 @@ NETLIB_RESET(D) nl_double n = m_model.m_N; m_D.set_param(Is, n, exec().gmin()); - set(m_D.G(), 0.0, m_D.Ieq()); + set_G_V_I(m_D.G(), 0.0, m_D.Ieq()); } NETLIB_UPDATE_PARAM(D) diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 06c278d58a3..06a4bc6e1d7 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -86,11 +86,11 @@ public: void solve_later(netlist_time delay = netlist_time::from_nsec(1)); - void set(const nl_double G, const nl_double V, const nl_double I) + void set_G_V_I(const nl_double G, const nl_double V, const nl_double I) { /* GO, GT, I */ - m_P.set( G, G, ( V) * G - I); - m_N.set( G, G, ( -V) * G + I); + m_P.set_go_gt_I( -G, G, ( V) * G - I); + m_N.set_go_gt_I( -G, G, ( -V) * G + I); } nl_double deltaV() const @@ -98,12 +98,12 @@ public: return m_P.net().Q_Analog() - m_N.net().Q_Analog(); } - void set_mat(const nl_double a11, const nl_double a12, const nl_double r1, - const nl_double a21, const nl_double a22, const nl_double r2) + void set_mat(const nl_double a11, const nl_double a12, const nl_double rhs1, + const nl_double a21, const nl_double a22, const nl_double rhs2) { /* GO, GT, I */ - m_P.set(-a12, a11, r1); - m_N.set(-a21, a22, r2); + m_P.set_go_gt_I(a12, a11, rhs1); + m_N.set_go_gt_I(a21, a22, rhs2); } private: @@ -420,7 +420,7 @@ public: NETLIB_TIMESTEPI() { m_t += step; - this->set(1.0 / m_R(), + this->set_G_V_I(1.0 / m_R(), m_compiled.evaluate(std::vector({m_t})), 0.0); } @@ -431,7 +431,7 @@ protected: NETLIB_RESETI() { NETLIB_NAME(twoterm)::reset(); - this->set(1.0 / m_R(), m_V(), 0.0); + this->set_G_V_I(1.0 / m_R(), m_V(), 0.0); } private: diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp index 917fcee4221..f6c2566bd43 100644 --- a/src/lib/netlist/devices/nld_mm5837.cpp +++ b/src/lib/netlist/devices/nld_mm5837.cpp @@ -69,7 +69,7 @@ namespace netlist { //m_V0.initial(0.0); //m_RV.do_reset(); - m_RV.set(plib::constants::one() / R_LOW, 0.0, 0.0); + m_RV.set_G_V_I(plib::constants::one() / R_LOW, 0.0, 0.0); m_inc = netlist_time::from_double(1.0 / m_FREQ()); if (m_FREQ() < 24000 || m_FREQ() > 56000) log().warning(MW_1_FREQUENCY_OUTSIDE_OF_SPECS_1, m_FREQ()); @@ -108,7 +108,7 @@ namespace netlist // We only need to update the net first if this is a time stepping net if (m_is_timestep) m_RV.update(); - m_RV.set(plib::constants::one() / R, V, plib::constants::zero()); + m_RV.set_G_V_I(plib::constants::one() / R, V, plib::constants::zero()); m_RV.solve_later(NLTIME_FROM_NS(1)); } diff --git a/src/lib/netlist/devices/nld_r2r_dac.cpp b/src/lib/netlist/devices/nld_r2r_dac.cpp index ac1e26a4e1d..284b6673f76 100644 --- a/src/lib/netlist/devices/nld_r2r_dac.cpp +++ b/src/lib/netlist/devices/nld_r2r_dac.cpp @@ -44,7 +44,7 @@ namespace netlist double V = m_VIN() / static_cast(1 << m_num()) * static_cast(m_val()); - this->set(1.0 / m_R(), V, 0.0); + this->set_G_V_I(1.0 / m_R(), V, 0.0); } } //namespace analog diff --git a/src/lib/netlist/devices/nld_schmitt.cpp b/src/lib/netlist/devices/nld_schmitt.cpp index 92bf75b5a89..f219d215520 100644 --- a/src/lib/netlist/devices/nld_schmitt.cpp +++ b/src/lib/netlist/devices/nld_schmitt.cpp @@ -85,8 +85,8 @@ namespace netlist m_RVI.reset(); m_RVO.reset(); m_is_timestep = m_RVO.m_P.net().solver()->has_timestep_devices(); - m_RVI.set(plib::constants::one() / m_model.m_RI, m_model.m_VI, 0.0); - m_RVO.set(plib::constants::one() / m_model.m_ROL, m_model.m_VOL, 0.0); + m_RVI.set_G_V_I(plib::constants::one() / m_model.m_RI, m_model.m_VI, 0.0); + m_RVO.set_G_V_I(plib::constants::one() / m_model.m_ROL, m_model.m_VOL, 0.0); } NETLIB_UPDATEI() @@ -98,7 +98,7 @@ namespace netlist m_last_state = 0; if (m_is_timestep) m_RVO.update(); - m_RVO.set(plib::constants::one() / m_model.m_ROH, m_model.m_VOH, 0.0); + m_RVO.set_G_V_I(plib::constants::one() / m_model.m_ROH, m_model.m_VOH, 0.0); m_RVO.solve_later(); } } @@ -109,7 +109,7 @@ namespace netlist m_last_state = 1; if (m_is_timestep) m_RVO.update(); - m_RVO.set(plib::constants::one() / m_model.m_ROL, m_model.m_VOL, 0.0); + m_RVO.set_G_V_I(plib::constants::one() / m_model.m_ROL, m_model.m_VOL, 0.0); m_RVO.solve_later(); } } diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp index 883aea738f0..a2fd18e85a7 100644 --- a/src/lib/netlist/devices/nlid_proxy.cpp +++ b/src/lib/netlist/devices/nlid_proxy.cpp @@ -122,7 +122,7 @@ namespace netlist m_last_state = -1; m_RV.reset(); m_is_timestep = m_RV.m_P.net().solver()->has_timestep_devices(); - m_RV.set(plib::constants::one() / logic_family()->R_low(), + m_RV.set_G_V_I(plib::constants::one() / logic_family()->R_low(), logic_family()->low_V(0.0, supply_V), 0.0); } @@ -143,7 +143,7 @@ namespace netlist { m_RV.update(); } - m_RV.set(plib::constants::one() / R, V, 0.0); + m_RV.set_G_V_I(plib::constants::one() / R, V, 0.0); m_RV.solve_later(); } } diff --git a/src/lib/netlist/devices/nlid_system.h b/src/lib/netlist/devices/nlid_system.h index b5febc6ae3b..95712fc3416 100644 --- a/src/lib/netlist/devices/nlid_system.h +++ b/src/lib/netlist/devices/nlid_system.h @@ -280,8 +280,8 @@ namespace netlist NETLIB_RESETI() { - m_RIN.set(1.0 / m_p_RIN(),0,0); - m_ROUT.set(1.0 / m_p_ROUT(),0,0); + m_RIN.set_G_V_I(1.0 / m_p_RIN(),0,0); + m_ROUT.set_G_V_I(1.0 / m_p_ROUT(),0,0); } NETLIB_UPDATEI() diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h index 3d2b8cd1364..572dba272b9 100644 --- a/src/lib/netlist/nl_base.h +++ b/src/lib/netlist/nl_base.h @@ -601,17 +601,17 @@ namespace netlist nl_double operator ()() const NL_NOEXCEPT; - void set(const nl_double G) noexcept + void set_conductivity(const nl_double G) noexcept { - set(G,G, 0.0); + set_go_gt_I(-G, G, 0.0); } - void set(const nl_double GO, const nl_double GT) noexcept + void set_go_gt(const nl_double GO, const nl_double GT) noexcept { - set(GO, GT, 0.0); + set_go_gt_I(GO, GT, 0.0); } - void set(const nl_double GO, const nl_double GT, const nl_double I) noexcept + void set_go_gt_I(const nl_double GO, const nl_double GT, const nl_double I) noexcept { if (m_go1 != nullptr) { diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp index 3fcdd591e83..756c7817c03 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.cpp +++ b/src/lib/netlist/solver/nld_matrix_solver.cpp @@ -357,7 +357,7 @@ namespace devices state().save(*this, m_terms[k]->m_h_n_m_1, this->name(), "m_h_n_m_1." + num); // FIXME: This shouldn't be necessary, recalculate on each entry ... - state().save(*this, m_gon[k],"GO" + num, this->name(), m_terms[k]->count()); + state().save(*this, m_gonn[k],"GO" + num, this->name(), m_terms[k]->count()); state().save(*this, m_gtn[k],"GT" + num, this->name(), m_terms[k]->count()); state().save(*this, m_Idrn[k],"IDR" + num, this->name(), m_terms[k]->count()); } diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h index efd60a0c5fa..e4cff24c43a 100644 --- a/src/lib/netlist/solver/nld_matrix_solver.h +++ b/src/lib/netlist/solver/nld_matrix_solver.h @@ -182,7 +182,7 @@ namespace devices m_mat_ptr.resize(iN, max_rail+1); m_gtn.resize(iN, max_count); - m_gon.resize(iN, max_count); + m_gonn.resize(iN, max_count); m_Idrn.resize(iN, max_count); m_connected_net_Vn.resize(iN, max_count); @@ -192,7 +192,7 @@ namespace devices for (std::size_t i = 0; i < count; i++) { - m_terms[k]->terms()[i]->set_ptrs(&m_gtn[k][i], &m_gon[k][i], &m_Idrn[k][i]); + m_terms[k]->terms()[i]->set_ptrs(&m_gtn[k][i], &m_gonn[k][i], &m_Idrn[k][i]); m_connected_net_Vn[k][i] = m_terms[k]->terms()[i]->otherterm()->net().Q_Analog_state_ptr(); } } @@ -208,13 +208,13 @@ namespace devices const std::size_t term_count = net->count(); const std::size_t railstart = net->m_railstart; - const auto &go = m_gon[k]; + const auto &go = m_gonn[k]; const auto > = m_gtn[k]; const auto &Idr = m_Idrn[k]; const auto &cnV = m_connected_net_Vn[k]; for (std::size_t i = 0; i < railstart; i++) - *tcr_r[i] -= go[i]; + *tcr_r[i] += go[i]; typename FT::value_type gtot_t = 0.0; typename FT::value_type RHS_t = 0.0; @@ -232,7 +232,7 @@ namespace devices for (std::size_t i = railstart; i < term_count; i++) { - RHS_t += (/*m_Idr[i]*/ + go[i] * *cnV[i]); + RHS_t += (/*m_Idr[i]*/ (- go[i]) * *cnV[i]); } RHS[k] = RHS_t; @@ -245,7 +245,7 @@ namespace devices template using aligned_alloc = plib::aligned_allocator; - plib::pmatrix2d> m_gon; + plib::pmatrix2d> m_gonn; plib::pmatrix2d> m_gtn; plib::pmatrix2d> m_Idrn; plib::pmatrix2d> m_mat_ptr; @@ -335,11 +335,11 @@ namespace devices Ak[k] = akk; } - const float_type * const go = m_gon[k]; + const float_type * const go = m_gonn[k]; int * net_other = terms->m_connected_net_idx.data(); for (std::size_t i = 0; i < railstart; i++) - Ak[net_other[i]] -= go[i]; + Ak[net_other[i]] += go[i]; } } @@ -356,7 +356,7 @@ namespace devices float_type rhsk_b = 0.0; const std::size_t terms_count = m_terms[k]->count(); - const float_type * const go = m_gon[k]; + const float_type * const go = m_gonn[k]; const float_type * const Idr = m_Idrn[k]; const float_type * const * other_cur_analog = m_connected_net_Vn[k]; @@ -365,7 +365,7 @@ namespace devices for (std::size_t i = m_terms[k]->m_railstart; i < terms_count; i++) //rhsk = rhsk + go[i] * terms[i]->m_otherterm->net().as_analog().Q_Analog(); - rhsk_b = rhsk_b + go[i] * *other_cur_analog[i]; + rhsk_b = rhsk_b - go[i] * *other_cur_analog[i]; child.RHS(k) = rhsk_a + rhsk_b; } diff --git a/src/lib/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h index 9e11cb67d75..fd1df9d6759 100644 --- a/src/lib/netlist/solver/nld_ms_sor.h +++ b/src/lib/netlist/solver/nld_ms_sor.h @@ -86,7 +86,7 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap const std::size_t term_count = this->m_terms[k]->count(); const float_type * const gt = this->m_gtn[k]; - const float_type * const go = this->m_gon[k]; + const float_type * const go = this->m_gonn[k]; const float_type * const Idr = this->m_Idrn[k]; auto other_cur_analog = this->m_connected_net_Vn[k]; @@ -99,7 +99,7 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap } for (std::size_t i = this->m_terms[k]->m_railstart; i < term_count; i++) - RHS_t = RHS_t + go[i] * *other_cur_analog[i]; + RHS_t = RHS_t - go[i] * *other_cur_analog[i]; RHS[k] = RHS_t; @@ -136,11 +136,11 @@ unsigned matrix_solver_SOR_t::vsolve_non_dynamic(const bool newton_rap { const int * net_other = this->m_terms[k]->m_connected_net_idx.data(); const std::size_t railstart = this->m_terms[k]->m_railstart; - const float_type * go = this->m_gon[k]; + const float_type * go = this->m_gonn[k]; float_type Idrive = 0.0; for (std::size_t i = 0; i < railstart; i++) - Idrive = Idrive + go[i] * this->m_new_V[static_cast(net_other[i])]; + Idrive = Idrive - go[i] * this->m_new_V[static_cast(net_other[i])]; const float_type new_val = this->m_new_V[k] * one_m_w[k] + (Idrive + RHS[k]) * w[k]; From d19a46aed8e70d48131c48d26a67208bf0d4ca71 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Mon, 25 Feb 2019 23:12:25 +0100 Subject: [PATCH 39/42] cps1.cpp: fixed MT07240 (nw) --- src/mame/video/cps1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mame/video/cps1.cpp b/src/mame/video/cps1.cpp index 1e9bcb9396b..34723a3fb1a 100644 --- a/src/mame/video/cps1.cpp +++ b/src/mame/video/cps1.cpp @@ -1580,7 +1580,7 @@ static const struct CPS1config cps1_config_table[]= {"sf2b", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, {"sf2b2", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 }, {"sf2ceupl", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 }, - {"sf2rules", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, + {"sf2rules", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 2 }, {"sf2cems6a", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, {"sf2cems6b", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, {"sf2cems6c", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 }, From 7a8a8cc5dbe6e1595b370f090d3477a9900c62a7 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 19:16:06 -0500 Subject: [PATCH 40/42] bus/nes, vrc6: Simplify read/write handlers; misc. minor changes (nw) - Hide m_open_bus behind accessor - De-virtualize a few methods without actual overrides --- src/devices/bus/nes/2a03pur.cpp | 4 +- src/devices/bus/nes/2a03pur.h | 4 +- src/devices/bus/nes/act53.cpp | 4 +- src/devices/bus/nes/act53.h | 4 +- src/devices/bus/nes/aladdin.cpp | 14 +- src/devices/bus/nes/aladdin.h | 8 +- src/devices/bus/nes/ave.cpp | 6 +- src/devices/bus/nes/ave.h | 6 +- src/devices/bus/nes/bandai.cpp | 26 ++-- src/devices/bus/nes/bandai.h | 22 +-- src/devices/bus/nes/benshieng.cpp | 2 +- src/devices/bus/nes/benshieng.h | 2 +- src/devices/bus/nes/bootleg.cpp | 98 ++++++------- src/devices/bus/nes/bootleg.h | 98 ++++++------- src/devices/bus/nes/camerica.cpp | 6 +- src/devices/bus/nes/camerica.h | 8 +- src/devices/bus/nes/cne.cpp | 8 +- src/devices/bus/nes/cne.h | 8 +- src/devices/bus/nes/cony.cpp | 12 +- src/devices/bus/nes/cony.h | 12 +- src/devices/bus/nes/datach.cpp | 18 +-- src/devices/bus/nes/datach.h | 10 +- src/devices/bus/nes/discrete.cpp | 8 +- src/devices/bus/nes/discrete.h | 8 +- src/devices/bus/nes/disksys.cpp | 12 +- src/devices/bus/nes/disksys.h | 12 +- src/devices/bus/nes/ggenie.cpp | 38 ++--- src/devices/bus/nes/ggenie.h | 20 +-- src/devices/bus/nes/henggedianzi.cpp | 8 +- src/devices/bus/nes/henggedianzi.h | 8 +- src/devices/bus/nes/hes.cpp | 2 +- src/devices/bus/nes/hes.h | 2 +- src/devices/bus/nes/hosenkan.cpp | 2 +- src/devices/bus/nes/hosenkan.h | 2 +- src/devices/bus/nes/irem.cpp | 10 +- src/devices/bus/nes/irem.h | 10 +- src/devices/bus/nes/jaleco.cpp | 22 +-- src/devices/bus/nes/jaleco.h | 28 ++-- src/devices/bus/nes/jy.cpp | 20 +-- src/devices/bus/nes/jy.h | 14 +- src/devices/bus/nes/kaiser.cpp | 48 +++---- src/devices/bus/nes/kaiser.h | 46 +++--- src/devices/bus/nes/karastudio.cpp | 16 +-- src/devices/bus/nes/karastudio.h | 10 +- src/devices/bus/nes/konami.cpp | 24 ++-- src/devices/bus/nes/konami.h | 16 +-- src/devices/bus/nes/legacy.cpp | 12 +- src/devices/bus/nes/legacy.h | 14 +- src/devices/bus/nes/mmc1.cpp | 24 ++-- src/devices/bus/nes/mmc1.h | 18 +-- src/devices/bus/nes/mmc2.cpp | 6 +- src/devices/bus/nes/mmc2.h | 6 +- src/devices/bus/nes/mmc3.cpp | 28 ++-- src/devices/bus/nes/mmc3.h | 20 +-- src/devices/bus/nes/mmc3_clones.cpp | 202 +++++++++++++-------------- src/devices/bus/nes/mmc3_clones.h | 112 +++++++-------- src/devices/bus/nes/mmc5.cpp | 24 ++-- src/devices/bus/nes/mmc5.h | 18 +-- src/devices/bus/nes/multigame.cpp | 128 ++++++++--------- src/devices/bus/nes/multigame.h | 122 ++++++++-------- src/devices/bus/nes/namcot.cpp | 44 +++--- src/devices/bus/nes/namcot.h | 40 +++--- src/devices/bus/nes/nanjing.cpp | 4 +- src/devices/bus/nes/nanjing.h | 4 +- src/devices/bus/nes/nes_slot.cpp | 63 +++++---- src/devices/bus/nes/nes_slot.h | 44 +++--- src/devices/bus/nes/ntdec.cpp | 4 +- src/devices/bus/nes/ntdec.h | 4 +- src/devices/bus/nes/nxrom.cpp | 35 +++-- src/devices/bus/nes/nxrom.h | 28 ++-- src/devices/bus/nes/pirate.cpp | 48 +++---- src/devices/bus/nes/pirate.h | 46 +++--- src/devices/bus/nes/pt554.cpp | 2 +- src/devices/bus/nes/pt554.h | 2 +- src/devices/bus/nes/racermate.cpp | 2 +- src/devices/bus/nes/racermate.h | 2 +- src/devices/bus/nes/rcm.cpp | 12 +- src/devices/bus/nes/rcm.h | 14 +- src/devices/bus/nes/rexsoft.cpp | 8 +- src/devices/bus/nes/rexsoft.h | 10 +- src/devices/bus/nes/sachen.cpp | 26 ++-- src/devices/bus/nes/sachen.h | 34 ++--- src/devices/bus/nes/somari.cpp | 16 +-- src/devices/bus/nes/somari.h | 12 +- src/devices/bus/nes/subor.cpp | 12 +- src/devices/bus/nes/subor.h | 10 +- src/devices/bus/nes/sunsoft.cpp | 26 ++-- src/devices/bus/nes/sunsoft.h | 24 ++-- src/devices/bus/nes/sunsoft_dcs.cpp | 20 +-- src/devices/bus/nes/sunsoft_dcs.h | 12 +- src/devices/bus/nes/taito.cpp | 18 +-- src/devices/bus/nes/taito.h | 14 +- src/devices/bus/nes/tengen.cpp | 8 +- src/devices/bus/nes/tengen.h | 8 +- src/devices/bus/nes/txc.cpp | 16 +-- src/devices/bus/nes/txc.h | 16 +-- src/devices/bus/nes/waixing.cpp | 46 +++--- src/devices/bus/nes/waixing.h | 36 ++--- src/devices/bus/nes/zemina.cpp | 2 +- src/devices/bus/nes/zemina.h | 2 +- src/devices/sound/vrc6.cpp | 2 +- src/devices/sound/vrc6.h | 2 +- src/mame/drivers/nes.cpp | 20 +-- src/mame/machine/nes.cpp | 22 +-- 104 files changed, 1165 insertions(+), 1155 deletions(-) diff --git a/src/devices/bus/nes/2a03pur.cpp b/src/devices/bus/nes/2a03pur.cpp index ddb3820770d..87e364b1638 100644 --- a/src/devices/bus/nes/2a03pur.cpp +++ b/src/devices/bus/nes/2a03pur.cpp @@ -91,7 +91,7 @@ void nes_2a03pur_device::pcb_reset() This has been assigned to iNES mapper 31. -------------------------------------------------*/ -WRITE8_MEMBER(nes_2a03pur_device::write_l) +void nes_2a03pur_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("2a03 puritans write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -99,7 +99,7 @@ WRITE8_MEMBER(nes_2a03pur_device::write_l) m_reg[offset & 7] = data & ((m_prg_chunks << 2) - 1); } -READ8_MEMBER(nes_2a03pur_device::read_h) +uint8_t nes_2a03pur_device::read_h(offs_t offset) { LOG_MMC(("2a03 puritans read_h, offset: %04x\n", offset)); diff --git a/src/devices/bus/nes/2a03pur.h b/src/devices/bus/nes/2a03pur.h index 2ec647ccc4a..970898ff128 100644 --- a/src/devices/bus/nes/2a03pur.h +++ b/src/devices/bus/nes/2a03pur.h @@ -16,8 +16,8 @@ public: // construction/destruction nes_2a03pur_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/act53.cpp b/src/devices/bus/nes/act53.cpp index f163be268fd..2a441c36153 100644 --- a/src/devices/bus/nes/act53.cpp +++ b/src/devices/bus/nes/act53.cpp @@ -158,7 +158,7 @@ void nes_action53_device::update_mirr() } } -WRITE8_MEMBER(nes_action53_device::write_l) +void nes_action53_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("action 53 write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -167,7 +167,7 @@ WRITE8_MEMBER(nes_action53_device::write_l) } -WRITE8_MEMBER(nes_action53_device::write_h) +void nes_action53_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("action 53 write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/act53.h b/src/devices/bus/nes/act53.h index 1f299a5a5da..8e4b1c3b073 100644 --- a/src/devices/bus/nes/act53.h +++ b/src/devices/bus/nes/act53.h @@ -14,8 +14,8 @@ public: // construction/destruction nes_action53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/aladdin.cpp b/src/devices/bus/nes/aladdin.cpp index 4c8a6690be6..db57b61ff00 100644 --- a/src/devices/bus/nes/aladdin.cpp +++ b/src/devices/bus/nes/aladdin.cpp @@ -52,7 +52,7 @@ aladdin_cart_interface::~aladdin_cart_interface() { } -READ8_MEMBER(aladdin_cart_interface::read) +uint8_t aladdin_cart_interface::read(offs_t offset) { if (offset < 0x4000) return m_rom[(m_lobank * 0x4000) + (offset & 0x3fff)]; @@ -84,10 +84,10 @@ void nes_aladdin_slot_device::device_start() m_cart = dynamic_cast(get_card_device()); } -READ8_MEMBER(nes_aladdin_slot_device::read) +uint8_t nes_aladdin_slot_device::read(offs_t offset) { if (m_cart) - return m_cart->read(space, offset, mem_mask); + return m_cart->read(offset); return 0xff; } @@ -296,19 +296,19 @@ void nes_aladdin_device::pcb_reset() -------------------------------------------------*/ -READ8_MEMBER(nes_aladdin_device::read_h) +uint8_t nes_aladdin_device::read_h(offs_t offset) { LOG_MMC(("aladdin read_h, offset: %04x\n", offset)); // this shall be the proper code, but it's a bit slower, so we access directly the subcart below - //return m_subslot->read(space, offset, mem_mask); + //return m_subslot->read(offset); if (m_subslot->m_cart) - return m_subslot->m_cart->read(space, offset, mem_mask); + return m_subslot->m_cart->read(offset); else // this is "fake" in the sense that we fill CPU space with 0xff if no Aladdin cart is loaded return hi_access_rom(offset); } -WRITE8_MEMBER(nes_aladdin_device::write_h) +void nes_aladdin_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("aladdin write_h, offset: %04x, data: %02x\n", offset, data)); m_subslot->write_prg(offset, data); diff --git a/src/devices/bus/nes/aladdin.h b/src/devices/bus/nes/aladdin.h index 1f00d49ba47..9014bf6969a 100644 --- a/src/devices/bus/nes/aladdin.h +++ b/src/devices/bus/nes/aladdin.h @@ -24,7 +24,7 @@ public: virtual ~aladdin_cart_interface(); // reading and writing - virtual DECLARE_READ8_MEMBER(read); + virtual uint8_t read(offs_t offset); uint8_t *get_cart_base() { return m_rom; } void set_cart_size(uint32_t size) { m_rom_size = size; m_rom_mask = (size / 0x4000) - 1; } @@ -82,7 +82,7 @@ public: // slot interface overrides virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; - virtual DECLARE_READ8_MEMBER(read); + uint8_t read(offs_t offset); void write_prg(uint32_t offset, uint8_t data) { if (m_cart) m_cart->write_prg(offset, data); } protected: @@ -160,8 +160,8 @@ public: // construction/destruction nes_aladdin_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/ave.cpp b/src/devices/bus/nes/ave.cpp index 823d66e2e57..2e93ea17501 100644 --- a/src/devices/bus/nes/ave.cpp +++ b/src/devices/bus/nes/ave.cpp @@ -122,7 +122,7 @@ void nes_maxi15_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_nina001_device::write_m) +void nes_nina001_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("nina-001 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -155,7 +155,7 @@ WRITE8_MEMBER(nes_nina001_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_nina006_device::write_l) +void nes_nina006_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("nina-006 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -192,7 +192,7 @@ void nes_maxi15_device::update_banks() } } -READ8_MEMBER(nes_maxi15_device::read_h) +uint8_t nes_maxi15_device::read_h(offs_t offset) { LOG_MMC(("Maxi 15 read_h, offset: %04x\n", offset)); diff --git a/src/devices/bus/nes/ave.h b/src/devices/bus/nes/ave.h index 5fdd233b3c3..b40d2ed6d9d 100644 --- a/src/devices/bus/nes/ave.h +++ b/src/devices/bus/nes/ave.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_nina001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,7 +34,7 @@ public: // construction/destruction nes_nina006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -52,7 +52,7 @@ public: // construction/destruction nes_maxi15_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; + virtual uint8_t read_h(offs_t offset) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/bandai.cpp b/src/devices/bus/nes/bandai.cpp index 89f8009c0b5..1dd82f1747d 100644 --- a/src/devices/bus/nes/bandai.cpp +++ b/src/devices/bus/nes/bandai.cpp @@ -205,7 +205,7 @@ void nes_fjump2_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_oekakids_device::nt_w) +void nes_oekakids_device::nt_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); @@ -220,7 +220,7 @@ WRITE8_MEMBER(nes_oekakids_device::nt_w) m_nt_access[page][offset & 0x3ff] = data; } -READ8_MEMBER(nes_oekakids_device::nt_r) +uint8_t nes_oekakids_device::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); @@ -253,7 +253,7 @@ void nes_oekakids_device::ppu_latch(offs_t offset) #endif } -WRITE8_MEMBER(nes_oekakids_device::write_h) +void nes_oekakids_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("oeka kids write_h, offset: %04x, data: %02x\n", offset, data)); @@ -308,7 +308,7 @@ void nes_fcg_device::device_timer(emu_timer &timer, device_timer_id id, int para } } -WRITE8_MEMBER(nes_fcg_device::fcg_write) +void nes_fcg_device::fcg_write(offs_t offset, uint8_t data) { LOG_MMC(("lz93d50_write, offset: %04x, data: %02x\n", offset, data)); @@ -346,12 +346,12 @@ WRITE8_MEMBER(nes_fcg_device::fcg_write) } } -WRITE8_MEMBER(nes_fcg_device::write_m) +void nes_fcg_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("lz93d50 write_m, offset: %04x, data: %02x\n", offset, data)); if (m_battery.empty() && m_prgram.empty()) - fcg_write(space, offset & 0x0f, data, mem_mask); + fcg_write(offset & 0x0f, data); else if (!m_battery.empty()) m_battery[offset] = data; else @@ -361,7 +361,7 @@ WRITE8_MEMBER(nes_fcg_device::write_m) // FCG board does not access regs in 0x8000-0xffff space! // only later design lz93d50 (and its variants do)! -WRITE8_MEMBER(nes_lz93d50_24c01_device::write_h) +void nes_lz93d50_24c01_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("lz93d50_24c01 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -373,12 +373,12 @@ WRITE8_MEMBER(nes_lz93d50_24c01_device::write_h) m_i2c_dir = BIT(data, 7); break; default: - fcg_write(space, offset & 0x0f, data, mem_mask); + fcg_write(offset & 0x0f, data); break; } } -READ8_MEMBER(nes_lz93d50_24c01_device::read_m) +uint8_t nes_lz93d50_24c01_device::read_m(offs_t offset) { LOG_MMC(("lz93d50 EEPROM read, offset: %04x\n", offset)); if (m_i2c_dir) @@ -430,19 +430,19 @@ void nes_fjump2_device::set_prg() prg16_cdef(prg_base | 0x0f); } -READ8_MEMBER(nes_fjump2_device::read_m) +uint8_t nes_fjump2_device::read_m(offs_t offset) { LOG_MMC(("fjump2 read_m, offset: %04x\n", offset)); return m_battery[offset & (m_battery.size() - 1)]; } -WRITE8_MEMBER(nes_fjump2_device::write_m) +void nes_fjump2_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("fjump2 write_m, offset: %04x, data: %02x\n", offset, data)); m_battery[offset & (m_battery.size() - 1)] = data; } -WRITE8_MEMBER(nes_fjump2_device::write_h) +void nes_fjump2_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("fjump2 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -460,7 +460,7 @@ WRITE8_MEMBER(nes_fjump2_device::write_h) set_prg(); break; default: - fcg_write(space, offset & 0x0f, data, mem_mask); + fcg_write(offset & 0x0f, data); break; } } diff --git a/src/devices/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h index e44ff99de20..e7cb0a1d0cd 100644 --- a/src/devices/bus/nes/bandai.h +++ b/src/devices/bus/nes/bandai.h @@ -17,9 +17,9 @@ public: // construction/destruction nes_oekakids_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual DECLARE_READ8_MEMBER(nt_r) override; - virtual DECLARE_WRITE8_MEMBER(nt_w) override; + virtual void write_h(offs_t offset, uint8_t data) override; + virtual uint8_t nt_r(offs_t offset) override; + virtual void nt_w(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -46,8 +46,8 @@ public: nes_fcg_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - virtual DECLARE_WRITE8_MEMBER(fcg_write); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + void fcg_write(offs_t offset, uint8_t data); + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -75,7 +75,7 @@ public: nes_lz93d50_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override { fcg_write(space, offset, data, mem_mask); } + virtual void write_h(offs_t offset, uint8_t data) override { fcg_write(offset, data); } protected: nes_lz93d50_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -90,8 +90,8 @@ public: // construction/destruction nes_lz93d50_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -131,9 +131,9 @@ public: // construction/destruction nes_fjump2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/benshieng.cpp b/src/devices/bus/nes/benshieng.cpp index 921d7c5b56f..2b3c7818f58 100644 --- a/src/devices/bus/nes/benshieng.cpp +++ b/src/devices/bus/nes/benshieng.cpp @@ -86,7 +86,7 @@ void nes_benshieng_device::update_banks() chr2_6(m_mmc_vrom_bank[3], CHRROM); } -WRITE8_MEMBER(nes_benshieng_device::write_h) +void nes_benshieng_device::write_h(offs_t offset, uint8_t data) { uint8_t helper = (offset & 0xc00) >> 10; LOG_MMC(("benshieng write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/benshieng.h b/src/devices/bus/nes/benshieng.h index c25aba92508..599de5a6e9c 100644 --- a/src/devices/bus/nes/benshieng.h +++ b/src/devices/bus/nes/benshieng.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_benshieng_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/bootleg.cpp b/src/devices/bus/nes/bootleg.cpp index 49cccaa6a3b..d585a8df9de 100644 --- a/src/devices/bus/nes/bootleg.cpp +++ b/src/devices/bus/nes/bootleg.cpp @@ -570,7 +570,7 @@ void nes_ax5705_device::set_prg() prg8_ab(m_mmc_prg_bank[1]); } -WRITE8_MEMBER(nes_ax5705_device::write_h) +void nes_ax5705_device::write_h(offs_t offset, uint8_t data) { uint8_t bank; LOG_MMC(("ax5705 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -652,7 +652,7 @@ void nes_sc127_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_sc127_device::write_h) +void nes_sc127_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sc127 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -715,7 +715,7 @@ void nes_mbaby_device::device_timer(emu_timer &timer, device_timer_id id, int pa } } -WRITE8_MEMBER(nes_mbaby_device::write_h) +void nes_mbaby_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Mario Baby write_h, offset: %04x, data: %02x\n", offset, data)); @@ -746,7 +746,7 @@ WRITE8_MEMBER(nes_mbaby_device::write_h) } } -READ8_MEMBER(nes_mbaby_device::read_m) +uint8_t nes_mbaby_device::read_m(offs_t offset) { LOG_MMC(("Mario Baby read_m, offset: %04x\n", offset)); return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)]; @@ -764,7 +764,7 @@ READ8_MEMBER(nes_mbaby_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_asn_device::write_h) +void nes_asn_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Ai Senshi Nicol write_h, offset: %04x, data: %02x\n", offset, data)); @@ -775,7 +775,7 @@ WRITE8_MEMBER(nes_asn_device::write_h) m_latch = data; } -READ8_MEMBER(nes_asn_device::read_m) +uint8_t nes_asn_device::read_m(offs_t offset) { LOG_MMC(("Ai Senshi Nicol read_m, offset: %04x\n", offset)); return m_prg[((m_latch * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)]; @@ -811,7 +811,7 @@ void nes_smb3p_device::device_timer(emu_timer &timer, device_timer_id id, int pa } } -WRITE8_MEMBER(nes_smb3p_device::write_h) +void nes_smb3p_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("btl_smb3_w, offset: %04x, data: %02x\n", offset, data)); switch (offset & 0x0f) @@ -879,7 +879,7 @@ void nes_btl_dn_device::hblank_irq(int scanline, int vblank, int blanked ) hold_irq_line(); } -WRITE8_MEMBER(nes_btl_dn_device::write_h) +void nes_btl_dn_device::write_h(offs_t offset, uint8_t data) { uint8_t bank; LOG_MMC(("btl_dn write_h, offset: %04x, data: %02x\n", offset, data)); @@ -933,13 +933,13 @@ WRITE8_MEMBER(nes_btl_dn_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_whirl2706_device::write_h) +void nes_whirl2706_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("whirl2706 write_h, offset: %04x, data: %02x\n", offset, data)); m_latch = data; } -READ8_MEMBER(nes_whirl2706_device::read_m) +uint8_t nes_whirl2706_device::read_m(offs_t offset) { LOG_MMC(("whirl2706 read_m, offset: %04x\n", offset)); return m_prg[(m_latch * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)]; @@ -975,7 +975,7 @@ void nes_smb2j_device::device_timer(emu_timer &timer, device_timer_id id, int pa } } -WRITE8_MEMBER(nes_smb2j_device::write_l) +void nes_smb2j_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("smb2j write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -984,7 +984,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_l) m_irq_enable = data & 3; // maybe also m_irq_count = 0?!? } -WRITE8_MEMBER(nes_smb2j_device::write_h) +void nes_smb2j_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("smb2j write_h, offset: %04x, data: %02x\n", offset, data)); @@ -992,7 +992,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_h) m_irq_enable = data & 3; } -WRITE8_MEMBER(nes_smb2j_device::write_ex) +void nes_smb2j_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("smb2j write_ex, offset: %04x, data: %02x\n", offset, data)); @@ -1010,7 +1010,7 @@ WRITE8_MEMBER(nes_smb2j_device::write_ex) } } -READ8_MEMBER(nes_smb2j_device::read_l) +uint8_t nes_smb2j_device::read_l(offs_t offset) { LOG_MMC(("smb2j read_l, offset: %04x\n", offset)); offset += 0x100; @@ -1018,10 +1018,10 @@ READ8_MEMBER(nes_smb2j_device::read_l) if (offset >= 0x1000) return m_prg[0x10000 + (offset & 0x0fff)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } -READ8_MEMBER(nes_smb2j_device::read_m) +uint8_t nes_smb2j_device::read_m(offs_t offset) { LOG_MMC(("smb2j read_m, offset: %04x\n", offset)); return m_prg[0x4000 + offset]; @@ -1057,7 +1057,7 @@ void nes_smb2ja_device::device_timer(emu_timer &timer, device_timer_id id, int p } } -WRITE8_MEMBER(nes_smb2ja_device::write_h) +void nes_smb2ja_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("smb2ja write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1076,7 +1076,7 @@ WRITE8_MEMBER(nes_smb2ja_device::write_h) } } -READ8_MEMBER(nes_smb2ja_device::read_m) +uint8_t nes_smb2ja_device::read_m(offs_t offset) { LOG_MMC(("smb2ja read_m, offset: %04x\n", offset)); return m_prg[(0xfe * 0x2000 + (offset & 0x1fff)) & (m_prg_size - 1)]; @@ -1114,7 +1114,7 @@ void nes_smb2jb_device::device_timer(emu_timer &timer, device_timer_id id, int p } } -WRITE8_MEMBER(nes_smb2jb_device::write_l) +void nes_smb2jb_device::write_l(offs_t offset, uint8_t data) { uint8_t prg; LOG_MMC(("smb2jb write_l, offset: %04x, data: %02x\n", offset, data)); @@ -1134,14 +1134,14 @@ WRITE8_MEMBER(nes_smb2jb_device::write_l) } } -READ8_MEMBER(nes_smb2jb_device::read_m) +uint8_t nes_smb2jb_device::read_m(offs_t offset) { LOG_MMC(("smb2jb read_m, offset: %04x\n", offset)); return m_prg[((0x0f * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)]; } /* This goes to 0x4020-0x403f & 0x40a0-0x40bf */ -WRITE8_MEMBER(nes_smb2jb_device::write_ex) +void nes_smb2jb_device::write_ex(offs_t offset, uint8_t data) { uint8_t prg; LOG_MMC(("smb2jb write_ex, offset: %04x, data: %02x\n", offset, data)); @@ -1169,7 +1169,7 @@ WRITE8_MEMBER(nes_smb2jb_device::write_ex) -------------------------------------------------*/ -WRITE8_MEMBER(nes_09034a_device::write_ex) +void nes_09034a_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("09-034a write_ex, offset: %04x, data: %02x\n", offset, data)); @@ -1177,7 +1177,7 @@ WRITE8_MEMBER(nes_09034a_device::write_ex) m_reg = data & 1; } -READ8_MEMBER(nes_09034a_device::read_m) +uint8_t nes_09034a_device::read_m(offs_t offset) { LOG_MMC(("09-034a read_m, offset: %04x\n", offset)); // in 0x6000-0x7fff is mapped the 2nd PRG chip which starts after 32K (hence the +4) @@ -1198,7 +1198,7 @@ READ8_MEMBER(nes_09034a_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_tobidase_device::write_l) +void nes_tobidase_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("tobidase write_h, offset: %04x, data: %02x\n", offset, data)); offset += 0x4100; @@ -1207,7 +1207,7 @@ WRITE8_MEMBER(nes_tobidase_device::write_l) m_latch = data & 0x0f; } -READ8_MEMBER(nes_tobidase_device::read_m) +uint8_t nes_tobidase_device::read_m(offs_t offset) { LOG_MMC(("tobidase read_m, offset: %04x\n", offset)); if (m_latch >= 0x0c) @@ -1229,13 +1229,13 @@ READ8_MEMBER(nes_tobidase_device::read_m) -------------------------------------------------*/ -READ8_MEMBER(nes_lh32_device::read_m) +uint8_t nes_lh32_device::read_m(offs_t offset) { LOG_MMC(("lh32 read_m, offset: %04x\n", offset)); return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)]; } -READ8_MEMBER(nes_lh32_device::read_h) +uint8_t nes_lh32_device::read_h(offs_t offset) { // LOG_MMC(("lh32 read_h, offset: %04x\n", offset)); @@ -1245,7 +1245,7 @@ READ8_MEMBER(nes_lh32_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_lh32_device::write_m) +void nes_lh32_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("lh32 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1256,7 +1256,7 @@ WRITE8_MEMBER(nes_lh32_device::write_m) } } -WRITE8_MEMBER(nes_lh32_device::write_h) +void nes_lh32_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("lh32 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1285,13 +1285,13 @@ void nes_lh10_device::update_prg() prg8_ab(m_reg[7]); } -READ8_MEMBER(nes_lh10_device::read_m) +uint8_t nes_lh10_device::read_m(offs_t offset) { LOG_MMC(("lh10 read_m, offset: %04x\n", offset)); return m_prg[(0x0e * 0x2000) + (offset & 0x1fff)]; } -READ8_MEMBER(nes_lh10_device::read_h) +uint8_t nes_lh10_device::read_h(offs_t offset) { // LOG_MMC(("lh10 read_h, offset: %04x\n", offset)); @@ -1301,7 +1301,7 @@ READ8_MEMBER(nes_lh10_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_lh10_device::write_h) +void nes_lh10_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("lh10 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1354,13 +1354,13 @@ void nes_lh53_device::device_timer(emu_timer &timer, device_timer_id id, int par } } -READ8_MEMBER(nes_lh53_device::read_m) +uint8_t nes_lh53_device::read_m(offs_t offset) { LOG_MMC(("lh53 read_m, offset: %04x\n", offset)); return m_prg[(m_reg * 0x2000) + (offset & 0x1fff)]; } -READ8_MEMBER(nes_lh53_device::read_h) +uint8_t nes_lh53_device::read_h(offs_t offset) { // LOG_MMC(("lh53 read_h, offset: %04x\n", offset)); @@ -1370,7 +1370,7 @@ READ8_MEMBER(nes_lh53_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_lh53_device::write_h) +void nes_lh53_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("lh53 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1412,7 +1412,7 @@ WRITE8_MEMBER(nes_lh53_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_2708_device::read_m) +uint8_t nes_2708_device::read_m(offs_t offset) { LOG_MMC(("btl-2708 read_m, offset: %04x\n", offset)); if (!m_reg[1]) @@ -1421,14 +1421,14 @@ READ8_MEMBER(nes_2708_device::read_m) return m_prg[(m_reg[0] * 0x2000) + (offset & 0x1fff)]; } -WRITE8_MEMBER(nes_2708_device::write_m) +void nes_2708_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("btl-2708 write_m, offset: %04x, data: %02x\n", offset, data)); // if (!m_reg[1]) m_prgram[offset] = data; // lower 8K of WRAM } -READ8_MEMBER(nes_2708_device::read_h) +uint8_t nes_2708_device::read_h(offs_t offset) { // LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset)); @@ -1438,7 +1438,7 @@ READ8_MEMBER(nes_2708_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_2708_device::write_h) +void nes_2708_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("btl-2708 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1475,20 +1475,20 @@ WRITE8_MEMBER(nes_2708_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ac08_device::write_ex) +void nes_ac08_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("AC-08 write_ex, offset: %04x, data: %02x\n", offset, data)); if (offset == 5) // $4025 set_nt_mirroring(!BIT(data, 3) ? PPU_MIRROR_VERT : PPU_MIRROR_HORZ); } -READ8_MEMBER(nes_ac08_device::read_m) +uint8_t nes_ac08_device::read_m(offs_t offset) { LOG_MMC(("AC-08 read_m, offset: %04x\n", offset)); return m_prg[(m_latch * 0x2000) + (offset & 0x1fff)]; } -WRITE8_MEMBER(nes_ac08_device::write_h) +void nes_ac08_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("AC-08 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1511,13 +1511,13 @@ WRITE8_MEMBER(nes_ac08_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_unl_bb_device::read_m) +uint8_t nes_unl_bb_device::read_m(offs_t offset) { LOG_MMC(("unl-bb read_m, offset: %04x\n", offset)); return m_prg[(((m_reg[0] & 3 & m_prg_mask) * 0x2000) + (offset & 0x1fff))]; } -WRITE8_MEMBER(nes_unl_bb_device::write_h) +void nes_unl_bb_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("unl-bb write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1549,7 +1549,7 @@ WRITE8_MEMBER(nes_unl_bb_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_mmalee_device::read_m) +uint8_t nes_mmalee_device::read_m(offs_t offset) { LOG_MMC(("mmalee read_m, offset: %04x\n", offset)); @@ -1561,7 +1561,7 @@ READ8_MEMBER(nes_mmalee_device::read_m) return ((offset + 0x6000) & 0xff00) >> 8; } -WRITE8_MEMBER(nes_mmalee_device::write_m) +void nes_mmalee_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("mmalee write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1594,7 +1594,7 @@ void nes_shuiguan_device::device_timer(emu_timer &timer, device_timer_id id, int } } -WRITE8_MEMBER(nes_shuiguan_device::write_h) +void nes_shuiguan_device::write_h(offs_t offset, uint8_t data) { int bank; LOG_MMC(("shuiguan write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1646,7 +1646,7 @@ WRITE8_MEMBER(nes_shuiguan_device::write_h) } } -READ8_MEMBER(nes_shuiguan_device::read_m) +uint8_t nes_shuiguan_device::read_m(offs_t offset) { // always first bank?? LOG_MMC(("shuiguan read_m, offset: %04x\n", offset)); @@ -1670,7 +1670,7 @@ READ8_MEMBER(nes_shuiguan_device::read_m) -------------------------------------------------*/ -READ8_MEMBER(nes_rt01_device::read_h) +uint8_t nes_rt01_device::read_h(offs_t offset) { // LOG_MMC(("rt01 read_h, offset: %04x\n", offset)); diff --git a/src/devices/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h index a048f0955d4..42213b131b8 100644 --- a/src/devices/bus/nes/bootleg.h +++ b/src/devices/bus/nes/bootleg.h @@ -14,7 +14,7 @@ public: // construction/destruction nes_ax5705_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -36,7 +36,7 @@ class nes_sc127_device : public nes_nrom_device public: // construction/destruction nes_sc127_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -58,8 +58,8 @@ class nes_mbaby_device : public nes_nrom_device public: // construction/destruction nes_mbaby_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -87,8 +87,8 @@ public: // construction/destruction nes_asn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -109,7 +109,7 @@ public: // construction/destruction nes_smb3p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -134,7 +134,7 @@ class nes_btl_dn_device : public nes_nrom_device public: // construction/destruction nes_btl_dn_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -156,8 +156,8 @@ public: // construction/destruction nes_whirl2706_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -178,11 +178,11 @@ public: // construction/destruction nes_smb2j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -207,8 +207,8 @@ class nes_smb2ja_device : public nes_nrom_device public: // construction/destruction nes_smb2ja_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -233,9 +233,9 @@ class nes_smb2jb_device : public nes_nrom_device public: // construction/destruction nes_smb2jb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_ex(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -261,8 +261,8 @@ public: // construction/destruction nes_09034a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_READ8_MEMBER(read_m) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual uint8_t read_m(offs_t offset) override; virtual void pcb_reset() override; @@ -283,8 +283,8 @@ public: // construction/destruction nes_tobidase_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -305,10 +305,10 @@ public: // construction/destruction nes_lh32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -329,9 +329,9 @@ public: // construction/destruction nes_lh10_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -354,10 +354,10 @@ public: // construction/destruction nes_lh53_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override {} - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override {} + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -385,10 +385,10 @@ public: // construction/destruction nes_2708_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -408,9 +408,9 @@ public: // nes_ac08_device/destruction nes_ac08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -429,8 +429,8 @@ class nes_unl_bb_device : public nes_nrom_device public: // construction/destruction nes_unl_bb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -450,8 +450,8 @@ public: // construction/destruction nes_mmalee_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -468,8 +468,8 @@ public: // construction/destruction nes_shuiguan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -496,7 +496,7 @@ public: // construction/destruction nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; + virtual uint8_t read_h(offs_t offset) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/camerica.cpp b/src/devices/bus/nes/camerica.cpp index 7b9d413f6c9..5870b2911ab 100644 --- a/src/devices/bus/nes/camerica.cpp +++ b/src/devices/bus/nes/camerica.cpp @@ -136,7 +136,7 @@ void nes_golden5_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_bf9093_device::write_h) +void nes_bf9093_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bf9093 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -174,7 +174,7 @@ WRITE8_MEMBER(nes_bf9093_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bf9096_device::write_h) +void nes_bf9096_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bf9096 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -203,7 +203,7 @@ WRITE8_MEMBER(nes_bf9096_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_golden5_device::write_h) +void nes_golden5_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("golden5 write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h index b7a4782c342..7688249a64c 100644 --- a/src/devices/bus/nes/camerica.h +++ b/src/devices/bus/nes/camerica.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_bf9093_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,8 +34,8 @@ public: // construction/destruction nes_bf9096_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override { write_h(space, offset, data, mem_mask); } + virtual void write_h(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override { write_h(offset, data); } virtual void pcb_reset() override; @@ -56,7 +56,7 @@ public: // construction/destruction nes_golden5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/cne.cpp b/src/devices/bus/nes/cne.cpp index 1f0ad793937..c81e7a2bdc8 100644 --- a/src/devices/bus/nes/cne.cpp +++ b/src/devices/bus/nes/cne.cpp @@ -112,7 +112,7 @@ void nes_cne_shlz_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_cne_decathl_device::write_h) +void nes_cne_decathl_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("cne_decathl_w, offset: %04x, data: %02x\n", offset, data)); @@ -146,7 +146,7 @@ WRITE8_MEMBER(nes_cne_decathl_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_cne_fsb_device::write_m) +void nes_cne_fsb_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("cne_fsb write_m, offset: %04x, data: %02x\n", offset, data)); @@ -184,7 +184,7 @@ WRITE8_MEMBER(nes_cne_fsb_device::write_m) m_battery[offset] = data; } -READ8_MEMBER(nes_cne_fsb_device::read_m) +uint8_t nes_cne_fsb_device::read_m(offs_t offset) { LOG_MMC(("cne_fsb read_m, offset: %04x\n", offset)); @@ -211,7 +211,7 @@ READ8_MEMBER(nes_cne_fsb_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_cne_shlz_device::write_l) +void nes_cne_shlz_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("cne_shlz write_l, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/cne.h b/src/devices/bus/nes/cne.h index d5e117c791a..da0623cbde3 100644 --- a/src/devices/bus/nes/cne.h +++ b/src/devices/bus/nes/cne.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_cne_decathl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,8 +34,8 @@ public: // construction/destruction nes_cne_fsb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -53,7 +53,7 @@ public: // construction/destruction nes_cne_shlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/cony.cpp b/src/devices/bus/nes/cony.cpp index 78c89a57141..e42ae833f82 100644 --- a/src/devices/bus/nes/cony.cpp +++ b/src/devices/bus/nes/cony.cpp @@ -174,7 +174,7 @@ void nes_cony_device::device_timer(emu_timer &timer, device_timer_id id, int par } } -WRITE8_MEMBER(nes_cony_device::write_l) +void nes_cony_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("cony write_l, offset: %04x, data: %02x\n", offset, data)); @@ -182,7 +182,7 @@ WRITE8_MEMBER(nes_cony_device::write_l) m_low_reg[offset & 0x03] = data; } -READ8_MEMBER(nes_cony_device::read_l) +uint8_t nes_cony_device::read_l(offs_t offset) { LOG_MMC(("cony read_l, offset: %04x\n", offset)); @@ -229,7 +229,7 @@ void nes_cony_device::set_chr() } } -WRITE8_MEMBER(nes_cony_device::write_h) +void nes_cony_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("cony write_h, offset: %04x, data: %02x\n", offset, data)); @@ -310,7 +310,7 @@ WRITE8_MEMBER(nes_cony_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_yoko_device::write_l) +void nes_yoko_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("yoko write_l, offset: %04x, data: %02x\n", offset, data)); @@ -318,7 +318,7 @@ WRITE8_MEMBER(nes_yoko_device::write_l) m_low_reg[offset & 0x03] = data; } -READ8_MEMBER(nes_yoko_device::read_l) +uint8_t nes_yoko_device::read_l(offs_t offset) { LOG_MMC(("yoko read_l, offset: %04x\n", offset)); @@ -359,7 +359,7 @@ void nes_yoko_device::set_chr() chr2_6(m_reg[7], CHRROM); } -WRITE8_MEMBER(nes_yoko_device::write_h) +void nes_yoko_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("yoko write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/cony.h b/src/devices/bus/nes/cony.h index b7b759a7fe1..aa767a88c13 100644 --- a/src/devices/bus/nes/cony.h +++ b/src/devices/bus/nes/cony.h @@ -16,9 +16,9 @@ public: // construction/destruction nes_cony_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -54,9 +54,9 @@ public: // construction/destruction nes_yoko_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/datach.cpp b/src/devices/bus/nes/datach.cpp index b95f03cfb84..5262b6d927a 100644 --- a/src/devices/bus/nes/datach.cpp +++ b/src/devices/bus/nes/datach.cpp @@ -52,7 +52,7 @@ datach_cart_interface::~datach_cart_interface() { } -READ8_MEMBER(datach_cart_interface::read) +uint8_t datach_cart_interface::read(offs_t offset) { if (offset < 0x4000) return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)]; @@ -84,10 +84,10 @@ void nes_datach_slot_device::device_start() m_cart = dynamic_cast(get_card_device()); } -READ8_MEMBER(nes_datach_slot_device::read) +uint8_t nes_datach_slot_device::read(offs_t offset) { if (m_cart) - return m_cart->read(space, offset, mem_mask); + return m_cart->read(offset); return 0xff; } @@ -284,7 +284,7 @@ void nes_datach_device::pcb_reset() -------------------------------------------------*/ -READ8_MEMBER(nes_datach_device::read_m) +uint8_t nes_datach_device::read_m(offs_t offset) { LOG_MMC(("Datach read_m, offset: %04x\n", offset)); uint8_t i2c_val = 0; @@ -301,19 +301,19 @@ READ8_MEMBER(nes_datach_device::read_m) } -READ8_MEMBER(nes_datach_device::read_h) +uint8_t nes_datach_device::read_h(offs_t offset) { LOG_MMC(("Datach read_h, offset: %04x\n", offset)); // this shall be the proper code, but it's a bit slower, so we access directly the subcart below - //return m_subslot->read(space, offset, mem_mask); + //return m_subslot->read(offset); if (m_subslot->m_cart) - return m_subslot->m_cart->read(space, offset, mem_mask); + return m_subslot->m_cart->read(offset); else // this is "fake" in the sense that we fill CPU space with 0xff if no Datach cart is loaded return hi_access_rom(offset); } -WRITE8_MEMBER(nes_datach_device::write_h) +void nes_datach_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Datach write_h, offset: %04x, data: %02x\n", offset, data)); @@ -353,7 +353,7 @@ WRITE8_MEMBER(nes_datach_device::write_h) #endif break; default: - fcg_write(space, offset & 0x0f, data, mem_mask); + fcg_write(offset & 0x0f, data); break; } } diff --git a/src/devices/bus/nes/datach.h b/src/devices/bus/nes/datach.h index e1b14b01aa8..81865baa69f 100644 --- a/src/devices/bus/nes/datach.h +++ b/src/devices/bus/nes/datach.h @@ -25,7 +25,7 @@ public: virtual ~datach_cart_interface(); // reading and writing - virtual DECLARE_READ8_MEMBER(read); + virtual uint8_t read(offs_t offset); uint8_t *get_cart_base() { return m_rom; } void write_prg_bank(uint8_t bank) { m_bank = bank; } @@ -83,7 +83,7 @@ public: // slot interface overrides virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; - virtual DECLARE_READ8_MEMBER(read); + uint8_t read(offs_t offset); void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); } protected: @@ -152,9 +152,9 @@ public: // construction/destruction nes_datach_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/discrete.cpp b/src/devices/bus/nes/discrete.cpp index 2e1f6a4c81b..2fb7883d063 100644 --- a/src/devices/bus/nes/discrete.cpp +++ b/src/devices/bus/nes/discrete.cpp @@ -134,7 +134,7 @@ void nes_74x161x138_device::pcb_reset() -------------------------------------------------*/ // there are two 'variants' depending on hardwired or mapper ctrl mirroring -WRITE8_MEMBER(nes_74x161x161x32_device::write_h) +void nes_74x161x161x32_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("74x161x161x32 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -155,7 +155,7 @@ WRITE8_MEMBER(nes_74x161x161x32_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_74x139x74_device::write_m) +void nes_74x139x74_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("74x139x74 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -179,7 +179,7 @@ WRITE8_MEMBER(nes_74x139x74_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_74x377_device::write_h) +void nes_74x377_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("74x377 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -200,7 +200,7 @@ WRITE8_MEMBER(nes_74x377_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_74x161x138_device::write_m) +void nes_74x161x138_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("74x161x138 write_m, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/discrete.h b/src/devices/bus/nes/discrete.h index 51576a77e41..861b8b643bf 100644 --- a/src/devices/bus/nes/discrete.h +++ b/src/devices/bus/nes/discrete.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_74x161x161x32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,7 +34,7 @@ public: // construction/destruction nes_74x139x74_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -52,7 +52,7 @@ public: // construction/destruction nes_74x377_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -70,7 +70,7 @@ public: // construction/destruction nes_74x161x138_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp index 32a364aa9e4..71101492822 100644 --- a/src/devices/bus/nes/disksys.cpp +++ b/src/devices/bus/nes/disksys.cpp @@ -173,7 +173,7 @@ void nes_disksys_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_disksys_device::write_h) +void nes_disksys_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Famicom Disk System write_h, offset %04x, data: %02x\n", offset, data)); @@ -181,7 +181,7 @@ WRITE8_MEMBER(nes_disksys_device::write_h) m_prgram[offset + 0x2000] = data; } -READ8_MEMBER(nes_disksys_device::read_h) +uint8_t nes_disksys_device::read_h(offs_t offset) { LOG_MMC(("Famicom Disk System read_h, offset: %04x\n", offset)); @@ -191,13 +191,13 @@ READ8_MEMBER(nes_disksys_device::read_h) return m_2c33_rom[offset & 0x1fff]; } -WRITE8_MEMBER(nes_disksys_device::write_m) +void nes_disksys_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("Famicom Disk System write_m, offset: %04x, data: %02x\n", offset, data)); m_prgram[offset] = data; } -READ8_MEMBER(nes_disksys_device::read_m) +uint8_t nes_disksys_device::read_m(offs_t offset) { LOG_MMC(("Famicom Disk System read_m, offset: %04x\n", offset)); return m_prgram[offset]; @@ -209,7 +209,7 @@ void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked) hold_irq_line(); } -WRITE8_MEMBER(nes_disksys_device::write_ex) +void nes_disksys_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("Famicom Disk System write_ex, offset: %04x, data: %02x\n", offset, data)); @@ -281,7 +281,7 @@ WRITE8_MEMBER(nes_disksys_device::write_ex) } } -READ8_MEMBER(nes_disksys_device::read_ex) +uint8_t nes_disksys_device::read_ex(offs_t offset) { LOG_MMC(("Famicom Disk System read_ex, offset: %04x\n", offset)); uint8_t ret; diff --git a/src/devices/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h index 907ee06abef..1e3e45afb1e 100644 --- a/src/devices/bus/nes/disksys.h +++ b/src/devices/bus/nes/disksys.h @@ -17,12 +17,12 @@ public: // construction/destruction nes_disksys_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_ex) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_ex(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void disk_flip_side() override; diff --git a/src/devices/bus/nes/ggenie.cpp b/src/devices/bus/nes/ggenie.cpp index 462c9c5da37..bb5866feac7 100644 --- a/src/devices/bus/nes/ggenie.cpp +++ b/src/devices/bus/nes/ggenie.cpp @@ -80,7 +80,7 @@ void nes_ggenie_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_ggenie_device::write_h) +void nes_ggenie_device::write_h(offs_t offset, uint8_t data) { // LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data)); if (!m_gg_bypass) @@ -150,22 +150,22 @@ WRITE8_MEMBER(nes_ggenie_device::write_h) } } else - m_ggslot->write_h(space, offset, data, mem_mask); + m_ggslot->write_h(offset, data); } -WRITE8_MEMBER(nes_ggenie_device::write_m) +void nes_ggenie_device::write_m(offs_t offset, uint8_t data) { if (m_gg_bypass && m_ggslot) - m_ggslot->write_m(space, offset, data, mem_mask); + m_ggslot->write_m(offset, data); } -WRITE8_MEMBER(nes_ggenie_device::write_l) +void nes_ggenie_device::write_l(offs_t offset, uint8_t data) { if (m_gg_bypass && m_ggslot) - m_ggslot->write_l(space, offset, data, mem_mask); + m_ggslot->write_l(offset, data); } -READ8_MEMBER(nes_ggenie_device::read_h) +uint8_t nes_ggenie_device::read_h(offs_t offset) { if (m_gg_bypass && m_ggslot->m_cart) { @@ -186,29 +186,29 @@ READ8_MEMBER(nes_ggenie_device::read_h) return hi_access_rom(offset); } -READ8_MEMBER(nes_ggenie_device::read_m) +uint8_t nes_ggenie_device::read_m(offs_t offset) { if (m_gg_bypass && m_ggslot->m_cart) - return m_ggslot->m_cart->read_m(space, offset, mem_mask); + return m_ggslot->m_cart->read_m(offset); return 0xff; } -READ8_MEMBER(nes_ggenie_device::read_l) +uint8_t nes_ggenie_device::read_l(offs_t offset) { if (m_gg_bypass && m_ggslot->m_cart) - return m_ggslot->m_cart->read_l(space, offset, mem_mask); + return m_ggslot->m_cart->read_l(offset); return 0xff; } -WRITE8_MEMBER(nes_ggenie_device::chr_w) +void nes_ggenie_device::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; if (m_gg_bypass && m_ggslot->m_cart) { - m_ggslot->m_cart->chr_w(space, offset, data, mem_mask); + m_ggslot->m_cart->chr_w(offset, data); return; } @@ -216,24 +216,24 @@ WRITE8_MEMBER(nes_ggenie_device::chr_w) m_chr_access[bank][offset & 0x3ff] = data; } -READ8_MEMBER(nes_ggenie_device::chr_r) +uint8_t nes_ggenie_device::chr_r(offs_t offset) { int bank = offset >> 10; if (m_gg_bypass && m_ggslot->m_cart) - return m_ggslot->m_cart->chr_r(space, offset, mem_mask); + return m_ggslot->m_cart->chr_r(offset); return m_chr_access[bank][offset & 0x3ff]; } -WRITE8_MEMBER(nes_ggenie_device::nt_w) +void nes_ggenie_device::nt_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); if (m_gg_bypass && m_ggslot->m_cart) { - m_ggslot->m_cart->nt_w(space, offset, data, mem_mask); + m_ggslot->m_cart->nt_w(offset, data); return; } @@ -243,12 +243,12 @@ WRITE8_MEMBER(nes_ggenie_device::nt_w) m_nt_access[page][offset & 0x3ff] = data; } -READ8_MEMBER(nes_ggenie_device::nt_r) +uint8_t nes_ggenie_device::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); if (m_gg_bypass && m_ggslot->m_cart) - return m_ggslot->m_cart->nt_r(space, offset, mem_mask); + return m_ggslot->m_cart->nt_r(offset); return m_nt_access[page][offset & 0x3ff]; } diff --git a/src/devices/bus/nes/ggenie.h b/src/devices/bus/nes/ggenie.h index 1ca577ec7b0..2d6974be849 100644 --- a/src/devices/bus/nes/ggenie.h +++ b/src/devices/bus/nes/ggenie.h @@ -16,17 +16,17 @@ public: // construction/destruction nes_ggenie_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; - virtual DECLARE_READ8_MEMBER(nt_r) override; - virtual DECLARE_WRITE8_MEMBER(nt_w) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual void chr_w(offs_t offset, uint8_t data) override; + virtual uint8_t nt_r(offs_t offset) override; + virtual void nt_w(offs_t offset, uint8_t data) override; void hblank_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->hblank_irq(scanline, vblank, blanked); } void scanline_irq(int scanline, int vblank, int blanked) override { if (m_gg_bypass && m_ggslot->m_cart) m_ggslot->m_cart->scanline_irq(scanline, vblank, blanked); } diff --git a/src/devices/bus/nes/henggedianzi.cpp b/src/devices/bus/nes/henggedianzi.cpp index 5d75850a0c8..0f9acd05d45 100644 --- a/src/devices/bus/nes/henggedianzi.cpp +++ b/src/devices/bus/nes/henggedianzi.cpp @@ -135,7 +135,7 @@ void nes_hengg_shjy3_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_hengg_srich_device::write_h) +void nes_hengg_srich_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("hengg_srich write_h, offset: %04x, data: %02x\n", offset, data)); @@ -162,7 +162,7 @@ WRITE8_MEMBER(nes_hengg_srich_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_hengg_xhzs_device::write_l) +void nes_hengg_xhzs_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("hengg_xhzs write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x4100; @@ -171,7 +171,7 @@ WRITE8_MEMBER(nes_hengg_xhzs_device::write_l) prg32(data >> 1); } -WRITE8_MEMBER(nes_hengg_xhzs_device::write_h) +void nes_hengg_xhzs_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("hengg_xhzs write_h, offset: %04x, data: %02x\n", offset, data)); @@ -225,7 +225,7 @@ void nes_hengg_shjy3_device::update_banks() } } -WRITE8_MEMBER(nes_hengg_shjy3_device::write_h) +void nes_hengg_shjy3_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("shjy3 write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/henggedianzi.h b/src/devices/bus/nes/henggedianzi.h index d74da743425..0bf0b2faebc 100644 --- a/src/devices/bus/nes/henggedianzi.h +++ b/src/devices/bus/nes/henggedianzi.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_hengg_srich_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,8 +34,8 @@ public: // construction/destruction nes_hengg_xhzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -53,7 +53,7 @@ public: // construction/destruction nes_hengg_shjy3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/hes.cpp b/src/devices/bus/nes/hes.cpp index 8d1d3a7a590..946ea1f9585 100644 --- a/src/devices/bus/nes/hes.cpp +++ b/src/devices/bus/nes/hes.cpp @@ -73,7 +73,7 @@ void nes_hes_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_hes_device::write_l) +void nes_hes_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("hes write_l, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/hes.h b/src/devices/bus/nes/hes.h index d45d20a1a3f..ea72578ad98 100644 --- a/src/devices/bus/nes/hes.h +++ b/src/devices/bus/nes/hes.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_hes_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/hosenkan.cpp b/src/devices/bus/nes/hosenkan.cpp index 4200655897e..ae7749b7e9a 100644 --- a/src/devices/bus/nes/hosenkan.cpp +++ b/src/devices/bus/nes/hosenkan.cpp @@ -105,7 +105,7 @@ void nes_hosenkan_device::hblank_irq( int scanline, int vblank, int blanked ) m_irq_clear = 0; } -WRITE8_MEMBER(nes_hosenkan_device::write_h) +void nes_hosenkan_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("hosenkan write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/hosenkan.h b/src/devices/bus/nes/hosenkan.h index 153638a9cbe..163aef76edc 100644 --- a/src/devices/bus/nes/hosenkan.h +++ b/src/devices/bus/nes/hosenkan.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_hosenkan_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/irem.cpp b/src/devices/bus/nes/irem.cpp index 15ef687dbea..c55cb588506 100644 --- a/src/devices/bus/nes/irem.cpp +++ b/src/devices/bus/nes/irem.cpp @@ -166,7 +166,7 @@ void nes_h3001_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_lrog017_device::write_h) +void nes_lrog017_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("lrog017 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -185,7 +185,7 @@ WRITE8_MEMBER(nes_lrog017_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_holydivr_device::write_h) +void nes_holydivr_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("holy diver write_h, offset: %04x, data: %02x\n", offset, data)); @@ -209,7 +209,7 @@ WRITE8_MEMBER(nes_holydivr_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_tam_s1_device::write_h) +void nes_tam_s1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("tam s1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -233,7 +233,7 @@ WRITE8_MEMBER(nes_tam_s1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_g101_device::write_h) +void nes_g101_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("g101 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -299,7 +299,7 @@ void nes_h3001_device::device_timer(emu_timer &timer, device_timer_id id, int pa } } -WRITE8_MEMBER(nes_h3001_device::write_h) +void nes_h3001_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("h3001 write_h, offset %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/irem.h b/src/devices/bus/nes/irem.h index a50077e70a3..82fd0815c38 100644 --- a/src/devices/bus/nes/irem.h +++ b/src/devices/bus/nes/irem.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_lrog017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,7 +34,7 @@ public: // construction/destruction nes_holydivr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -52,7 +52,7 @@ public: // construction/destruction nes_tam_s1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -70,7 +70,7 @@ public: // construction/destruction nes_g101_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -90,7 +90,7 @@ public: // construction/destruction nes_h3001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/jaleco.cpp b/src/devices/bus/nes/jaleco.cpp index 907580d6a1e..740c3c799b8 100644 --- a/src/devices/bus/nes/jaleco.cpp +++ b/src/devices/bus/nes/jaleco.cpp @@ -253,7 +253,7 @@ void nes_ss88006_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_jf11_device::write_m) +void nes_jf11_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("jf11 write_m, offset: %04x, data: %02x\n", offset, data)); chr8(data, CHRROM); @@ -274,7 +274,7 @@ WRITE8_MEMBER(nes_jf11_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_jf13_device::write_m) +void nes_jf13_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("jf13 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -301,7 +301,7 @@ WRITE8_MEMBER(nes_jf13_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_jf16_device::write_h) +void nes_jf16_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("jf16 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -330,7 +330,7 @@ WRITE8_MEMBER(nes_jf16_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_jf17_device::write_h) +void nes_jf17_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("jf17 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -345,7 +345,7 @@ WRITE8_MEMBER(nes_jf17_device::write_h) m_latch = data; } -WRITE8_MEMBER(nes_jf17_adpcm_device::write_h) +void nes_jf17_adpcm_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("jf17 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data)); @@ -379,7 +379,7 @@ WRITE8_MEMBER(nes_jf17_adpcm_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_jf19_device::write_h) +void nes_jf19_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("jf19 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -392,7 +392,7 @@ WRITE8_MEMBER(nes_jf19_device::write_h) chr8(data & 0x0f, CHRROM); } -WRITE8_MEMBER(nes_jf19_adpcm_device::write_h) +void nes_jf19_adpcm_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("jf19 + ADPCM write_h, offset: %04x, data: %02x\n", offset, data)); @@ -474,7 +474,7 @@ void nes_ss88006_device::device_timer(emu_timer &timer, device_timer_id id, int } } -WRITE8_MEMBER(nes_ss88006_device::ss88006_write) +void nes_ss88006_device::ss88006_write(offs_t offset, uint8_t data) { uint8_t bank; LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -564,7 +564,7 @@ WRITE8_MEMBER(nes_ss88006_device::ss88006_write) // bits2-bits6 are sample number, bit1 is setup/enable/disable // program first write sample # + bit1 set to 'init' the sample // then it writes sample # + bit1 clear to 'start' the sample -void nes_ss88006_adpcm_device::ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev) +void nes_ss88006_adpcm_device::ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev) { LOG_MMC(("ss88006 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -575,13 +575,13 @@ void nes_ss88006_adpcm_device::ss88006_adpcm_write(address_space &space, offs_t { // printf("sample write: data: %02x\n", data); if ((m_latch & 2) && !(data & 2)) - dev->start((data >> 2) & 0x1f, (data >> 2) & 0x1f); + dev.start((data >> 2) & 0x1f, (data >> 2) & 0x1f); } m_latch = data; break; default: - ss88006_write(space, offset, data); + ss88006_write(offset, data); break; } } diff --git a/src/devices/bus/nes/jaleco.h b/src/devices/bus/nes/jaleco.h index ed8c04da7a0..53cc5716ce3 100644 --- a/src/devices/bus/nes/jaleco.h +++ b/src/devices/bus/nes/jaleco.h @@ -17,7 +17,7 @@ public: // construction/destruction nes_jf11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -35,7 +35,7 @@ public: // construction/destruction nes_jf13_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -58,7 +58,7 @@ public: // construction/destruction nes_jf16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -76,7 +76,7 @@ public: // construction/destruction nes_jf17_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -98,7 +98,7 @@ public: // construction/destruction nes_jf17_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; protected: virtual void device_add_mconfig(machine_config &config) override; @@ -116,7 +116,7 @@ public: // construction/destruction nes_jf19_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -136,7 +136,7 @@ public: // construction/destruction nes_jf19_adpcm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; protected: virtual void device_add_mconfig(machine_config &config) override; @@ -154,8 +154,8 @@ public: // construction/destruction nes_ss88006_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(ss88006_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_write(space, offset, data, mem_mask); } + void ss88006_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { ss88006_write(offset, data); } virtual void pcb_reset() override; @@ -188,7 +188,7 @@ protected: // construction/destruction nes_ss88006_adpcm_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - void ss88006_adpcm_write(address_space &space, offs_t offset, uint8_t data, samples_device *dev); + void ss88006_adpcm_write(offs_t offset, uint8_t data, samples_device &dev); }; @@ -204,7 +204,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); } required_device m_samples; }; @@ -222,7 +222,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); } required_device m_samples; }; @@ -240,7 +240,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); } required_device m_samples; }; @@ -258,7 +258,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - virtual DECLARE_WRITE8_MEMBER(write_h) override { ss88006_adpcm_write(space, offset, data, m_samples); } + virtual void write_h(offs_t offset, uint8_t data) override { ss88006_adpcm_write(offset, data, *m_samples); } required_device m_samples; }; diff --git a/src/devices/bus/nes/jy.cpp b/src/devices/bus/nes/jy.cpp index 33c1e6e6cac..8a54624cd5a 100644 --- a/src/devices/bus/nes/jy.cpp +++ b/src/devices/bus/nes/jy.cpp @@ -144,14 +144,14 @@ void nes_jy_typea_device::pcb_reset() -------------------------------------------------*/ -READ8_MEMBER(nes_jy_typea_device::nt_r) +uint8_t nes_jy_typea_device::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); irq_clock(0, 2); return m_nt_access[page][offset & 0x3ff]; } -READ8_MEMBER(nes_jy_typea_device::chr_r) +uint8_t nes_jy_typea_device::chr_r(offs_t offset) { int bank = offset >> 10; irq_clock(0, 2); @@ -241,7 +241,7 @@ void nes_jy_typea_device::scanline_irq(int scanline, int vblank, int blanked) // 0x5000-0x5fff : sort of protection? -READ8_MEMBER(nes_jy_typea_device::read_l) +uint8_t nes_jy_typea_device::read_l(offs_t offset) { LOG_MMC(("JY Company write_m, offset: %04x\n", offset)); offset += 0x100; @@ -249,7 +249,7 @@ READ8_MEMBER(nes_jy_typea_device::read_l) if (offset >= 0x1000 && offset < 0x1800) { // bit6/bit7 DSW read - return m_open_bus & 0x3f; + return get_open_bus() & 0x3f; } if (offset >= 0x1800) @@ -262,10 +262,10 @@ READ8_MEMBER(nes_jy_typea_device::read_l) return m_latch; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } -WRITE8_MEMBER(nes_jy_typea_device::write_l) +void nes_jy_typea_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -282,14 +282,14 @@ WRITE8_MEMBER(nes_jy_typea_device::write_l) } // 0x6000-0x7fff : WRAM or open bus -READ8_MEMBER(nes_jy_typea_device::read_m) +uint8_t nes_jy_typea_device::read_m(offs_t offset) { LOG_MMC(("JY Company write_m, offset: %04x\n", offset)); if (m_reg[0] & 0x80) return m_prg[(m_bank_6000 & m_prg_mask) * 0x2000 + (offset & 0x1fff)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } @@ -425,7 +425,7 @@ void nes_jy_typea_device::update_banks(int reg) } -WRITE8_MEMBER(nes_jy_typea_device::write_h) +void nes_jy_typea_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("JY Company write_m, offset: %04x, data: %02x\n", offset, data)); @@ -569,7 +569,7 @@ void nes_jy_typec_device::update_mirror_typec() update_mirror_typea(); } -READ8_MEMBER(nes_jy_typec_device::chr_r) +uint8_t nes_jy_typec_device::chr_r(offs_t offset) { int bank = offset >> 10; diff --git a/src/devices/bus/nes/jy.h b/src/devices/bus/nes/jy.h index 80be5d98631..d318bfae60a 100644 --- a/src/devices/bus/nes/jy.h +++ b/src/devices/bus/nes/jy.h @@ -16,13 +16,13 @@ public: // construction/destruction nes_jy_typea_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_READ8_MEMBER(nt_r) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual uint8_t nt_r(offs_t offset) override; virtual void scanline_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -90,7 +90,7 @@ public: // construction/destruction nes_jy_typec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(chr_r) override; + virtual uint8_t chr_r(offs_t offset) override; protected: void update_mirror_typec(); diff --git a/src/devices/bus/nes/kaiser.cpp b/src/devices/bus/nes/kaiser.cpp index 2e228782785..52690376e4b 100644 --- a/src/devices/bus/nes/kaiser.cpp +++ b/src/devices/bus/nes/kaiser.cpp @@ -295,7 +295,7 @@ void nes_ks7037_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks7058_device::write_h) +void nes_ks7058_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7058 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -322,7 +322,7 @@ WRITE8_MEMBER(nes_ks7058_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks7022_device::write_h) +void nes_ks7022_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7022 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -333,7 +333,7 @@ WRITE8_MEMBER(nes_ks7022_device::write_h) m_latch = data & 0x0f; } -READ8_MEMBER(nes_ks7022_device::read_h) +uint8_t nes_ks7022_device::read_h(offs_t offset) { LOG_MMC(("ks7022 read_h, offset: %04x\n", offset)); @@ -388,7 +388,7 @@ void nes_ks7032_device::prg_update() prg8_cd(m_reg[3]); } -WRITE8_MEMBER(nes_ks7032_device::ks7032_write) +void nes_ks7032_device::ks7032_write(offs_t offset, uint8_t data) { LOG_MMC(("ks7032_write, offset: %04x, data: %02x\n", offset, data)); @@ -419,7 +419,7 @@ WRITE8_MEMBER(nes_ks7032_device::ks7032_write) } } -READ8_MEMBER(nes_ks7032_device::read_m) +uint8_t nes_ks7032_device::read_m(offs_t offset) { LOG_MMC(("ks7032 read_m, offset: %04x\n", offset)); return m_prg[((m_reg[4] * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)]; @@ -438,7 +438,7 @@ READ8_MEMBER(nes_ks7032_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks202_device::write_h) +void nes_ks202_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks202 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -458,12 +458,12 @@ WRITE8_MEMBER(nes_ks202_device::write_h) } break; default: - ks7032_write(space, offset, data, mem_mask); + ks7032_write(offset, data); break; } } -READ8_MEMBER(nes_ks202_device::read_m) +uint8_t nes_ks202_device::read_m(offs_t offset) { LOG_MMC(("ks202 read_m, offset: %04x\n", offset)); return m_prgram[offset & 0x1fff]; @@ -499,7 +499,7 @@ void nes_ks7017_device::device_timer(emu_timer &timer, device_timer_id id, int p } } -WRITE8_MEMBER(nes_ks7017_device::write_l) +void nes_ks7017_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("ks7017 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -512,7 +512,7 @@ WRITE8_MEMBER(nes_ks7017_device::write_l) prg16_89ab(m_latch); } -WRITE8_MEMBER(nes_ks7017_device::write_ex) +void nes_ks7017_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("ks7017 write_ex, offset: %04x, data: %02x\n", offset, data)); offset += 0x20; @@ -530,7 +530,7 @@ WRITE8_MEMBER(nes_ks7017_device::write_ex) set_nt_mirroring(BIT(data, 3) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); } -READ8_MEMBER(nes_ks7017_device::read_ex) +uint8_t nes_ks7017_device::read_ex(offs_t offset) { LOG_MMC(("ks7017 read_ex, offset: %04x\n", offset)); offset += 0x20; @@ -542,7 +542,7 @@ READ8_MEMBER(nes_ks7017_device::read_ex) return temp; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } /*------------------------------------------------- @@ -557,7 +557,7 @@ READ8_MEMBER(nes_ks7017_device::read_ex) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks7012_device::write_h) +void nes_ks7012_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7012 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -580,13 +580,13 @@ WRITE8_MEMBER(nes_ks7012_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks7013b_device::write_m) +void nes_ks7013b_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("ks7013b write_l, offset: %04x, data: %02x\n", offset, data)); prg16_89ab(data); } -WRITE8_MEMBER(nes_ks7013b_device::write_h) +void nes_ks7013b_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7013b write_h, offset: %04x, data: %02x\n", offset, data)); set_nt_mirroring((data & 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); @@ -613,20 +613,20 @@ WRITE8_MEMBER(nes_ks7013b_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_ks7031_device::read_m) +uint8_t nes_ks7031_device::read_m(offs_t offset) { // LOG_MMC(("ks7031 read_m, offset: %04x\n", offset)); return m_prg[(m_reg[(offset >> 11) & 3] * 0x0800) + (offset & 0x7ff)]; } -READ8_MEMBER(nes_ks7031_device::read_h) +uint8_t nes_ks7031_device::read_h(offs_t offset) { // here the first 32K are accessed, but in 16x2K blocks loaded in reverse order int accessed_2k = (offset >> 11) & 0x0f; return m_prg[((0x0f - accessed_2k) * 0x0800) + (offset & 0x7ff)]; } -WRITE8_MEMBER(nes_ks7031_device::write_h) +void nes_ks7031_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7031 write_h, offset: %04x, data: %02x\n", offset, data)); m_reg[(offset >> 11) & 3] = data & 0x3f; @@ -646,13 +646,13 @@ WRITE8_MEMBER(nes_ks7031_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_ks7016_device::read_m) +uint8_t nes_ks7016_device::read_m(offs_t offset) { // LOG_MMC(("ks7016 read_m, offset: %04x\n", offset)); return m_prg[((m_reg * 0x2000) + (offset & 0x1fff)) & (m_prg_size - 1)]; } -WRITE8_MEMBER(nes_ks7016_device::write_h) +void nes_ks7016_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7016 write_h, offset: %04x, data: %02x\n", offset, data)); uint8_t mask = offset & 0x30; @@ -692,7 +692,7 @@ void nes_ks7037_device::update_prg() set_nt_page(3, CIRAM, m_reg[5] & 1, 1); } -READ8_MEMBER(nes_ks7037_device::read_m) +uint8_t nes_ks7037_device::read_m(offs_t offset) { // LOG_MMC(("ks7037 read_m, offset: %04x\n", offset)); if (offset < 0x1000) @@ -701,14 +701,14 @@ READ8_MEMBER(nes_ks7037_device::read_m) return m_prg[(0x1e * 0x1000) + (offset & 0x0fff)]; } -WRITE8_MEMBER(nes_ks7037_device::write_m) +void nes_ks7037_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("ks7037 write_m, offset: %04x, data: %02x\n", offset, data)); if (offset < 0x1000) m_prgram[offset & 0x0fff] = data; } -READ8_MEMBER(nes_ks7037_device::read_h) +uint8_t nes_ks7037_device::read_h(offs_t offset) { // LOG_MMC(("ks7037 read_h, offset: %04x\n", offset)); @@ -718,7 +718,7 @@ READ8_MEMBER(nes_ks7037_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_ks7037_device::write_h) +void nes_ks7037_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h index 8c544059aa9..e0e31658cdb 100644 --- a/src/devices/bus/nes/kaiser.h +++ b/src/devices/bus/nes/kaiser.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_ks7058_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,8 +34,8 @@ public: // construction/destruction nes_ks7022_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -56,9 +56,9 @@ public: // construction/destruction nes_ks7032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(ks7032_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { ks7032_write(space, offset, data, mem_mask); } + virtual uint8_t read_m(offs_t offset) override; + void ks7032_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { ks7032_write(offset, data); } virtual void pcb_reset() override; @@ -91,8 +91,8 @@ public: nes_ks202_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -104,9 +104,9 @@ public: // construction/destruction nes_ks7017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_ex(offs_t offset) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -135,7 +135,7 @@ public: // construction/destruction nes_ks7012_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -152,8 +152,8 @@ public: // construction/destruction nes_ks7013b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -171,9 +171,9 @@ public: // construction/destruction nes_ks7031_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -194,8 +194,8 @@ public: // construction/destruction nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -215,10 +215,10 @@ public: // construction/destruction nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/karastudio.cpp b/src/devices/bus/nes/karastudio.cpp index 0e076b8091c..fc98a658213 100644 --- a/src/devices/bus/nes/karastudio.cpp +++ b/src/devices/bus/nes/karastudio.cpp @@ -60,7 +60,7 @@ kstudio_cart_interface::~kstudio_cart_interface() { } -READ8_MEMBER(kstudio_cart_interface::read) +uint8_t kstudio_cart_interface::read(offs_t offset) { return m_rom[(m_bank * 0x4000) + (offset & 0x3fff)]; } @@ -89,10 +89,10 @@ void nes_kstudio_slot_device::device_start() m_cart = dynamic_cast(get_card_device()); } -READ8_MEMBER(nes_kstudio_slot_device::read) +uint8_t nes_kstudio_slot_device::read(offs_t offset) { if (m_cart) - return m_cart->read(space, offset, mem_mask); + return m_cart->read(offset); return 0xff; } @@ -225,29 +225,29 @@ void nes_karaokestudio_device::pcb_reset() -------------------------------------------------*/ -READ8_MEMBER(nes_karaokestudio_device::read_m) +uint8_t nes_karaokestudio_device::read_m(offs_t offset) { LOG_MMC(("karaoke studio read_m, offset: %04x\n", offset)); return m_mic_ipt->read(); } -READ8_MEMBER(nes_karaokestudio_device::read_h) +uint8_t nes_karaokestudio_device::read_h(offs_t offset) { LOG_MMC(("karaoke studio read_h, offset: %04x\n", offset)); // this shall be the proper code, but it's a bit slower, so we access directly the subcart below - //return m_subslot->read(space, offset, mem_mask); + //return m_subslot->read(offset); // access expansion cart only if all of the followings are verified // * we are in $8000-$bfff range // * there has been a bankswitch write to map the expansion to such range // * there actually is an expansion cart mounted if (offset < 0x4000 && m_exp_active && m_subslot->m_cart) - return m_subslot->m_cart->read(space, offset, mem_mask); + return m_subslot->m_cart->read(offset); else return hi_access_rom(offset); } -WRITE8_MEMBER(nes_karaokestudio_device::write_h) +void nes_karaokestudio_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("karaoke studio write_h, offset: %04x, data: %02x\n", offset, data)); // bit3 1 = M ROM (main unit), 0=E ROM (expansion) diff --git a/src/devices/bus/nes/karastudio.h b/src/devices/bus/nes/karastudio.h index 4932c8b9426..fcb481f046e 100644 --- a/src/devices/bus/nes/karastudio.h +++ b/src/devices/bus/nes/karastudio.h @@ -24,7 +24,7 @@ public: virtual ~kstudio_cart_interface(); // reading and writing - virtual DECLARE_READ8_MEMBER(read); + virtual uint8_t read(offs_t offset); uint8_t *get_cart_base() { return m_rom; } void write_prg_bank(uint8_t bank) { m_bank = bank; } @@ -78,7 +78,7 @@ public: // slot interface overrides virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; - virtual DECLARE_READ8_MEMBER(read); + uint8_t read(offs_t offset); void write_prg_bank(uint8_t bank) { if (m_cart) m_cart->write_prg_bank(bank); } protected: @@ -135,9 +135,9 @@ public: // construction/destruction nes_karaokestudio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/konami.cpp b/src/devices/bus/nes/konami.cpp index 2963336f92e..e979132223d 100644 --- a/src/devices/bus/nes/konami.cpp +++ b/src/devices/bus/nes/konami.cpp @@ -239,7 +239,7 @@ void nes_konami_vrc7_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_konami_vrc1_device::write_h) +void nes_konami_vrc1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("VRC-1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -280,7 +280,7 @@ WRITE8_MEMBER(nes_konami_vrc1_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_konami_vrc2_device::read_m) +uint8_t nes_konami_vrc2_device::read_m(offs_t offset) { LOG_MMC(("VRC-2 read_m, offset: %04x\n", offset)); @@ -289,10 +289,10 @@ READ8_MEMBER(nes_konami_vrc2_device::read_m) else if (!m_prgram.empty()) return m_prgram[offset & (m_prgram.size() - 1)]; else // sort of protection? it returns open bus in $7000-$7fff and (open bus & 0xfe) | m_latch in $6000-$6fff - return (offset < 0x1000) ? ((m_open_bus & 0xfe) | (m_latch & 1)) : m_open_bus; + return (offset < 0x1000) ? ((get_open_bus() & 0xfe) | (m_latch & 1)) : get_open_bus(); } -WRITE8_MEMBER(nes_konami_vrc2_device::write_m) +void nes_konami_vrc2_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("VRC-2 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -304,7 +304,7 @@ WRITE8_MEMBER(nes_konami_vrc2_device::write_m) m_latch = data; } -WRITE8_MEMBER(nes_konami_vrc2_device::write_h) +void nes_konami_vrc2_device::write_h(offs_t offset, uint8_t data) { uint8_t bank, shift, mask; uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100); @@ -385,7 +385,7 @@ void nes_konami_vrc3_device::device_timer(emu_timer &timer, device_timer_id id, } } -WRITE8_MEMBER(nes_konami_vrc3_device::write_h) +void nes_konami_vrc3_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("VRC-3 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -482,7 +482,7 @@ void nes_konami_vrc4_device::set_prg() } } -WRITE8_MEMBER(nes_konami_vrc4_device::write_h) +void nes_konami_vrc4_device::write_h(offs_t offset, uint8_t data) { uint8_t bank, shift, mask; uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100); @@ -564,7 +564,7 @@ WRITE8_MEMBER(nes_konami_vrc4_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_konami_vrc6_device::write_h) +void nes_konami_vrc6_device::write_h(offs_t offset, uint8_t data) { uint8_t bank; uint16_t add_lines = ((offset << (9 - m_vrc_ls_prg_a)) & 0x200) | ((offset << (8 - m_vrc_ls_prg_b)) & 0x100); @@ -579,10 +579,10 @@ WRITE8_MEMBER(nes_konami_vrc6_device::write_h) prg8_cd(data); break; case 0x1000: // pulse 1 & global control - m_vrc6snd->write(space, add_lines>>8, data); + m_vrc6snd->write(add_lines>>8, data); break; case 0x2000: // pulse 2 - m_vrc6snd->write(space, (add_lines>>8) | 0x100, data); + m_vrc6snd->write((add_lines>>8) | 0x100, data); break; case 0x3000: if (add_lines == 0x300) @@ -596,7 +596,7 @@ WRITE8_MEMBER(nes_konami_vrc6_device::write_h) } } else // saw - m_vrc6snd->write(space, (add_lines>>8) | 0x200, data); + m_vrc6snd->write((add_lines>>8) | 0x200, data); break; case 0x5000: case 0x6000: @@ -659,7 +659,7 @@ void nes_konami_vrc6_device::device_add_mconfig(machine_config &config) -------------------------------------------------*/ -WRITE8_MEMBER(nes_konami_vrc7_device::write_h) +void nes_konami_vrc7_device::write_h(offs_t offset, uint8_t data) { uint8_t bank; LOG_MMC(("VRC-7 write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/konami.h b/src/devices/bus/nes/konami.h index db269170f53..ed8d0caea3c 100644 --- a/src/devices/bus/nes/konami.h +++ b/src/devices/bus/nes/konami.h @@ -18,7 +18,7 @@ public: // construction/destruction nes_konami_vrc1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -39,9 +39,9 @@ public: // construction/destruction nes_konami_vrc2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -63,7 +63,7 @@ public: // construction/destruction nes_konami_vrc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -91,7 +91,7 @@ public: // construction/destruction nes_konami_vrc4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -126,7 +126,7 @@ public: // construction/destruction nes_konami_vrc6_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; protected: // device-level overrides @@ -146,7 +146,7 @@ public: // construction/destruction nes_konami_vrc7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/legacy.cpp b/src/devices/bus/nes/legacy.cpp index d2b1c697296..a3ab9377082 100644 --- a/src/devices/bus/nes/legacy.cpp +++ b/src/devices/bus/nes/legacy.cpp @@ -136,7 +136,7 @@ void nes_ffe8_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_ffe3_device::write_h) +void nes_ffe3_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("mapper8 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -174,7 +174,7 @@ void nes_ffe4_device::device_timer(emu_timer &timer, device_timer_id id, int par } } -WRITE8_MEMBER(nes_ffe4_device::write_l) +void nes_ffe4_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("mapper6 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -202,7 +202,7 @@ WRITE8_MEMBER(nes_ffe4_device::write_l) } } -WRITE8_MEMBER(nes_ffe4_device::chr_w) +void nes_ffe4_device::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; if (m_exram_enabled) @@ -212,7 +212,7 @@ WRITE8_MEMBER(nes_ffe4_device::chr_w) m_chr_access[bank][offset & 0x3ff] = data; } -READ8_MEMBER(nes_ffe4_device::chr_r) +uint8_t nes_ffe4_device::chr_r(offs_t offset) { int bank = offset >> 10; if (m_exram_enabled) @@ -222,7 +222,7 @@ READ8_MEMBER(nes_ffe4_device::chr_r) } -WRITE8_MEMBER(nes_ffe4_device::write_h) +void nes_ffe4_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("mapper6 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -257,7 +257,7 @@ WRITE8_MEMBER(nes_ffe4_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ffe8_device::write_l) +void nes_ffe8_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("mapper17 write_l, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/legacy.h b/src/devices/bus/nes/legacy.h index 91b44e108c0..92722c0591c 100644 --- a/src/devices/bus/nes/legacy.h +++ b/src/devices/bus/nes/legacy.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_ffe3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,10 +34,10 @@ public: // construction/destruction nes_ffe4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual void chr_w(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -71,8 +71,8 @@ public: nes_ffe8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override {} + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override {} virtual void pcb_reset() override; }; diff --git a/src/devices/bus/nes/mmc1.cpp b/src/devices/bus/nes/mmc1.cpp index d324c153782..9a27c601b4c 100644 --- a/src/devices/bus/nes/mmc1.cpp +++ b/src/devices/bus/nes/mmc1.cpp @@ -219,7 +219,7 @@ void nes_sxrom_device::update_regs(int reg) } } -WRITE8_MEMBER( nes_sxrom_device::write_h ) +void nes_sxrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sxrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -265,7 +265,7 @@ WRITE8_MEMBER( nes_sxrom_device::write_h ) } } -WRITE8_MEMBER(nes_sxrom_device::write_m) +void nes_sxrom_device::write_m(offs_t offset, uint8_t data) { uint8_t bank = (m_reg[1] >> 2) & 3; LOG_MMC(("sxrom write_m, offset: %04x, data: %02x\n", offset, data)); @@ -279,7 +279,7 @@ WRITE8_MEMBER(nes_sxrom_device::write_m) } } -READ8_MEMBER(nes_sxrom_device::read_m) +uint8_t nes_sxrom_device::read_m(offs_t offset) { uint8_t bank = (m_reg[1] >> 2) & 3; LOG_MMC(("sxrom read_m, offset: %04x\n", offset)); @@ -292,11 +292,11 @@ READ8_MEMBER(nes_sxrom_device::read_m) return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)]; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } // SOROM has two RAM banks, the first is not battery backed up, the second is. -WRITE8_MEMBER(nes_sorom_device::write_m) +void nes_sorom_device::write_m(offs_t offset, uint8_t data) { uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3); LOG_MMC(("sorom write_m, offset: %04x, data: %02x\n", offset, data)); @@ -310,7 +310,7 @@ WRITE8_MEMBER(nes_sorom_device::write_m) } } -READ8_MEMBER(nes_sorom_device::read_m) +uint8_t nes_sorom_device::read_m(offs_t offset) { uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3); LOG_MMC(("sorom read_m, offset: %04x\n", offset)); @@ -323,11 +323,11 @@ READ8_MEMBER(nes_sorom_device::read_m) return m_prgram[offset & (m_prgram.size() - 1)]; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } // MMC1A boards have no wram enable/disable bit -WRITE8_MEMBER(nes_sxrom_a_device::write_m) +void nes_sxrom_a_device::write_m(offs_t offset, uint8_t data) { uint8_t bank = (m_reg[1] >> 2) & 3; LOG_MMC(("sxrom_a write_m, offset: %04x, data: %02x\n", offset, data)); @@ -338,7 +338,7 @@ WRITE8_MEMBER(nes_sxrom_a_device::write_m) m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)] = data; } -READ8_MEMBER(nes_sxrom_a_device::read_m) +uint8_t nes_sxrom_a_device::read_m(offs_t offset) { uint8_t bank = (m_reg[1] >> 2) & 3; LOG_MMC(("sxrom_a read_m, offset: %04x\n", offset)); @@ -348,10 +348,10 @@ READ8_MEMBER(nes_sxrom_a_device::read_m) if (!m_prgram.empty()) return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } -WRITE8_MEMBER(nes_sorom_a_device::write_m) +void nes_sorom_a_device::write_m(offs_t offset, uint8_t data) { uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3); LOG_MMC(("sorom_a write_m, offset: %04x, data: %02x\n", offset, data)); @@ -362,7 +362,7 @@ WRITE8_MEMBER(nes_sorom_a_device::write_m) m_prgram[offset & (m_prgram.size() - 1)] = data; } -READ8_MEMBER(nes_sorom_a_device::read_m) +uint8_t nes_sorom_a_device::read_m(offs_t offset) { uint8_t type = BIT(m_reg[0], 4) ? BIT(m_reg[1], 4) : BIT(m_reg[1], 3); LOG_MMC(("sorom_a read_m, offset: %04x\n", offset)); diff --git a/src/devices/bus/nes/mmc1.h b/src/devices/bus/nes/mmc1.h index dd9ecccac75..c8ccb835d76 100644 --- a/src/devices/bus/nes/mmc1.h +++ b/src/devices/bus/nes/mmc1.h @@ -16,9 +16,9 @@ public: // construction/destruction nes_sxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -46,8 +46,8 @@ public: // construction/destruction nes_sorom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -58,8 +58,8 @@ public: // construction/destruction nes_sxrom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; }; class nes_sorom_a_device : public nes_sxrom_device @@ -68,8 +68,8 @@ public: // construction/destruction nes_sorom_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; diff --git a/src/devices/bus/nes/mmc2.cpp b/src/devices/bus/nes/mmc2.cpp index 1055ce98921..8be7b04d2d7 100644 --- a/src/devices/bus/nes/mmc2.cpp +++ b/src/devices/bus/nes/mmc2.cpp @@ -130,7 +130,7 @@ void nes_pxrom_device::ppu_latch(offs_t offset) } } -WRITE8_MEMBER( nes_pxrom_device::pxrom_write ) +void nes_pxrom_device::pxrom_write(offs_t offset, uint8_t data) { LOG_MMC(("pxrom write_h, offset: %04x, data: %02x\n", offset, data)); switch (offset & 0x7000) @@ -182,7 +182,7 @@ WRITE8_MEMBER( nes_pxrom_device::pxrom_write ) -------------------------------------------------*/ -WRITE8_MEMBER( nes_fxrom_device::write_h ) +void nes_fxrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("fxrom write_h, offset: %04x, data: %02x\n", offset, data)); switch (offset & 0x7000) @@ -191,7 +191,7 @@ WRITE8_MEMBER( nes_fxrom_device::write_h ) prg16_89ab(data); break; default: - pxrom_write(space, offset, data, mem_mask); + pxrom_write(offset, data); break; } } diff --git a/src/devices/bus/nes/mmc2.h b/src/devices/bus/nes/mmc2.h index cfd81aa87d3..9f4d100d2f6 100644 --- a/src/devices/bus/nes/mmc2.h +++ b/src/devices/bus/nes/mmc2.h @@ -16,8 +16,8 @@ public: // construction/destruction nes_pxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(pxrom_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { pxrom_write(space, offset, data, mem_mask); } + virtual void pxrom_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { pxrom_write(offset, data); } virtual void ppu_latch(offs_t offset) override; virtual void pcb_reset() override; @@ -42,7 +42,7 @@ public: nes_fxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; diff --git a/src/devices/bus/nes/mmc3.cpp b/src/devices/bus/nes/mmc3.cpp index f8497dbd42d..d6f7f37dc4a 100644 --- a/src/devices/bus/nes/mmc3.cpp +++ b/src/devices/bus/nes/mmc3.cpp @@ -244,7 +244,7 @@ void nes_txrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask ) chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr); } -WRITE8_MEMBER(nes_txrom_device::txrom_write) +void nes_txrom_device::txrom_write(offs_t offset, uint8_t data) { uint8_t mmc_helper, cmd; @@ -313,7 +313,7 @@ WRITE8_MEMBER(nes_txrom_device::txrom_write) } } -WRITE8_MEMBER(nes_txrom_device::write_m) +void nes_txrom_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("txrom write_m, offset: %04x, data: %02x\n", offset, data)); @@ -326,7 +326,7 @@ WRITE8_MEMBER(nes_txrom_device::write_m) } } -READ8_MEMBER(nes_txrom_device::read_m) +uint8_t nes_txrom_device::read_m(offs_t offset) { LOG_MMC(("txrom read_m, offset: %04x\n", offset)); @@ -338,7 +338,7 @@ READ8_MEMBER(nes_txrom_device::read_m) return m_prgram[offset & (m_prgram.size() - 1)]; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } @@ -350,7 +350,7 @@ READ8_MEMBER(nes_txrom_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_hkrom_device::write_m) +void nes_hkrom_device::write_m(offs_t offset, uint8_t data) { uint8_t write_hi, write_lo; LOG_MMC(("hkrom write_m, offset: %04x, data: %02x\n", offset, data)); @@ -369,15 +369,15 @@ WRITE8_MEMBER(nes_hkrom_device::write_m) m_mmc6_ram[offset & 0x3ff] = data; } -READ8_MEMBER(nes_hkrom_device::read_m) +uint8_t nes_hkrom_device::read_m(offs_t offset) { LOG_MMC(("hkrom read_m, offset: %04x\n", offset)); if (offset < 0x1000) - return m_open_bus; // open bus + return get_open_bus(); // open bus if (!(m_mmc6_reg & 0xa0)) - return m_open_bus; // open bus + return get_open_bus(); // open bus if (BIT(offset, 9) && BIT(m_mmc6_reg, 7)) // access to upper half of 1k when upper read is enabled return m_mmc6_ram[offset & 0x3ff]; @@ -389,7 +389,7 @@ READ8_MEMBER(nes_hkrom_device::read_m) return 0x00; } -WRITE8_MEMBER(nes_hkrom_device::write_h) +void nes_hkrom_device::write_h(offs_t offset, uint8_t data) { uint8_t mmc6_helper; LOG_MMC(("hkrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -423,7 +423,7 @@ WRITE8_MEMBER(nes_hkrom_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -465,7 +465,7 @@ void nes_txsrom_device::chr_cb( int start, int bank, int source ) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_txsrom_device::write_h) +void nes_txsrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("txsrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -475,7 +475,7 @@ WRITE8_MEMBER(nes_txsrom_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -524,7 +524,7 @@ void nes_tqrom_device::set_chr( uint8_t chr, int chr_base, int chr_mask ) -------------------------------------------------*/ -WRITE8_MEMBER(nes_qj_device::write_m) +void nes_qj_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("qj write_m, offset: %04x, data: %02x\n", offset, data)); @@ -546,7 +546,7 @@ WRITE8_MEMBER(nes_qj_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_zz_device::write_m) +void nes_zz_device::write_m(offs_t offset, uint8_t data) { uint8_t mmc_helper = data & 0x07; LOG_MMC(("zz write_m, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/mmc3.h b/src/devices/bus/nes/mmc3.h index d16a0000268..5ef9e8dbdaa 100644 --- a/src/devices/bus/nes/mmc3.h +++ b/src/devices/bus/nes/mmc3.h @@ -16,10 +16,10 @@ public: // construction/destruction nes_txrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(txrom_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { txrom_write(space, offset, data, mem_mask); } + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void txrom_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { txrom_write(offset, data); } virtual void prg_cb(int start, int bank); virtual void chr_cb(int start, int bank, int source); @@ -62,9 +62,9 @@ public: // construction/destruction nes_hkrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -89,7 +89,7 @@ public: nes_txsrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void chr_cb(int start, int bank, int source) override; protected: @@ -119,7 +119,7 @@ public: nes_qj_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -133,7 +133,7 @@ public: nes_zz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; diff --git a/src/devices/bus/nes/mmc3_clones.cpp b/src/devices/bus/nes/mmc3_clones.cpp index 5c578c0fcbd..9be591c7d9f 100644 --- a/src/devices/bus/nes/mmc3_clones.cpp +++ b/src/devices/bus/nes/mmc3_clones.cpp @@ -637,11 +637,11 @@ void nes_pjoy84_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_nitra_device::write_h) +void nes_nitra_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("nitra write_h, offset: %04x, data: %02x\n", offset, data)); - txrom_write(space, (offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff, mem_mask); + txrom_write((offset & 0x6000) | ((offset & 0x400) >> 10), offset & 0xff); } /*------------------------------------------------- @@ -656,12 +656,12 @@ WRITE8_MEMBER(nes_nitra_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ks7057_device::write_h) +void nes_ks7057_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ks7057 write_h, offset: %04x, data: %02x\n", offset, data)); offset = (BIT(offset, 0) << 1) | BIT(offset, 1) | (offset & ~0x03); - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); } /*------------------------------------------------- @@ -679,11 +679,11 @@ WRITE8_MEMBER(nes_ks7057_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sbros11_device::write_h) +void nes_sbros11_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("smb11 write_h, offset: %04x, data: %02x\n", offset, data)); - txrom_write(space, (offset & 0x6000) | ((offset & 0x04) >> 2), data, mem_mask); + txrom_write((offset & 0x6000) | ((offset & 0x04) >> 2), data); } /*------------------------------------------------- @@ -711,14 +711,14 @@ void nes_malisb_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_malisb_device::write_h) +void nes_malisb_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("malisb write_h, offset: %04x, data: %02x\n", offset, data)); if (offset > 0x4000) - txrom_write(space, (offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data, mem_mask); + txrom_write((offset & 0xfffe) | ((offset & 0x04) >> 2) | ((offset & 0x08) >> 3), data); else - txrom_write(space, (offset & 0xfffe) | ((offset & 0x08) >> 3), data, mem_mask); + txrom_write((offset & 0xfffe) | ((offset & 0x08) >> 3), data); } /*------------------------------------------------- @@ -736,7 +736,7 @@ WRITE8_MEMBER(nes_malisb_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_family4646_device::write_m) +void nes_family4646_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("family4646 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -763,7 +763,7 @@ WRITE8_MEMBER(nes_family4646_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_pikay2k_device::write_h) +void nes_pikay2k_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("pikay2k write_h, offset: %04x, data: %02x\n", offset, data)); @@ -776,20 +776,20 @@ WRITE8_MEMBER(nes_pikay2k_device::write_h) case 0x2000: m_reg[0] = 0; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } // strange WRAM usage: it is protected at start, and gets unprotected after the first write to 0xa000 -WRITE8_MEMBER(nes_pikay2k_device::write_m) +void nes_pikay2k_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("pikay2k write_m, offset: %04x, data: %02x\n", offset, data)); m_prgram[offset & 0x1fff] = data; } -READ8_MEMBER(nes_pikay2k_device::read_m) +uint8_t nes_pikay2k_device::read_m(offs_t offset) { LOG_MMC(("pikay2k read_m, offset: %04x\n", offset)); @@ -820,7 +820,7 @@ void nes_8237_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_8237_device::write_l) +void nes_8237_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("unl_8237 write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -854,7 +854,7 @@ WRITE8_MEMBER(nes_8237_device::write_l) } } -WRITE8_MEMBER(nes_8237_device::write_h) +void nes_8237_device::write_h(offs_t offset, uint8_t data) { static const uint8_t conv_table[8] = {0, 2, 6, 1, 7, 3, 4, 5}; LOG_MMC(("unl_8237 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -870,7 +870,7 @@ WRITE8_MEMBER(nes_8237_device::write_h) case 0x3000: m_cd_enable = 1; data = (data & 0xc0) | conv_table[data & 0x07]; - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); break; case 0x4000: @@ -878,7 +878,7 @@ WRITE8_MEMBER(nes_8237_device::write_h) if (m_cd_enable) { m_cd_enable = 0; - txrom_write(space, 0x0001, data, mem_mask); + txrom_write(0x0001, data); } break; @@ -886,9 +886,9 @@ WRITE8_MEMBER(nes_8237_device::write_h) break; case 0x7000: - txrom_write(space, 0x6001, data, mem_mask); - txrom_write(space, 0x4000, data, mem_mask); - txrom_write(space, 0x4001, data, mem_mask); + txrom_write(0x6001, data); + txrom_write(0x4000, data); + txrom_write(0x4001, data); break; } } @@ -907,7 +907,7 @@ WRITE8_MEMBER(nes_8237_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sglionk_device::write_m) +void nes_sglionk_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("sglionk write_m, offset: %04x, data: %02x\n", offset, data)); @@ -923,7 +923,7 @@ WRITE8_MEMBER(nes_sglionk_device::write_m) } -WRITE8_MEMBER(nes_sglionk_device::write_h) +void nes_sglionk_device::write_h(offs_t offset, uint8_t data) { static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4}; LOG_MMC(("sglionk write_h, offset: %04x, data: %02x\n", offset, data)); @@ -938,13 +938,13 @@ WRITE8_MEMBER(nes_sglionk_device::write_h) case 0x2000: m_reg_enabled = 1; data = (data & 0xc0) | conv_table[data & 0x07]; - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); break; case 0x4000: if (m_reg_enabled && (m_reg & 0x80) == 0) { m_reg_enabled = 0; - txrom_write(space, 0x0001, data, mem_mask); + txrom_write(0x0001, data); } break; } @@ -954,12 +954,12 @@ WRITE8_MEMBER(nes_sglionk_device::write_h) switch (offset & 0x03) { case 0x02: - txrom_write(space, 0x6000, data, mem_mask); + txrom_write(0x6000, data); break; case 0x03: - txrom_write(space, 0x6001, data, mem_mask); - txrom_write(space, 0x4000, data, mem_mask); - txrom_write(space, 0x4001, data, mem_mask); + txrom_write(0x6001, data); + txrom_write(0x4000, data); + txrom_write(0x4001, data); break; } } @@ -1022,7 +1022,7 @@ void nes_sgboog_device::set_prg(int prg_base, int prg_mask) } } -WRITE8_MEMBER(nes_sgboog_device::write_l) +void nes_sgboog_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("sgboog write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -1046,7 +1046,7 @@ WRITE8_MEMBER(nes_sgboog_device::write_l) } } -WRITE8_MEMBER(nes_sgboog_device::write_m) +void nes_sgboog_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("sgboog write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1069,7 +1069,7 @@ WRITE8_MEMBER(nes_sgboog_device::write_m) } } -WRITE8_MEMBER(nes_sgboog_device::write_h) +void nes_sgboog_device::write_h(offs_t offset, uint8_t data) { static const uint8_t conv_table[8] = {0,2,5,3,6,1,7,4}; LOG_MMC(("sgboog write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1085,14 +1085,14 @@ WRITE8_MEMBER(nes_sgboog_device::write_h) if (m_reg[2] && ((m_reg[0] & 0x80) == 0 || (m_latch & 0x07) < 6)) // if we use the prg16 banks and cmd=6,7 DON'T enter! { m_reg[2] = 0; - txrom_write(space, 0x0001, data, mem_mask); + txrom_write(0x0001, data); } break; case 0x2000: data = (data & 0xc0) | conv_table[data & 0x07]; m_reg[2] = 1; - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); break; case 0x4000: @@ -1100,21 +1100,21 @@ WRITE8_MEMBER(nes_sgboog_device::write_h) break; case 0x4001: - txrom_write(space, 0x6001, data, mem_mask); + txrom_write(0x6001, data); break; case 0x6001: - txrom_write(space, 0x4000, data, mem_mask); - txrom_write(space, 0x4001, data, mem_mask); + txrom_write(0x4000, data); + txrom_write(0x4001, data); break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } else - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); } /*------------------------------------------------- @@ -1140,7 +1140,7 @@ void nes_kasing_device::prg_cb(int start, int bank) prg8_x(start, bank); } -WRITE8_MEMBER(nes_kasing_device::write_m) +void nes_kasing_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("kasing write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1172,7 +1172,7 @@ WRITE8_MEMBER(nes_kasing_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_kay_device::write_l) +void nes_kay_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("kay write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -1195,7 +1195,7 @@ WRITE8_MEMBER(nes_kay_device::write_l) } } -READ8_MEMBER(nes_kay_device::read_l) +uint8_t nes_kay_device::read_l(offs_t offset) { LOG_MMC(("kay read_l, offset: %04x\n", offset)); offset += 0x100; @@ -1269,14 +1269,14 @@ void nes_kay_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_kay_device::write_h) +void nes_kay_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("kay write_h, offset: %04x, data: %02x\n", offset, data)); switch (offset & 0x6003) { case 0x0000: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); set_prg(m_prg_base, m_prg_mask); break; @@ -1285,19 +1285,19 @@ WRITE8_MEMBER(nes_kay_device::write_h) | (BIT(data, 3) << 2) | (BIT(data, 4) << 1) | BIT(data, 5); if (!m_reg[7]) update_regs(); - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); set_prg(m_prg_base, m_prg_mask); break; case 0x0003: m_reg[5] = data; update_regs(); - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); set_prg(m_prg_base, m_prg_mask); break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -1314,7 +1314,7 @@ void nes_h2288_device::prg_cb(int start, int bank) prg8_x(start, bank); } -WRITE8_MEMBER(nes_h2288_device::write_l) +void nes_h2288_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("h2288 write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -1334,7 +1334,7 @@ WRITE8_MEMBER(nes_h2288_device::write_l) } } -READ8_MEMBER(nes_h2288_device::read_l) +uint8_t nes_h2288_device::read_l(offs_t offset) { LOG_MMC(("h2288 read_l, offset: %04x\n", offset)); offset += 0x100; @@ -1351,7 +1351,7 @@ READ8_MEMBER(nes_h2288_device::read_l) return 0; } -WRITE8_MEMBER(nes_h2288_device::write_h) +void nes_h2288_device::write_h(offs_t offset, uint8_t data) { static const uint8_t conv_table[8] = {0, 3, 1, 5, 6, 7, 2, 4}; LOG_MMC(("h2288 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1359,11 +1359,11 @@ WRITE8_MEMBER(nes_h2288_device::write_h) switch (offset & 0x6001) { case 0x0000: - txrom_write(space, 0x0000, (data & 0xc0) | conv_table[data & 0x07], mem_mask); + txrom_write(0x0000, (data & 0xc0) | conv_table[data & 0x07]); break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -1378,7 +1378,7 @@ WRITE8_MEMBER(nes_h2288_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_6035052_device::write_ex) +void nes_6035052_device::write_ex(offs_t offset, uint8_t data) { LOG_MMC(("6035052 write_ex, offset: %04x, data: %02x\n", offset, data)); m_prot = data & 0x03; @@ -1386,7 +1386,7 @@ WRITE8_MEMBER(nes_6035052_device::write_ex) m_prot = 2; } -READ8_MEMBER(nes_6035052_device::read_ex) +uint8_t nes_6035052_device::read_ex(offs_t offset) { LOG_MMC(("6035052 read_ex, offset: %04x\n", offset)); return m_prot; @@ -1406,7 +1406,7 @@ READ8_MEMBER(nes_6035052_device::read_ex) -------------------------------------------------*/ -WRITE8_MEMBER(nes_txc_tw_device::write_l) +void nes_txc_tw_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("txc_tw write_l, offset: %04x, data: %02x\n", offset, data)); @@ -1436,22 +1436,22 @@ inline uint8_t kof97_unscramble( uint8_t data ) return ((data >> 1) & 0x01) | ((data >> 4) & 0x02) | ((data << 2) & 0x04) | ((data >> 0) & 0xd8) | ((data << 3) & 0x20); } -WRITE8_MEMBER(nes_kof97_device::write_h) +void nes_kof97_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("kof97 write_h, offset: %04x, data: %02x\n", offset, data)); /* Addresses 0x9000, 0xa000, 0xd000 & 0xf000 behaves differently than MMC3 */ if (offset == 0x1000) - txrom_write(space, 0x0001, kof97_unscramble(data), mem_mask); + txrom_write(0x0001, kof97_unscramble(data)); else if (offset == 0x2000) - txrom_write(space, 0x0000, kof97_unscramble(data), mem_mask); + txrom_write(0x0000, kof97_unscramble(data)); else if (offset == 0x5000) - txrom_write(space, 0x4001, kof97_unscramble(data), mem_mask); + txrom_write(0x4001, kof97_unscramble(data)); else if (offset == 0x7000) - txrom_write(space, 0x6001, kof97_unscramble(data), mem_mask); + txrom_write(0x6001, kof97_unscramble(data)); /* Other addresses behaves like MMC3, up to unscrambling data */ else - txrom_write(space, offset, kof97_unscramble(data), mem_mask); + txrom_write(offset, kof97_unscramble(data)); } /*------------------------------------------------- @@ -1485,7 +1485,7 @@ void nes_kof96_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_kof96_device::write_l) +void nes_kof96_device::write_l(offs_t offset, uint8_t data) { uint8_t new_bank; LOG_MMC(("kof96 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -1532,11 +1532,11 @@ WRITE8_MEMBER(nes_kof96_device::write_l) if (!m_reg[3] && offset > 0x1000) { m_reg[3] = 1; - space.write_byte(0x4017, 0x40); + poke(0x4017, 0x40); // FIXME } } -READ8_MEMBER(nes_kof96_device::read_l) +uint8_t nes_kof96_device::read_l(offs_t offset) { LOG_MMC(("kof96 read_l, offset: %04x\n", offset)); offset += 0x100; @@ -1547,7 +1547,7 @@ READ8_MEMBER(nes_kof96_device::read_l) return 0; } -WRITE8_MEMBER(nes_kof96_device::write_h) +void nes_kof96_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("kof96 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1555,12 +1555,12 @@ WRITE8_MEMBER(nes_kof96_device::write_h) { case 0x0000: m_reg[2] = 1; - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); break; case 0x0001: if (m_reg[2]) - txrom_write(space, 0x0001, data, mem_mask); + txrom_write(0x0001, data); break; case 0x0002: @@ -1576,7 +1576,7 @@ WRITE8_MEMBER(nes_kof96_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -1600,7 +1600,7 @@ void nes_sf3_device::set_chr(uint8_t chr_source, int chr_base, int chr_mask) chr2_6(chr_base | (m_mmc_vrom_bank[2] & chr_mask), chr_source); } -WRITE8_MEMBER(nes_sf3_device::write_h) +void nes_sf3_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("sf3 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1624,7 +1624,7 @@ WRITE8_MEMBER(nes_sf3_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -1643,7 +1643,7 @@ WRITE8_MEMBER(nes_sf3_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_gouder_device::write_l) +void nes_gouder_device::write_l(offs_t offset, uint8_t data) { static const uint8_t conv_table[256] = { @@ -1675,7 +1675,7 @@ WRITE8_MEMBER(nes_gouder_device::write_l) prg32(((data >> 3) & 0x02) | (data & 0x01)); } -READ8_MEMBER(nes_gouder_device::read_l) +uint8_t nes_gouder_device::read_l(offs_t offset) { LOG_MMC(("gouder read_l, offset: %04x\n", offset)); @@ -1722,7 +1722,7 @@ void nes_sa9602b_device::prg_cb(int start, int bank) } -WRITE8_MEMBER( nes_sa9602b_device::write_h ) +void nes_sa9602b_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sa9602b write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1738,7 +1738,7 @@ WRITE8_MEMBER( nes_sa9602b_device::write_h ) break; } - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); } /*------------------------------------------------- @@ -1762,7 +1762,7 @@ void nes_sachen_shero_device::chr_cb( int start, int bank, int source ) } -WRITE8_MEMBER( nes_sachen_shero_device::write_l ) +void nes_sachen_shero_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("shero write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x4100; @@ -1777,7 +1777,7 @@ WRITE8_MEMBER( nes_sachen_shero_device::write_l ) } } -READ8_MEMBER( nes_sachen_shero_device::read_l ) +uint8_t nes_sachen_shero_device::read_l(offs_t offset) { LOG_MMC(("shero read_l, offset: %04x\n", offset)); offset += 0x4100; @@ -1786,7 +1786,7 @@ READ8_MEMBER( nes_sachen_shero_device::read_l ) { // DSW read! } - return m_open_bus; // open bus + return get_open_bus(); // open bus } @@ -1886,7 +1886,7 @@ void nes_fk23c_device::fk23c_set_chr() } } -WRITE8_MEMBER(nes_fk23c_device::write_l) +void nes_fk23c_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("fk23c write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -1903,7 +1903,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_l) } } -WRITE8_MEMBER(nes_fk23c_device::write_h) +void nes_fk23c_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("fk23c write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1929,7 +1929,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_h) fk23c_set_chr(); } else - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; case 0x2000: @@ -1937,7 +1937,7 @@ WRITE8_MEMBER(nes_fk23c_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -1971,7 +1971,7 @@ void nes_s24in1sc03_device::chr_cb(int start, int bank, int source) chr1_x(start, chr_base | bank, chr); } -WRITE8_MEMBER(nes_s24in1sc03_device::write_l) +void nes_s24in1sc03_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("s24in1sc03 write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -2009,7 +2009,7 @@ WRITE8_MEMBER(nes_s24in1sc03_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_15in1_device::write_m) +void nes_bmc_15in1_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_15in1 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2037,7 +2037,7 @@ WRITE8_MEMBER(nes_bmc_15in1_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_sbig7_device::write_h) +void nes_bmc_sbig7_device::write_h(offs_t offset, uint8_t data) { uint8_t page; LOG_MMC(("bmc_sbig7 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2058,7 +2058,7 @@ WRITE8_MEMBER(nes_bmc_sbig7_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -2076,7 +2076,7 @@ WRITE8_MEMBER(nes_bmc_sbig7_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_hik8_device::write_m) +void nes_bmc_hik8_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_hik8 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2123,7 +2123,7 @@ WRITE8_MEMBER(nes_bmc_hik8_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_hik4_device::write_m) +void nes_bmc_hik4_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_hik4 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2162,7 +2162,7 @@ WRITE8_MEMBER(nes_bmc_hik4_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_mario7in1_device::write_m) +void nes_bmc_mario7in1_device::write_m(offs_t offset, uint8_t data) { uint8_t helper1, helper2; LOG_MMC(("bmc_mario7in1 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2204,7 +2204,7 @@ WRITE8_MEMBER(nes_bmc_mario7in1_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gold7in1_device::write_m) +void nes_bmc_gold7in1_device::write_m(offs_t offset, uint8_t data) { uint8_t helper1, helper2; LOG_MMC(("bmc_gold7in1 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2265,7 +2265,7 @@ void nes_bmc_gc6in1_device::chr_cb(int start, int bank, int source) chr1_x(start, ((m_reg[1] & 0x03) << 8) | bank, source); } -WRITE8_MEMBER(nes_bmc_gc6in1_device::write_l) +void nes_bmc_gc6in1_device::write_l(offs_t offset, uint8_t data) { uint8_t bank; LOG_MMC(("bmc_gc6in1 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -2294,7 +2294,7 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_l) } } -WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h) +void nes_bmc_gc6in1_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; static const uint8_t conv_table[8] = {0, 6, 3, 7, 5, 2, 4, 1}; @@ -2303,20 +2303,20 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h) if (!m_reg[2]) { // in this case we act like MMC3, only with alt prg/chr handlers - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); } else { switch (offset & 0x6001) { case 0x0000: - txrom_write(space, 0x4000, data, mem_mask); + txrom_write(0x4000, data); break; case 0x0001: data = (data & 0xc0) | conv_table[data & 0x07]; m_reg[3] = 1; - txrom_write(space, 0x0000, data, mem_mask); + txrom_write(0x0000, data); break; case 0x2000: @@ -2346,7 +2346,7 @@ WRITE8_MEMBER(nes_bmc_gc6in1_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -2377,7 +2377,7 @@ void nes_bmc_411120c_device::chr_cb(int start, int bank, int source) chr1_x(start, bank | ((m_reg & 3) << 7), source); } -WRITE8_MEMBER(nes_bmc_411120c_device::write_m) +void nes_bmc_411120c_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_411120c write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2422,7 +2422,7 @@ void nes_bmc_830118c_device::chr_cb(int start, int bank, int source) chr1_x(start, (bank & 0x7f) | ((m_reg & 0x0c) << 5), source); } -WRITE8_MEMBER(nes_bmc_830118c_device::write_m) +void nes_bmc_830118c_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_830118c write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2478,7 +2478,7 @@ inline void nes_pjoy84_device::set_base_mask() m_chr_mask = BIT(m_reg[0], 7) ? 0x7f : 0xff; } -WRITE8_MEMBER(nes_pjoy84_device::write_m) +void nes_pjoy84_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("pjoy84 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2523,7 +2523,7 @@ void nes_coolboy_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_coolboy_device::write_m) +void nes_coolboy_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("coolboy write_m, offset: %04x, data: %02x\n", offset, data)); @@ -2593,7 +2593,7 @@ void nes_a9746_device::update_banks(uint8_t value) } } -WRITE8_MEMBER(nes_a9746_device::write_h) +void nes_a9746_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("unl_a9746 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2619,7 +2619,7 @@ WRITE8_MEMBER(nes_a9746_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } diff --git a/src/devices/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h index b6102e8fd62..680e86b4c9c 100644 --- a/src/devices/bus/nes/mmc3_clones.h +++ b/src/devices/bus/nes/mmc3_clones.h @@ -17,7 +17,7 @@ public: nes_nitra_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -30,7 +30,7 @@ public: nes_ks7057_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -43,7 +43,7 @@ public: nes_sbros11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -56,7 +56,7 @@ public: nes_malisb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; }; @@ -71,7 +71,7 @@ public: nes_family4646_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -85,9 +85,9 @@ public: // construction/destruction nes_pikay2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -110,8 +110,8 @@ public: // device-level overrides virtual void device_start() override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -131,8 +131,8 @@ public: // construction/destruction nes_sglionk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -154,9 +154,9 @@ public: // construction/destruction nes_sgboog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -181,7 +181,7 @@ public: // construction/destruction nes_kasing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; @@ -203,9 +203,9 @@ public: // construction/destruction nes_kay_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -230,9 +230,9 @@ public: // construction/destruction nes_h2288_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; @@ -254,12 +254,12 @@ public: // construction/destruction nes_6035052_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_ex) override; - virtual DECLARE_WRITE8_MEMBER(write_ex) override; - virtual DECLARE_READ8_MEMBER(read_l) override { return read_ex(space, offset, mem_mask); } - virtual DECLARE_READ8_MEMBER(read_m) override { return read_ex(space, offset, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_l) override { write_ex(space, offset, data, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_m) override { write_ex(space, offset, data, mem_mask); } + virtual uint8_t read_ex(offs_t offset) override; + virtual void write_ex(offs_t offset, uint8_t data) override; + virtual uint8_t read_l(offs_t offset) override { return read_ex(offset); } + virtual uint8_t read_m(offs_t offset) override { return read_ex(offset); } + virtual void write_l(offs_t offset, uint8_t data) override { write_ex(offset, data); } + virtual void write_m(offs_t offset, uint8_t data) override { write_ex(offset, data); } virtual void pcb_reset() override; @@ -281,8 +281,8 @@ public: nes_txc_tw_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, offset & 0xff, data, mem_mask); } // offset does not really count for this mapper } + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override { write_l(offset & 0xff, data); } // offset does not really count for this mapper } virtual void prg_cb(int start, int bank) override; }; @@ -296,7 +296,7 @@ public: nes_kof97_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -308,9 +308,9 @@ public: // construction/destruction nes_kof96_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; // offset does not really count for this mapper + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; // offset does not really count for this mapper virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -334,7 +334,7 @@ public: nes_sf3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; protected: virtual void set_chr(uint8_t chr, int chr_base, int chr_mask) override; @@ -349,8 +349,8 @@ public: // construction/destruction nes_gouder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; @@ -372,7 +372,7 @@ public: // construction/destruction nes_sa9602b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void pcb_reset() override; @@ -395,8 +395,8 @@ public: // construction/destruction nes_sachen_shero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; @@ -418,7 +418,7 @@ public: // construction/destruction nes_a9746_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset(); @@ -441,8 +441,8 @@ public: // construction/destruction nes_fk23c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -481,7 +481,7 @@ public: // construction/destruction nes_s24in1sc03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -505,7 +505,7 @@ public: nes_bmc_15in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -520,7 +520,7 @@ public: nes_bmc_sbig7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -534,7 +534,7 @@ public: // construction/destruction nes_bmc_hik8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -557,7 +557,7 @@ public: nes_bmc_hik4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; @@ -571,7 +571,7 @@ public: // construction/destruction nes_bmc_mario7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -592,7 +592,7 @@ public: // construction/destruction nes_bmc_gold7in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -613,8 +613,8 @@ public: // construction/destruction nes_bmc_gc6in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -637,7 +637,7 @@ public: // construction/destruction nes_bmc_411120c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -660,7 +660,7 @@ public: // construction/destruction nes_bmc_830118c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -683,7 +683,7 @@ public: // construction/destruction nes_pjoy84_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -707,7 +707,7 @@ public: nes_coolboy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; diff --git a/src/devices/bus/nes/mmc5.cpp b/src/devices/bus/nes/mmc5.cpp index 681b9491ef2..b512f914e8b 100644 --- a/src/devices/bus/nes/mmc5.cpp +++ b/src/devices/bus/nes/mmc5.cpp @@ -287,7 +287,7 @@ inline bool nes_exrom_device::in_split() return false; } -READ8_MEMBER(nes_exrom_device::nt_r) +uint8_t nes_exrom_device::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); @@ -339,7 +339,7 @@ READ8_MEMBER(nes_exrom_device::nt_r) } } -WRITE8_MEMBER(nes_exrom_device::nt_w) +void nes_exrom_device::nt_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); @@ -397,7 +397,7 @@ inline uint8_t nes_exrom_device::bg_ex1_chr_r(uint32_t offset) return m_vrom[helper & (m_vrom_size - 1)]; } -READ8_MEMBER(nes_exrom_device::chr_r) +uint8_t nes_exrom_device::chr_r(offs_t offset) { int bank = offset >> 10; @@ -425,7 +425,7 @@ READ8_MEMBER(nes_exrom_device::chr_r) } -READ8_MEMBER(nes_exrom_device::read_l) +uint8_t nes_exrom_device::read_l(offs_t offset) { int value; LOG_MMC(("exrom read_l, offset: %04x\n", offset)); @@ -437,7 +437,7 @@ READ8_MEMBER(nes_exrom_device::read_l) if (BIT(m_exram_control, 1)) // Modes 2,3 = read return m_exram[offset - 0x1c00]; else - return m_open_bus; // Modes 0,1 = open bus + return get_open_bus(); // Modes 0,1 = open bus } switch (offset) @@ -455,12 +455,12 @@ READ8_MEMBER(nes_exrom_device::read_l) default: logerror("MMC5 uncaught read, offset: %04x\n", offset + 0x4100); - return m_open_bus; + return get_open_bus(); } } -WRITE8_MEMBER(nes_exrom_device::write_l) +void nes_exrom_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("exrom write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -618,7 +618,7 @@ WRITE8_MEMBER(nes_exrom_device::write_l) // bit3 select the chip (2 of them can be accessed, each up to 32KB) // bit1 & bit2 select the 8KB banks inside the chip // same mechanism is used also when "WRAM" is mapped in higher banks -READ8_MEMBER(nes_exrom_device::read_m) +uint8_t nes_exrom_device::read_m(offs_t offset) { LOG_MMC(("exrom read_m, offset: %04x\n", offset)); if (!m_battery.empty() && !m_prgram.empty()) // 2 chips present: first is BWRAM, second is WRAM @@ -633,10 +633,10 @@ READ8_MEMBER(nes_exrom_device::read_m) else if (!m_battery.empty()) // 1 chip, BWRAM return m_battery[(offset + (m_wram_base & 0x03) * 0x2000) & (m_battery.size() - 1)]; else - return m_open_bus; + return get_open_bus(); } -WRITE8_MEMBER(nes_exrom_device::write_m) +void nes_exrom_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("exrom write_m, offset: %04x, data: %02x\n", offset, data)); if (m_wram_protect_1 != 0x02 || m_wram_protect_2 != 0x01) @@ -649,7 +649,7 @@ WRITE8_MEMBER(nes_exrom_device::write_m) } // some games (e.g. Bandit Kings of Ancient China) write to PRG-RAM through 0x8000-0xdfff -READ8_MEMBER(nes_exrom_device::read_h) +uint8_t nes_exrom_device::read_h(offs_t offset) { LOG_MMC(("exrom read_h, offset: %04x\n", offset)); int bank = offset / 0x2000; @@ -665,7 +665,7 @@ READ8_MEMBER(nes_exrom_device::read_h) return hi_access_rom(offset); } -WRITE8_MEMBER(nes_exrom_device::write_h) +void nes_exrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("exrom write_h, offset: %04x, data: %02x\n", offset, data)); int bank = offset / 0x2000; diff --git a/src/devices/bus/nes/mmc5.h b/src/devices/bus/nes/mmc5.h index c0c07cb07a9..093a64471d0 100644 --- a/src/devices/bus/nes/mmc5.h +++ b/src/devices/bus/nes/mmc5.h @@ -20,16 +20,16 @@ public: nes_exrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~nes_exrom_device(); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_READ8_MEMBER(nt_r) override; - virtual DECLARE_WRITE8_MEMBER(nt_w) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual uint8_t nt_r(offs_t offset) override; + virtual void nt_w(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/multigame.cpp b/src/devices/bus/nes/multigame.cpp index 6971e68ac61..c117520afe5 100644 --- a/src/devices/bus/nes/multigame.cpp +++ b/src/devices/bus/nes/multigame.cpp @@ -1016,7 +1016,7 @@ void nes_bmc_42in1reset_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_action52_device::write_h) +void nes_action52_device::write_h(offs_t offset, uint8_t data) { uint8_t pmode = offset & 0x20; int pbank = (offset & 0x1fc0) >> 6; @@ -1048,7 +1048,7 @@ WRITE8_MEMBER(nes_action52_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_caltron_device::write_m) +void nes_caltron_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("caltron write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1057,7 +1057,7 @@ WRITE8_MEMBER(nes_caltron_device::write_m) prg32(offset & 0x07); } -WRITE8_MEMBER(nes_caltron_device::write_h) +void nes_caltron_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("caltron write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1077,7 +1077,7 @@ WRITE8_MEMBER(nes_caltron_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_rumblestat_device::write_m) +void nes_rumblestat_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("rumblestation write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1087,7 +1087,7 @@ WRITE8_MEMBER(nes_rumblestat_device::write_m) chr8(m_chr, CHRROM); } -WRITE8_MEMBER(nes_rumblestat_device::write_h) +void nes_rumblestat_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("rumblestation write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1129,14 +1129,14 @@ void nes_svision16_device::update_prg() } -READ8_MEMBER(nes_svision16_device::read_m) +uint8_t nes_svision16_device::read_m(offs_t offset) { int bank = (((m_latch1 & 0x0f) << 4) | 0x0f) + 4 ; // +4 due to the eeprom LOG_MMC(("svision16 read_m, offset: %04x\n", offset)); return m_prg[((bank * 0x2000) + (offset & 0x1fff)) & m_prg_mask]; } -WRITE8_MEMBER(nes_svision16_device::write_m) +void nes_svision16_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("svision16 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1145,7 +1145,7 @@ WRITE8_MEMBER(nes_svision16_device::write_m) set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); } -WRITE8_MEMBER(nes_svision16_device::write_h) +void nes_svision16_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("svision16 write_h, offset: %04x, data: %02x\n", offset, data)); m_latch2 = data; @@ -1175,7 +1175,7 @@ void nes_n625092_device::set_prg(uint8_t reg1, uint8_t reg2) prg16_cdef(helper2 | ((reg1 & 0x70) >> 1)); } -WRITE8_MEMBER(nes_n625092_device::write_h) +void nes_n625092_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("n625092 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1213,7 +1213,7 @@ WRITE8_MEMBER(nes_n625092_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_a65as_device::write_h) +void nes_a65as_device::write_h(offs_t offset, uint8_t data) { uint8_t helper = (data & 0x30) >> 1; LOG_MMC(("a65as write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1242,7 +1242,7 @@ WRITE8_MEMBER(nes_a65as_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_t262_device::write_h) +void nes_t262_device::write_h(offs_t offset, uint8_t data) { uint8_t mmc_helper; LOG_MMC(("t262 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1281,7 +1281,7 @@ WRITE8_MEMBER(nes_t262_device::write_h) -------------------------------------------------*/ // Are this correct or should they work the same? -WRITE8_MEMBER(nes_novel1_device::write_h) +void nes_novel1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("novel1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1289,7 +1289,7 @@ WRITE8_MEMBER(nes_novel1_device::write_h) chr8(offset & 0x07, CHRROM); } -WRITE8_MEMBER(nes_novel2_device::write_h) +void nes_novel2_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("novel2 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1311,7 +1311,7 @@ WRITE8_MEMBER(nes_novel2_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_studyngame_device::write_h) +void nes_studyngame_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("studyngame write_h, offset: %04x, data: %02x\n", offset, data)); prg32(data); @@ -1330,7 +1330,7 @@ WRITE8_MEMBER(nes_studyngame_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sgun20in1_device::write_h) +void nes_sgun20in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("supergun20in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1345,7 +1345,7 @@ WRITE8_MEMBER(nes_sgun20in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_vt5201_device::write_h) +void nes_vt5201_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("vt5201 wirte_h, offset: %04x, data: %02x\n", offset, data)); @@ -1364,7 +1364,7 @@ WRITE8_MEMBER(nes_vt5201_device::write_h) chr8(offset, CHRROM); } -READ8_MEMBER(nes_vt5201_device::read_h) +uint8_t nes_vt5201_device::read_h(offs_t offset) { LOG_MMC(("bmc_vt5201 read_h, offset: %04x\n", offset)); // m_dipsetting = ioport("CARTDIPS")->read(); @@ -1383,7 +1383,7 @@ READ8_MEMBER(nes_vt5201_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_810544c_device::write_h) +void nes_810544c_device::write_h(offs_t offset, uint8_t data) { uint8_t bank = (offset >> 7); LOG_MMC(("810544 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1407,7 +1407,7 @@ WRITE8_MEMBER(nes_810544c_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ntd03_device::write_h) +void nes_ntd03_device::write_h(offs_t offset, uint8_t data) { uint8_t pbank = (offset >> 10) & 0x1e; uint8_t cbank = ((offset & 0x300) >> 5) | (offset & 0x07); @@ -1434,7 +1434,7 @@ WRITE8_MEMBER(nes_ntd03_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gb63_device::chr_w) +void nes_bmc_gb63_device::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; @@ -1459,7 +1459,7 @@ void nes_bmc_gb63_device::update_banks() // m_vram_disable = BIT(m_reg[1], 1) ? 0 : 1; } -WRITE8_MEMBER(nes_bmc_gb63_device::write_h) +void nes_bmc_gb63_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_gb63 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1468,13 +1468,13 @@ WRITE8_MEMBER(nes_bmc_gb63_device::write_h) update_banks(); } -READ8_MEMBER(nes_bmc_gb63_device::read_h) +uint8_t nes_bmc_gb63_device::read_h(offs_t offset) { LOG_MMC(("bmc_gb63 read_h, offset: %04x\n", offset)); // m_dipsetting = ioport("CARTDIPS")->read(); if (m_latch == 1) - return m_open_bus; // open bus + return get_open_bus(); // open bus else return hi_access_rom(offset); } @@ -1493,7 +1493,7 @@ READ8_MEMBER(nes_bmc_gb63_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gka_device::write_h) +void nes_bmc_gka_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_gka write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1529,7 +1529,7 @@ WRITE8_MEMBER(nes_bmc_gka_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gkb_device::write_h) +void nes_bmc_gkb_device::write_h(offs_t offset, uint8_t data) { uint8_t bank = (offset & 0x40) ? 0 : 1; LOG_MMC(("bmc_gkb write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1551,7 +1551,7 @@ WRITE8_MEMBER(nes_bmc_gkb_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_ws_device::write_m) +void nes_bmc_ws_device::write_m(offs_t offset, uint8_t data) { uint8_t mmc_helper; LOG_MMC(("bmc_ws write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1588,7 +1588,7 @@ WRITE8_MEMBER(nes_bmc_ws_device::write_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_11160_device::write_h) +void nes_bmc_11160_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_11160 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1607,7 +1607,7 @@ WRITE8_MEMBER(nes_bmc_11160_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_g146_device::write_h) +void nes_bmc_g146_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_g146 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1640,7 +1640,7 @@ WRITE8_MEMBER(nes_bmc_g146_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_8157_device::write_h) +void nes_bmc_8157_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_8157 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1653,7 +1653,7 @@ WRITE8_MEMBER(nes_bmc_8157_device::write_h) set_nt_mirroring(!BIT(offset, 1) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); } -READ8_MEMBER(nes_bmc_8157_device::read_h) +uint8_t nes_bmc_8157_device::read_h(offs_t offset) { LOG_MMC(("bmc_8157 read_h, offset: %04x\n", offset)); // m_dipsetting = ioport("CARTDIPS")->read(); @@ -1678,7 +1678,7 @@ READ8_MEMBER(nes_bmc_8157_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_hik300_device::write_h) +void nes_bmc_hik300_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_hik300 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1707,7 +1707,7 @@ WRITE8_MEMBER(nes_bmc_hik300_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_s700_device::write_h) +void nes_bmc_s700_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_s700 write_h, offset :%04x, data: %02x\n", offset, data)); @@ -1754,7 +1754,7 @@ void nes_bmc_ball11_device::set_banks() } } -WRITE8_MEMBER(nes_bmc_ball11_device::write_m) +void nes_bmc_ball11_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("bmc_ball11 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -1762,7 +1762,7 @@ WRITE8_MEMBER(nes_bmc_ball11_device::write_m) set_banks(); } -WRITE8_MEMBER(nes_bmc_ball11_device::write_h) +void nes_bmc_ball11_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_ball11 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1793,7 +1793,7 @@ WRITE8_MEMBER(nes_bmc_ball11_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_22games_device::write_h) +void nes_bmc_22games_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_22games write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1846,7 +1846,7 @@ void nes_bmc_64y2k_device::set_prg() prg16_cdef(helper2); } -WRITE8_MEMBER(nes_bmc_64y2k_device::write_l) +void nes_bmc_64y2k_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("bmc64y2k write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -1866,7 +1866,7 @@ WRITE8_MEMBER(nes_bmc_64y2k_device::write_l) set_nt_mirroring(BIT(data, 5) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); } -WRITE8_MEMBER(nes_bmc_64y2k_device::write_h) +void nes_bmc_64y2k_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc64y2k write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1904,7 +1904,7 @@ void nes_bmc_12in1_device::update_banks() set_nt_mirroring(BIT(m_reg[2], 2) ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); } -WRITE8_MEMBER(nes_bmc_12in1_device::write_h) +void nes_bmc_12in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_12in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1930,7 +1930,7 @@ WRITE8_MEMBER(nes_bmc_12in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_20in1_device::write_h) +void nes_bmc_20in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_20in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1953,7 +1953,7 @@ WRITE8_MEMBER(nes_bmc_20in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_21in1_device::write_h) +void nes_bmc_21in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_21in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1974,7 +1974,7 @@ WRITE8_MEMBER(nes_bmc_21in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_31in1_device::write_h) +void nes_bmc_31in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_31in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2006,7 +2006,7 @@ WRITE8_MEMBER(nes_bmc_31in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_35in1_device::write_h) +void nes_bmc_35in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_35in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2028,7 +2028,7 @@ WRITE8_MEMBER(nes_bmc_35in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_36in1_device::write_h) +void nes_bmc_36in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_36in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2052,7 +2052,7 @@ WRITE8_MEMBER(nes_bmc_36in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_64in1_device::write_h) +void nes_bmc_64in1_device::write_h(offs_t offset, uint8_t data) { int bank = (offset >> 1) & (offset >> 2) & 0x01; @@ -2082,7 +2082,7 @@ WRITE8_MEMBER(nes_bmc_64in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_70in1_device::write_h) +void nes_bmc_70in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc70in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2105,7 +2105,7 @@ WRITE8_MEMBER(nes_bmc_70in1_device::write_h) } } -READ8_MEMBER(nes_bmc_70in1_device::read_h) +uint8_t nes_bmc_70in1_device::read_h(offs_t offset) { LOG_MMC(("bmc70in1 read_h, offset: %04x\n", offset)); @@ -2128,7 +2128,7 @@ READ8_MEMBER(nes_bmc_70in1_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_72in1_device::write_h) +void nes_bmc_72in1_device::write_h(offs_t offset, uint8_t data) { int hi_bank = offset & 0x40; int size_16 = offset & 0x1000; @@ -2165,7 +2165,7 @@ WRITE8_MEMBER(nes_bmc_72in1_device::write_h) -------------------------------------------------*/ // does this work for super42in1 as well?!? -WRITE8_MEMBER(nes_bmc_76in1_device::write_h) +void nes_bmc_76in1_device::write_h(offs_t offset, uint8_t data) { int hi_bank; int size_16; @@ -2210,7 +2210,7 @@ WRITE8_MEMBER(nes_bmc_76in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_110in1_device::write_h) +void nes_bmc_110in1_device::write_h(offs_t offset, uint8_t data) { uint8_t helper1 = (offset >> 12) ? 0 : 1; uint8_t helper2 = ((offset >> 8) & 0x40) | ((offset >> 6) & 0x3f); @@ -2237,7 +2237,7 @@ WRITE8_MEMBER(nes_bmc_110in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_150in1_device::write_h) +void nes_bmc_150in1_device::write_h(offs_t offset, uint8_t data) { int bank = (offset >> 1) & 0x07; @@ -2261,7 +2261,7 @@ WRITE8_MEMBER(nes_bmc_150in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_190in1_device::write_h) +void nes_bmc_190in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc190in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2287,7 +2287,7 @@ WRITE8_MEMBER(nes_bmc_190in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_800in1_device::write_h) +void nes_bmc_800in1_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc800in1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2312,7 +2312,7 @@ WRITE8_MEMBER(nes_bmc_800in1_device::write_h) prg16_cdef(m_reg[1]); } -READ8_MEMBER(nes_bmc_800in1_device::read_h) +uint8_t nes_bmc_800in1_device::read_h(offs_t offset) { LOG_MMC(("bmc800in1 read_h, offset: %04x\n", offset)); @@ -2335,7 +2335,7 @@ READ8_MEMBER(nes_bmc_800in1_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_1200in1_device::chr_w) +void nes_bmc_1200in1_device::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; @@ -2344,7 +2344,7 @@ WRITE8_MEMBER(nes_bmc_1200in1_device::chr_w) } -WRITE8_MEMBER(nes_bmc_1200in1_device::write_h) +void nes_bmc_1200in1_device::write_h(offs_t offset, uint8_t data) { int bank = ((offset >> 2) & 0x1f) | ((offset & 0x0100) >> 3); @@ -2390,7 +2390,7 @@ WRITE8_MEMBER(nes_bmc_1200in1_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gold260_device::write_h) +void nes_bmc_gold260_device::write_h(offs_t offset, uint8_t data) { int bank = (offset & 0x1f) | ((offset & 0x0300) >> 3); LOG_MMC(("bmc_gold260 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2428,7 +2428,7 @@ WRITE8_MEMBER(nes_bmc_gold260_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_gold150_device::write_h) +void nes_bmc_gold150_device::write_h(offs_t offset, uint8_t data) { int bank = (offset & 0x1f) | ((offset & 0x0200) >> 4); LOG_MMC(("bmc_gold150 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2450,12 +2450,12 @@ WRITE8_MEMBER(nes_bmc_gold150_device::write_h) prg32(bank); } -READ8_MEMBER(nes_bmc_gold150_device::read_h) +uint8_t nes_bmc_gold150_device::read_h(offs_t offset) { LOG_MMC(("bmc_gold150 read_h, offset: %04x\n", offset)); if (m_latch) // open bus - return m_open_bus; + return get_open_bus(); else return hi_access_rom(offset); } @@ -2475,7 +2475,7 @@ READ8_MEMBER(nes_bmc_gold150_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_ch001_device::write_h) +void nes_bmc_ch001_device::write_h(offs_t offset, uint8_t data) { int bank = ((offset >> 1) & 0x1fc); LOG_MMC(("bmc_ch001 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2503,12 +2503,12 @@ WRITE8_MEMBER(nes_bmc_ch001_device::write_h) prg8_ef((offset & 0x07c ) | ((offset & 0x6) ? 0x3 : 0x1)); } -READ8_MEMBER(nes_bmc_ch001_device::read_h) +uint8_t nes_bmc_ch001_device::read_h(offs_t offset) { LOG_MMC(("bmc_ch001 read_h, offset: %04x\n", offset)); if (m_latch && offset < 0x4000) // open bus - return m_open_bus; + return get_open_bus(); else return hi_access_rom(offset); } @@ -2528,7 +2528,7 @@ READ8_MEMBER(nes_bmc_ch001_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_super22_device::write_h) +void nes_bmc_super22_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("bmc_super22 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -2581,7 +2581,7 @@ WRITE8_MEMBER(nes_bmc_super22_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bmc_42in1reset_device::write_h) +void nes_bmc_42in1reset_device::write_h(offs_t offset, uint8_t data) { int bank; LOG_MMC(("bmc_42in1reset write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h index e88ec21be58..51db3e9f821 100644 --- a/src/devices/bus/nes/multigame.h +++ b/src/devices/bus/nes/multigame.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_action52_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,8 +34,8 @@ public: // construction/destruction nes_caltron_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -56,8 +56,8 @@ public: // construction/destruction nes_rumblestat_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -78,9 +78,9 @@ public: // construction/destruction nes_svision16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -102,7 +102,7 @@ public: // construction/destruction nes_n625092_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -124,7 +124,7 @@ public: // construction/destruction nes_a65as_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -142,7 +142,7 @@ public: // construction/destruction nes_t262_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -163,7 +163,7 @@ public: // construction/destruction nes_novel1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -181,7 +181,7 @@ public: // construction/destruction nes_novel2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -199,7 +199,7 @@ public: // construction/destruction nes_studyngame_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -217,7 +217,7 @@ public: // construction/destruction nes_sgun20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -235,8 +235,8 @@ public: // construction/destruction nes_vt5201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -257,7 +257,7 @@ public: // construction/destruction nes_810544c_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -275,7 +275,7 @@ public: // construction/destruction nes_ntd03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -293,9 +293,9 @@ public: // construction/destruction nes_bmc_gb63_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; + virtual void chr_w(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -318,7 +318,7 @@ public: // construction/destruction nes_bmc_gka_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -339,7 +339,7 @@ public: // construction/destruction nes_bmc_gkb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -357,7 +357,7 @@ public: // construction/destruction nes_bmc_ws_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -378,7 +378,7 @@ public: // construction/destruction nes_bmc_11160_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -396,7 +396,7 @@ public: // construction/destruction nes_bmc_g146_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -414,8 +414,8 @@ public: // construction/destruction nes_bmc_8157_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -433,7 +433,7 @@ public: // construction/destruction nes_bmc_hik300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -451,7 +451,7 @@ public: // construction/destruction nes_bmc_s700_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -469,8 +469,8 @@ public: // construction/destruction nes_bmc_ball11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -492,7 +492,7 @@ public: // construction/destruction nes_bmc_22games_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -510,8 +510,8 @@ public: // construction/destruction nes_bmc_64y2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -533,7 +533,7 @@ public: // construction/destruction nes_bmc_12in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -555,7 +555,7 @@ public: // construction/destruction nes_bmc_20in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -573,7 +573,7 @@ public: // construction/destruction nes_bmc_21in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -591,7 +591,7 @@ public: // construction/destruction nes_bmc_31in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -609,7 +609,7 @@ public: // construction/destruction nes_bmc_35in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -627,7 +627,7 @@ public: // construction/destruction nes_bmc_36in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -645,7 +645,7 @@ public: // construction/destruction nes_bmc_64in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -663,8 +663,8 @@ public: // construction/destruction nes_bmc_70in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -686,7 +686,7 @@ public: // construction/destruction nes_bmc_72in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -704,7 +704,7 @@ public: // construction/destruction nes_bmc_76in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -725,7 +725,7 @@ public: // construction/destruction nes_bmc_110in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -743,7 +743,7 @@ public: // construction/destruction nes_bmc_150in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -761,7 +761,7 @@ public: // construction/destruction nes_bmc_190in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -779,8 +779,8 @@ public: // construction/destruction nes_bmc_800in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -802,8 +802,8 @@ public: // construction/destruction nes_bmc_1200in1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; + virtual void write_h(offs_t offset, uint8_t data) override; + virtual void chr_w(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -824,8 +824,8 @@ public: // construction/destruction nes_bmc_gold150_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -846,7 +846,7 @@ public: // construction/destruction nes_bmc_gold260_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -864,8 +864,8 @@ public: // construction/destruction nes_bmc_ch001_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -886,7 +886,7 @@ public: // construction/destruction nes_bmc_super22_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -922,7 +922,7 @@ public: // construction/destruction nes_bmc_42in1reset_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/namcot.cpp b/src/devices/bus/nes/namcot.cpp index 84b41996272..e2898d6b9ba 100644 --- a/src/devices/bus/nes/namcot.cpp +++ b/src/devices/bus/nes/namcot.cpp @@ -246,7 +246,7 @@ void nes_namcot163_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_namcot3433_device::dxrom_write) +void nes_namcot3433_device::dxrom_write(offs_t offset, uint8_t data) { LOG_MMC(("dxrom_write, offset: %04x, data: %02x\n", offset, data)); @@ -290,7 +290,7 @@ WRITE8_MEMBER(nes_namcot3433_device::dxrom_write) -------------------------------------------------*/ -WRITE8_MEMBER(nes_namcot3446_device::write_h) +void nes_namcot3446_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("namcot3446 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -334,7 +334,7 @@ WRITE8_MEMBER(nes_namcot3446_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_namcot3425_device::write_h) +void nes_namcot3425_device::write_h(offs_t offset, uint8_t data) { uint8_t mode; LOG_MMC(("namcot3425 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -407,7 +407,7 @@ void nes_namcot340_device::device_timer(emu_timer &timer, device_timer_id id, in } } -WRITE8_MEMBER(nes_namcot340_device::n340_lowrite) +void nes_namcot340_device::n340_lowrite(offs_t offset, uint8_t data) { LOG_MMC(("n340_lowrite, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -426,7 +426,7 @@ WRITE8_MEMBER(nes_namcot340_device::n340_lowrite) } } -READ8_MEMBER(nes_namcot340_device::n340_loread) +uint8_t nes_namcot340_device::n340_loread(offs_t offset) { LOG_MMC(("n340_loread, offset: %04x\n", offset)); offset += 0x100; @@ -444,7 +444,7 @@ READ8_MEMBER(nes_namcot340_device::n340_loread) } } -WRITE8_MEMBER(nes_namcot340_device::n340_hiwrite) +void nes_namcot340_device::n340_hiwrite(offs_t offset, uint8_t data) { LOG_MMC(("n340_hiwrite, offset: %04x, data: %02x\n", offset, data)); @@ -505,17 +505,17 @@ WRITE8_MEMBER(nes_namcot340_device::n340_hiwrite) -------------------------------------------------*/ -READ8_MEMBER(nes_namcot175_device::read_m) +uint8_t nes_namcot175_device::read_m(offs_t offset) { // the only game supporting this is Family Circuit '91, and it has 2KB of battery // but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not) if (!m_battery.empty() && !m_wram_protect) return m_battery[offset & (m_battery.size() - 1)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } -WRITE8_MEMBER(nes_namcot175_device::write_m) +void nes_namcot175_device::write_m(offs_t offset, uint8_t data) { // the only game supporting this is Family Circuit '91, and it has 2KB of battery // but it's mirrored up to 8KB (see Sprint Race -> Back Up menu breakage if not) @@ -523,7 +523,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_m) m_battery[offset & (m_battery.size() - 1)] = data; } -WRITE8_MEMBER(nes_namcot175_device::write_h) +void nes_namcot175_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("namcot175 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -536,7 +536,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_h) prg8_89(data & 0x3f); break; default: - n340_hiwrite(space, offset, data, mem_mask); + n340_hiwrite(offset, data); break; } } @@ -560,7 +560,7 @@ WRITE8_MEMBER(nes_namcot175_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_namcot163_device::chr_w) +void nes_namcot163_device::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; @@ -576,7 +576,7 @@ WRITE8_MEMBER(nes_namcot163_device::chr_w) // or ROM, so no write } -READ8_MEMBER(nes_namcot163_device::chr_r) +uint8_t nes_namcot163_device::chr_r(offs_t offset) { int bank = offset >> 10; if (!(m_latch & 0x40) && m_chr_bank >= 0xe0) @@ -590,15 +590,15 @@ READ8_MEMBER(nes_namcot163_device::chr_r) } -READ8_MEMBER(nes_namcot163_device::read_m) +uint8_t nes_namcot163_device::read_m(offs_t offset) { if (!m_battery.empty() && offset < m_battery.size()) return m_battery[offset & (m_battery.size() - 1)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } -WRITE8_MEMBER(nes_namcot163_device::write_m) +void nes_namcot163_device::write_m(offs_t offset, uint8_t data) { // the pcb can separately protect each 2KB chunk of the external wram from writes int bank = (offset & 0x1800) >> 11; @@ -606,7 +606,7 @@ WRITE8_MEMBER(nes_namcot163_device::write_m) m_battery[offset & (m_battery.size() - 1)] = data; } -WRITE8_MEMBER(nes_namcot163_device::write_l) +void nes_namcot163_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("namcot163 write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -617,12 +617,12 @@ WRITE8_MEMBER(nes_namcot163_device::write_l) LOG_MMC(("Namcot-163 sound reg write, data: %02x\n", data)); break; default: - n340_lowrite(space, offset, data, mem_mask); + n340_lowrite(offset, data); break; } } -READ8_MEMBER(nes_namcot163_device::read_l) +uint8_t nes_namcot163_device::read_l(offs_t offset) { LOG_MMC(("namcot163 read_l, offset: %04x\n", offset)); offset += 0x100; @@ -633,7 +633,7 @@ READ8_MEMBER(nes_namcot163_device::read_l) LOG_MMC(("Namcot-163 sound reg read\n")); return 0; default: - return n340_loread(space, offset, mem_mask); + return n340_loread(offset); } } @@ -645,7 +645,7 @@ void nes_namcot163_device::set_mirror(uint8_t page, uint8_t data) set_nt_page(page, CIRAM, data & 0x01, 1); } -WRITE8_MEMBER(nes_namcot163_device::write_h) +void nes_namcot163_device::write_h(offs_t offset, uint8_t data) { int page; LOG_MMC(("namcot163 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -680,7 +680,7 @@ WRITE8_MEMBER(nes_namcot163_device::write_h) LOG_MMC(("Namcot-163 sound address write, data: %02x\n", data)); break; default: - n340_hiwrite(space, offset, data, mem_mask); + n340_hiwrite(offset, data); break; } } diff --git a/src/devices/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h index a4ab64084e1..bcf72f5bad4 100644 --- a/src/devices/bus/nes/namcot.h +++ b/src/devices/bus/nes/namcot.h @@ -16,8 +16,8 @@ public: // construction/destruction nes_namcot3433_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(dxrom_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { dxrom_write(space, offset, data, mem_mask); } + void dxrom_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { dxrom_write(offset, data); } virtual void pcb_reset() override; @@ -40,7 +40,7 @@ public: // construction/destruction nes_namcot3446_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -61,7 +61,7 @@ public: // construction/destruction nes_namcot3425_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -83,12 +83,12 @@ public: // construction/destruction nes_namcot340_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(n340_loread); - virtual DECLARE_WRITE8_MEMBER(n340_lowrite); - virtual DECLARE_WRITE8_MEMBER(n340_hiwrite); - virtual DECLARE_READ8_MEMBER(read_l) override { return n340_loread(space, offset, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_l) override { n340_lowrite(space, offset, data, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_h) override { n340_hiwrite(space, offset, data, mem_mask); } + uint8_t n340_loread(offs_t offset); + void n340_lowrite(offs_t offset, uint8_t data); + void n340_hiwrite(offs_t offset, uint8_t data); + virtual uint8_t read_l(offs_t offset) override { return n340_loread(offset); } + virtual void write_l(offs_t offset, uint8_t data) override { n340_lowrite(offset, data); } + virtual void write_h(offs_t offset, uint8_t data) override { n340_hiwrite(offset, data); } virtual void pcb_reset() override; @@ -122,9 +122,9 @@ public: // device-level overrides virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -141,15 +141,15 @@ public: // construction/destruction nes_namcot163_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; // we have to overwrite these to allow CIRAM to be used for VRAM, even if it's not clear which game(s) use this - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual void chr_w(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/nanjing.cpp b/src/devices/bus/nes/nanjing.cpp index 26a7e20f97c..9719816beb2 100644 --- a/src/devices/bus/nes/nanjing.cpp +++ b/src/devices/bus/nes/nanjing.cpp @@ -111,7 +111,7 @@ void nes_nanjing_device::hblank_irq(int scanline, int vblank, int blanked) } -WRITE8_MEMBER(nes_nanjing_device::write_l) +void nes_nanjing_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("nanjing write_l, offset: %04x, data: %02x\n", offset, data)); @@ -154,7 +154,7 @@ WRITE8_MEMBER(nes_nanjing_device::write_l) prg32((m_reg[0] & 0x0f) | ((m_reg[1] & 0x0f) << 4)); } -READ8_MEMBER(nes_nanjing_device::read_l) +uint8_t nes_nanjing_device::read_l(offs_t offset) { uint8_t value = 0; LOG_MMC(("nanjing read_l, offset: %04x\n", offset)); diff --git a/src/devices/bus/nes/nanjing.h b/src/devices/bus/nes/nanjing.h index a231872a124..c5a71032573 100644 --- a/src/devices/bus/nes/nanjing.h +++ b/src/devices/bus/nes/nanjing.h @@ -19,8 +19,8 @@ public: nes_nanjing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); ~nes_nanjing_device(); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/nes_slot.cpp b/src/devices/bus/nes/nes_slot.cpp index c3d036b8493..ab8235ccc55 100644 --- a/src/devices/bus/nes/nes_slot.cpp +++ b/src/devices/bus/nes/nes_slot.cpp @@ -592,6 +592,12 @@ void device_nes_cart_interface::reset_cpu() m_maincpu->set_pc(0xfffc); } +void device_nes_cart_interface::poke(offs_t offset, uint8_t data) +{ + // even worse hack + m_maincpu->space(AS_PROGRAM).write_byte(offset, data); +} + //------------------------------------------------- // Other helpers //------------------------------------------------- @@ -624,7 +630,7 @@ uint8_t device_nes_cart_interface::account_bus_conflict(uint32_t offset, uint8_t // PPU accessors //------------------------------------------------- -WRITE8_MEMBER(device_nes_cart_interface::chr_w) +void device_nes_cart_interface::chr_w(offs_t offset, uint8_t data) { int bank = offset >> 10; @@ -632,14 +638,14 @@ WRITE8_MEMBER(device_nes_cart_interface::chr_w) m_chr_access[bank][offset & 0x3ff] = data; } -READ8_MEMBER(device_nes_cart_interface::chr_r) +uint8_t device_nes_cart_interface::chr_r(offs_t offset) { int bank = offset >> 10; return m_chr_access[bank][offset & 0x3ff]; } -WRITE8_MEMBER(device_nes_cart_interface::nt_w) +void device_nes_cart_interface::nt_w(offs_t offset, uint8_t data) { int page = ((offset & 0xc00) >> 10); @@ -649,7 +655,7 @@ WRITE8_MEMBER(device_nes_cart_interface::nt_w) m_nt_access[page][offset & 0x3ff] = data; } -READ8_MEMBER(device_nes_cart_interface::nt_r) +uint8_t device_nes_cart_interface::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); return m_nt_access[page][offset & 0x3ff]; @@ -665,26 +671,26 @@ READ8_MEMBER(device_nes_cart_interface::nt_r) // source) //------------------------------------------------- -READ8_MEMBER(device_nes_cart_interface::read_l) +uint8_t device_nes_cart_interface::read_l(offs_t offset) { - return m_open_bus; + return get_open_bus(); } -READ8_MEMBER(device_nes_cart_interface::read_m) +uint8_t device_nes_cart_interface::read_m(offs_t offset) { if (!m_battery.empty()) return m_battery[offset & (m_battery.size() - 1)]; if (!m_prgram.empty()) return m_prgram[offset & (m_prgram.size() - 1)]; - return m_open_bus; + return get_open_bus(); } -WRITE8_MEMBER(device_nes_cart_interface::write_l) +void device_nes_cart_interface::write_l(offs_t offset, uint8_t data) { } -WRITE8_MEMBER(device_nes_cart_interface::write_m) +void device_nes_cart_interface::write_m(offs_t offset, uint8_t data) { if (!m_battery.empty()) m_battery[offset & (m_battery.size() - 1)] = data; @@ -692,7 +698,7 @@ WRITE8_MEMBER(device_nes_cart_interface::write_m) m_prgram[offset & (m_prgram.size() - 1)] = data; } -WRITE8_MEMBER(device_nes_cart_interface::write_h) +void device_nes_cart_interface::write_h(offs_t offset, uint8_t data) { } @@ -740,6 +746,9 @@ void device_nes_cart_interface::pcb_start(running_machine &machine, uint8_t *cir device().save_item(NAME(m_vram)); if (!m_battery.empty()) device().save_item(NAME(m_battery)); + + // open bus + device().save_item(NAME(m_open_bus)); } void device_nes_cart_interface::pcb_reg_postload(running_machine &machine) @@ -943,11 +952,11 @@ std::string nes_cart_slot_device::get_default_card_software(get_default_card_sof read -------------------------------------------------*/ -READ8_MEMBER(nes_cart_slot_device::read_l) +uint8_t nes_cart_slot_device::read_l(offs_t offset) { if (m_cart) { - uint8_t val = m_cart->read_l(space, offset); + uint8_t val = m_cart->read_l(offset); // update open bus m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8); return val; @@ -956,11 +965,11 @@ READ8_MEMBER(nes_cart_slot_device::read_l) return 0xff; } -READ8_MEMBER(nes_cart_slot_device::read_m) +uint8_t nes_cart_slot_device::read_m(offs_t offset) { if (m_cart) { - uint8_t val = m_cart->read_m(space, offset); + uint8_t val = m_cart->read_m(offset); // update open bus m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8); return val; @@ -969,11 +978,11 @@ READ8_MEMBER(nes_cart_slot_device::read_m) return 0xff; } -READ8_MEMBER(nes_cart_slot_device::read_h) +uint8_t nes_cart_slot_device::read_h(offs_t offset) { if (m_cart) { - uint8_t val = m_cart->read_h(space, offset); + uint8_t val = m_cart->read_h(offset); // update open bus m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8); return val; @@ -982,11 +991,11 @@ READ8_MEMBER(nes_cart_slot_device::read_h) return 0xff; } -READ8_MEMBER(nes_cart_slot_device::read_ex) +uint8_t nes_cart_slot_device::read_ex(offs_t offset) { if (m_cart) { - uint8_t val = m_cart->read_ex(space, offset); + uint8_t val = m_cart->read_ex(offset); // update open bus m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8); return val; @@ -1000,41 +1009,41 @@ READ8_MEMBER(nes_cart_slot_device::read_ex) write -------------------------------------------------*/ -WRITE8_MEMBER(nes_cart_slot_device::write_l) +void nes_cart_slot_device::write_l(offs_t offset, uint8_t data) { if (m_cart) { - m_cart->write_l(space, offset, data); + m_cart->write_l(offset, data); // update open bus m_cart->set_open_bus(((offset + 0x4100) & 0xff00) >> 8); } } -WRITE8_MEMBER(nes_cart_slot_device::write_m) +void nes_cart_slot_device::write_m(offs_t offset, uint8_t data) { if (m_cart) { - m_cart->write_m(space, offset, data); + m_cart->write_m(offset, data); // update open bus m_cart->set_open_bus(((offset + 0x6000) & 0xff00) >> 8); } } -WRITE8_MEMBER(nes_cart_slot_device::write_h) +void nes_cart_slot_device::write_h(offs_t offset, uint8_t data) { if (m_cart) { - m_cart->write_h(space, offset, data); + m_cart->write_h(offset, data); // update open bus m_cart->set_open_bus(((offset + 0x8000) & 0xff00) >> 8); } } -WRITE8_MEMBER(nes_cart_slot_device::write_ex) +void nes_cart_slot_device::write_ex(offs_t offset, uint8_t data) { if (m_cart) { - m_cart->write_ex(space, offset, data); + m_cart->write_ex(offset, data); // update open bus m_cart->set_open_bus(((offset + 0x4020) & 0xff00) >> 8); } diff --git a/src/devices/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h index 260d59d4ead..952ffd74b1f 100644 --- a/src/devices/bus/nes/nes_slot.h +++ b/src/devices/bus/nes/nes_slot.h @@ -166,19 +166,19 @@ public: virtual ~device_nes_cart_interface(); // reading and writing - virtual DECLARE_READ8_MEMBER(read_l); - virtual DECLARE_READ8_MEMBER(read_m); - virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; } - virtual DECLARE_READ8_MEMBER(read_ex) { return 0xff; } - virtual DECLARE_WRITE8_MEMBER(write_l); - virtual DECLARE_WRITE8_MEMBER(write_m); - virtual DECLARE_WRITE8_MEMBER(write_h); - virtual DECLARE_WRITE8_MEMBER(write_ex) { } + virtual uint8_t read_l(offs_t offset); + virtual uint8_t read_m(offs_t offset); + virtual uint8_t read_h(offs_t offset) { return 0xff; } + virtual uint8_t read_ex(offs_t offset) { return 0xff; } + virtual void write_l(offs_t offset, uint8_t data); + virtual void write_m(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data); + virtual void write_ex(offs_t offset, uint8_t data) { } - virtual DECLARE_READ8_MEMBER(chr_r); - virtual DECLARE_WRITE8_MEMBER(chr_w); - virtual DECLARE_READ8_MEMBER(nt_r); - virtual DECLARE_WRITE8_MEMBER(nt_w); + virtual uint8_t chr_r(offs_t offset); + virtual void chr_w(offs_t offset, uint8_t data); + virtual uint8_t nt_r(offs_t offset); + virtual void nt_w(offs_t offset, uint8_t data); // hack until disk system is made modern! virtual void disk_flip_side() { } @@ -202,6 +202,7 @@ public: void set_vrc_lines(int PRG_A, int PRG_B, int CHR) { m_vrc_ls_prg_a = PRG_A; m_vrc_ls_prg_b = PRG_B; m_vrc_ls_chr = CHR; } void set_x1_005_alt(bool val) { m_x1_005_alt_mirroring = val; } void set_bus_conflict(bool val) { m_bus_conflict = val; } + uint8_t get_open_bus() { return m_open_bus; } void set_open_bus(uint8_t val) { m_open_bus = val; } uint8_t *get_prg_base() { return m_prg; } @@ -237,6 +238,7 @@ protected: DECLARE_WRITE_LINE_MEMBER(set_irq_line); void hold_irq_line(); void reset_cpu(); + void poke(offs_t offset, uint8_t data); // internal state uint8_t *m_prg; @@ -270,8 +272,10 @@ protected: bool m_pcb_ctrl_mirror, m_four_screen_vram, m_has_trainer; bool m_x1_005_alt_mirroring; // temp hack for two kind of mirroring in Taito X1-005 boards (to be replaced with pin checking) bool m_bus_conflict; +private: uint8_t m_open_bus; +public: // PRG inline int prg_8k_bank_num(int bank); inline void update_prg_banks(int prg_bank_start, int prg_bank_end); @@ -388,14 +392,14 @@ public: int nes_get_pcb_id(const char *slot); // reading and writing - virtual DECLARE_READ8_MEMBER(read_l); - virtual DECLARE_READ8_MEMBER(read_m); - virtual DECLARE_READ8_MEMBER(read_h); - virtual DECLARE_READ8_MEMBER(read_ex); - virtual DECLARE_WRITE8_MEMBER(write_l); - virtual DECLARE_WRITE8_MEMBER(write_m); - virtual DECLARE_WRITE8_MEMBER(write_h); - virtual DECLARE_WRITE8_MEMBER(write_ex); + virtual uint8_t read_l(offs_t offset); + virtual uint8_t read_m(offs_t offset); + virtual uint8_t read_h(offs_t offset); + virtual uint8_t read_ex(offs_t offset); + virtual void write_l(offs_t offset, uint8_t data); + virtual void write_m(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data); + virtual void write_ex(offs_t offset, uint8_t data); // hack until disk system is made modern! virtual void disk_flip_side() { if (m_cart) m_cart->disk_flip_side(); } diff --git a/src/devices/bus/nes/ntdec.cpp b/src/devices/bus/nes/ntdec.cpp index 5ea3458e8f3..6fbcd6f31ef 100644 --- a/src/devices/bus/nes/ntdec.cpp +++ b/src/devices/bus/nes/ntdec.cpp @@ -102,7 +102,7 @@ void nes_ntdec_fh_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_ntdec_asder_device::write_h) +void nes_ntdec_asder_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("ntdec_asder write_h, offset: %04x, data: %02x\n", offset, data)); @@ -165,7 +165,7 @@ WRITE8_MEMBER(nes_ntdec_asder_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_ntdec_fh_device::write_m) +void nes_ntdec_fh_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("ntdec_fh write_m, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/ntdec.h b/src/devices/bus/nes/ntdec.h index 1e5e8ef6cbb..062c5d7dcec 100644 --- a/src/devices/bus/nes/ntdec.h +++ b/src/devices/bus/nes/ntdec.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_ntdec_asder_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -37,7 +37,7 @@ public: // construction/destruction nes_ntdec_fh_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/nxrom.cpp b/src/devices/bus/nes/nxrom.cpp index e78fd6d1527..352b7534250 100644 --- a/src/devices/bus/nes/nxrom.cpp +++ b/src/devices/bus/nes/nxrom.cpp @@ -145,9 +145,6 @@ void nes_nrom_device::common_start() save_item(NAME(m_nt_src)); save_item(NAME(m_nt_orig)); save_item(NAME(m_nt_writable)); - - // open bus - save_item(NAME(m_open_bus)); } void nes_nrom_device::pcb_reset() @@ -291,23 +288,23 @@ void nes_un1rom_device::pcb_reset() -------------------------------------------------*/ -READ8_MEMBER(nes_nrom368_device::read_l) +uint8_t nes_nrom368_device::read_l(offs_t offset) { LOG_MMC(("nrom368 read_l, offset: %04x\n", offset)); offset += 0x100; if (offset >= 0x800) return m_prg[offset - 0x800]; else - return m_open_bus; + return get_open_bus(); } -READ8_MEMBER(nes_nrom368_device::read_m) +uint8_t nes_nrom368_device::read_m(offs_t offset) { LOG_MMC(("nrom368 read_m, offset: %04x\n", offset)); return m_prg[0x1800 + (offset & 0x1fff)]; } -READ8_MEMBER(nes_nrom368_device::read_h) +uint8_t nes_nrom368_device::read_h(offs_t offset) { LOG_MMC(("nrom368 read_h, offset: %04x\n", offset)); return m_prg[0x3800 + (offset & 0x7fff)]; @@ -334,7 +331,7 @@ READ8_MEMBER(nes_nrom368_device::read_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_axrom_device::write_h) +void nes_axrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("axrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -355,7 +352,7 @@ WRITE8_MEMBER(nes_axrom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_bxrom_device::write_h) +void nes_bxrom_device::write_h(offs_t offset, uint8_t data) { /* This portion of the mapper is nearly identical to Mapper 7, except no one-screen mirroring */ /* Deadly Towers is really a BxROM game - the demo screens look wrong using mapper 7. */ @@ -391,7 +388,7 @@ WRITE8_MEMBER(nes_bxrom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_cnrom_device::write_h) +void nes_cnrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("cxrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -412,7 +409,7 @@ WRITE8_MEMBER(nes_cnrom_device::write_h) chr8(data, CHRROM); } -READ8_MEMBER(nes_cnrom_device::chr_r) +uint8_t nes_cnrom_device::chr_r(offs_t offset) { int bank = offset >> 10; @@ -421,7 +418,7 @@ READ8_MEMBER(nes_cnrom_device::chr_r) // give actual VROM content or open bus values. // For most boards, chr_open_bus remains always zero. if (m_chr_open_bus) - return m_open_bus; + return get_open_bus(); return m_chr_access[bank][offset & 0x3ff]; } @@ -441,7 +438,7 @@ READ8_MEMBER(nes_cnrom_device::chr_r) -------------------------------------------------*/ -WRITE8_MEMBER(nes_cprom_device::write_h) +void nes_cprom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("cprom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -462,7 +459,7 @@ WRITE8_MEMBER(nes_cprom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_gxrom_device::write_h) +void nes_gxrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("gxrom write_h, offset %04x, data: %02x\n", offset, data)); @@ -488,7 +485,7 @@ WRITE8_MEMBER(nes_gxrom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_uxrom_device::write_h) +void nes_uxrom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("uxrom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -514,7 +511,7 @@ WRITE8_MEMBER(nes_uxrom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_uxrom_cc_device::write_h) +void nes_uxrom_cc_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("uxrom_cc write_h, offset: %04x, data: %02x\n", offset, data)); @@ -535,7 +532,7 @@ WRITE8_MEMBER(nes_uxrom_cc_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_un1rom_device::write_h) +void nes_un1rom_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("un1rom write_h, offset: %04x, data: %02x\n", offset, data)); @@ -558,7 +555,7 @@ WRITE8_MEMBER(nes_un1rom_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_nochr_device::chr_w) +void nes_nochr_device::chr_w(offs_t offset, uint8_t data) { int mirr = get_mirroring(); if (mirr == PPU_MIRROR_HIGH) @@ -569,7 +566,7 @@ WRITE8_MEMBER(nes_nochr_device::chr_w) m_ciram[offset & 0x7ff] = data; // not sure here, since there is no software to test... } -READ8_MEMBER(nes_nochr_device::chr_r) +uint8_t nes_nochr_device::chr_r(offs_t offset) { int mirr = get_mirroring(); if (mirr == PPU_MIRROR_HIGH) diff --git a/src/devices/bus/nes/nxrom.h b/src/devices/bus/nes/nxrom.h index 721ed5b5e98..382abf05390 100644 --- a/src/devices/bus/nes/nxrom.h +++ b/src/devices/bus/nes/nxrom.h @@ -36,9 +36,9 @@ public: // construction/destruction nes_nrom368_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; }; @@ -62,7 +62,7 @@ public: // construction/destruction nes_axrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -80,7 +80,7 @@ public: // construction/destruction nes_bxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -98,8 +98,8 @@ public: // construction/destruction nes_cnrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -122,7 +122,7 @@ public: // construction/destruction nes_cprom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -140,7 +140,7 @@ public: // construction/destruction nes_gxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -158,7 +158,7 @@ public: // construction/destruction nes_uxrom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -176,7 +176,7 @@ public: // construction/destruction nes_uxrom_cc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -194,7 +194,7 @@ public: // construction/destruction nes_un1rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -213,8 +213,8 @@ public: nes_nochr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_READ8_MEMBER(chr_r) override; - virtual DECLARE_WRITE8_MEMBER(chr_w) override; + virtual uint8_t chr_r(offs_t offset) override; + virtual void chr_w(offs_t offset, uint8_t data) override; }; diff --git a/src/devices/bus/nes/pirate.cpp b/src/devices/bus/nes/pirate.cpp index 1d2035a9b91..acda901ecca 100644 --- a/src/devices/bus/nes/pirate.cpp +++ b/src/devices/bus/nes/pirate.cpp @@ -423,7 +423,7 @@ void nes_cityfight_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_agci_device::write_h) +void nes_agci_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("agci write_h, offset: %04x, data: %02x\n", offset, data)); @@ -445,7 +445,7 @@ WRITE8_MEMBER(nes_agci_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_dreamtech_device::write_l) +void nes_dreamtech_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("dreamtech write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -467,7 +467,7 @@ WRITE8_MEMBER(nes_dreamtech_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_fukutake_device::write_l) +void nes_fukutake_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("fukutake write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -483,7 +483,7 @@ WRITE8_MEMBER(nes_fukutake_device::write_l) m_ram[offset - 0x400] = data; } -READ8_MEMBER(nes_fukutake_device::read_l) +uint8_t nes_fukutake_device::read_l(offs_t offset) { LOG_MMC(("fukutake read_l, offset: %04x\n", offset)); offset += 0x100; @@ -503,13 +503,13 @@ READ8_MEMBER(nes_fukutake_device::read_l) return 0; } -WRITE8_MEMBER(nes_fukutake_device::write_m) +void nes_fukutake_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("fukutake write_m, offset: %04x, data: %02x\n", offset, data)); m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data; } -READ8_MEMBER(nes_fukutake_device::read_m) +uint8_t nes_fukutake_device::read_m(offs_t offset) { LOG_MMC(("fukutake read_m, offset: %04x\n", offset)); return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)]; @@ -540,7 +540,7 @@ void nes_futuremedia_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_futuremedia_device::write_h) +void nes_futuremedia_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("futuremedia write_h, offset: %04x, data: %02x\n", offset, data)); @@ -603,7 +603,7 @@ WRITE8_MEMBER(nes_futuremedia_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_magseries_device::write_h) +void nes_magseries_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("magseries write_h, offset: %04x, data: %02x\n", offset, data)); @@ -626,7 +626,7 @@ WRITE8_MEMBER(nes_magseries_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_daou306_device::write_h) +void nes_daou306_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("daou306 write_h, offset: %04x, data: %02x\n", offset, data)); int reg = BIT(offset, 2) ? 8 : 0; @@ -695,7 +695,7 @@ WRITE8_MEMBER(nes_daou306_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_cc21_device::write_h) +void nes_cc21_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("cc21 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -718,7 +718,7 @@ WRITE8_MEMBER(nes_cc21_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_xiaozy_device::write_l) +void nes_xiaozy_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("xiaozy write_l, offset: %04x, data: %02x\n", offset, data)); @@ -739,7 +739,7 @@ WRITE8_MEMBER(nes_xiaozy_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_edu2k_device::write_h) +void nes_edu2k_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("edu2k write_h, offset: %04x, data: %02x\n", offset, data)); @@ -747,13 +747,13 @@ WRITE8_MEMBER(nes_edu2k_device::write_h) m_latch = (data & 0xc0) >> 6; } -WRITE8_MEMBER(nes_edu2k_device::write_m) +void nes_edu2k_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("edu2k write_m, offset: %04x, data: %02x\n", offset, data)); m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)] = data; } -READ8_MEMBER(nes_edu2k_device::read_m) +uint8_t nes_edu2k_device::read_m(offs_t offset) { LOG_MMC(("edu2k read_m, offset: %04x\n", offset)); return m_prgram[((m_latch * 0x2000) + offset) & (m_prgram.size() - 1)]; @@ -787,7 +787,7 @@ void nes_t230_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_t230_device::write_h) +void nes_t230_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("t230 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -869,7 +869,7 @@ void nes_mk2_device::hblank_irq( int scanline, int vblank, int blanked ) m_irq_clear = 0; } -WRITE8_MEMBER(nes_mk2_device::write_m) +void nes_mk2_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("mk2 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -921,7 +921,7 @@ void nes_whero_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_whero_device::write_h) +void nes_whero_device::write_h(offs_t offset, uint8_t data) { int bank, shift, mask1, mask2; LOG_MMC(("World Hero write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1005,7 +1005,7 @@ WRITE8_MEMBER(nes_whero_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_43272_device::write_h) +void nes_43272_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("unl_43272 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1016,7 +1016,7 @@ WRITE8_MEMBER(nes_43272_device::write_h) } -READ8_MEMBER(nes_43272_device::read_h) +uint8_t nes_43272_device::read_h(offs_t offset) { uint8_t mask = (m_latch & 0x400) ? 0xfe : 0xff; LOG_MMC(("unl_43272 read_h, offset: %04x\n", offset)); @@ -1054,7 +1054,7 @@ void nes_tf1201_device::update_prg() prg8_cd(m_swap ? m_prg : 0xff ); } -WRITE8_MEMBER(nes_tf1201_device::write_h) +void nes_tf1201_device::write_h(offs_t offset, uint8_t data) { int bank; LOG_MMC(("unl_tf1201 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1139,7 +1139,7 @@ void nes_cityfight_device::update_prg() prg8_cd(m_prg_reg); } -WRITE8_MEMBER(nes_cityfight_device::write_h) +void nes_cityfight_device::write_h(offs_t offset, uint8_t data) { int bank; LOG_MMC(("unl_cityfight write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1244,7 +1244,7 @@ void nes_fujiya_device::pcb_reset() m_latch = 0; } -WRITE8_MEMBER(nes_fujiya_device::write_m) +void nes_fujiya_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("fujiya write_m, offset: %04x, data: %02x\n", offset, data)); offset += 0x6000; @@ -1253,7 +1253,7 @@ WRITE8_MEMBER(nes_fujiya_device::write_m) m_latch = (data & 0x40) << 1; } -READ8_MEMBER(nes_fujiya_device::read_m) +uint8_t nes_fujiya_device::read_m(offs_t offset) { LOG_MMC(("fujiya read_m, offset: %04x\n", offset)); offset += 0x6000; @@ -1261,6 +1261,6 @@ READ8_MEMBER(nes_fujiya_device::read_m) if (offset == 0x7001 || offset == 0x7777) return m_latch | ((offset >> 8) & 0x7f); - return m_open_bus; // open bus + return get_open_bus(); // open bus } #endif diff --git a/src/devices/bus/nes/pirate.h b/src/devices/bus/nes/pirate.h index 91424d32e25..e99bd703aec 100644 --- a/src/devices/bus/nes/pirate.h +++ b/src/devices/bus/nes/pirate.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_agci_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,7 +34,7 @@ public: // construction/destruction nes_dreamtech_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -52,10 +52,10 @@ public: // construction/destruction nes_fukutake_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -77,7 +77,7 @@ public: // construction/destruction nes_futuremedia_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -101,7 +101,7 @@ public: // construction/destruction nes_magseries_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -119,7 +119,7 @@ public: // construction/destruction nes_daou306_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -140,7 +140,7 @@ public: // construction/destruction nes_cc21_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -158,7 +158,7 @@ public: // construction/destruction nes_xiaozy_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -176,9 +176,9 @@ public: // construction/destruction nes_edu2k_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -199,7 +199,7 @@ public: // construction/destruction nes_t230_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -225,7 +225,7 @@ public: // construction/destruction nes_mk2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -249,7 +249,7 @@ public: // construction/destruction nes_whero_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -276,8 +276,8 @@ public: // construction/destruction nes_43272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -298,7 +298,7 @@ public: // construction/destruction nes_tf1201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -325,7 +325,7 @@ public: // construction/destruction nes_cityfight_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -359,8 +359,8 @@ public: // construction/destruction nes_fujiya_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/pt554.cpp b/src/devices/bus/nes/pt554.cpp index 98524a04bc7..db16ca42e37 100644 --- a/src/devices/bus/nes/pt554.cpp +++ b/src/devices/bus/nes/pt554.cpp @@ -59,7 +59,7 @@ nes_bandai_pt554_device::nes_bandai_pt554_device(const machine_config &mconfig, -------------------------------------------------*/ -WRITE8_MEMBER(nes_bandai_pt554_device::write_m) +void nes_bandai_pt554_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("Bandai PT-554 Sound write, data: %02x\n", data)); diff --git a/src/devices/bus/nes/pt554.h b/src/devices/bus/nes/pt554.h index f25281ea4f0..746750c52ed 100644 --- a/src/devices/bus/nes/pt554.h +++ b/src/devices/bus/nes/pt554.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_bandai_pt554_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; protected: // device-level overrides diff --git a/src/devices/bus/nes/racermate.cpp b/src/devices/bus/nes/racermate.cpp index 5b578da0e09..111cb997dd0 100644 --- a/src/devices/bus/nes/racermate.cpp +++ b/src/devices/bus/nes/racermate.cpp @@ -81,7 +81,7 @@ void nes_racermate_device::update_banks() prg16_89ab(m_latch >> 6); } -WRITE8_MEMBER(nes_racermate_device::write_h) +void nes_racermate_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("racermate write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/racermate.h b/src/devices/bus/nes/racermate.h index 5366ec1a6ea..cb74a06a6b0 100644 --- a/src/devices/bus/nes/racermate.h +++ b/src/devices/bus/nes/racermate.h @@ -16,7 +16,7 @@ public: // device-level overrides virtual void device_start() override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/rcm.cpp b/src/devices/bus/nes/rcm.cpp index 5c861922afb..fdd07830381 100644 --- a/src/devices/bus/nes/rcm.cpp +++ b/src/devices/bus/nes/rcm.cpp @@ -161,7 +161,7 @@ void nes_3dblock_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_gs2015_device::write_h) +void nes_gs2015_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("gs2015 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -169,7 +169,7 @@ WRITE8_MEMBER(nes_gs2015_device::write_h) chr8(offset >> 1, m_chr_source); } -READ8_MEMBER(nes_gs2015_device::read_m) +uint8_t nes_gs2015_device::read_m(offs_t offset) { LOG_MMC(("gs2015 read_m, offset: %04x\n", offset)); return 0; // Videopoker Bonza needs this (sort of protection? or related to inputs?) @@ -186,7 +186,7 @@ READ8_MEMBER(nes_gs2015_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_gs2004_device::write_h) +void nes_gs2004_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("gs2004 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -204,7 +204,7 @@ WRITE8_MEMBER(nes_gs2004_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_gs2013_device::write_h) +void nes_gs2013_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("gs2013 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -232,7 +232,7 @@ WRITE8_MEMBER(nes_gs2013_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_tf9_device::write_h) +void nes_tf9_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("tetrisfam write_h, offset: %04x, data: %02x\n", offset, data)); @@ -279,7 +279,7 @@ void nes_3dblock_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_3dblock_device::write_l) +void nes_3dblock_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("3dblock write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; diff --git a/src/devices/bus/nes/rcm.h b/src/devices/bus/nes/rcm.h index f37a6074432..005869fe09c 100644 --- a/src/devices/bus/nes/rcm.h +++ b/src/devices/bus/nes/rcm.h @@ -16,9 +16,9 @@ public: // construction/destruction nes_gs2015_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override { return read_m(space, offset, mem_mask); } - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override { return read_m(offset); } + virtual uint8_t read_m(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -36,7 +36,7 @@ public: // construction/destruction nes_gs2004_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -54,7 +54,7 @@ public: // construction/destruction nes_gs2013_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -72,7 +72,7 @@ public: // construction/destruction nes_tf9_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -90,7 +90,7 @@ public: // construction/destruction nes_3dblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/rexsoft.cpp b/src/devices/bus/nes/rexsoft.cpp index 3d868a0c970..c10b88afe01 100644 --- a/src/devices/bus/nes/rexsoft.cpp +++ b/src/devices/bus/nes/rexsoft.cpp @@ -112,7 +112,7 @@ void nes_rex_sl1632_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_rex_dbz5_device::write_l) +void nes_rex_dbz5_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("rex_dbz write_l, offset: %04x, data: %02x\n", offset, data)); @@ -121,7 +121,7 @@ WRITE8_MEMBER(nes_rex_dbz5_device::write_l) } /* we would need to use this read handler in 0x6000-0x7fff as well */ -READ8_MEMBER(nes_rex_dbz5_device::read_l) +uint8_t nes_rex_dbz5_device::read_l(offs_t offset) { LOG_MMC(("rex_dbz read_l, offset: %04x\n", offset)); return 0x01; @@ -208,7 +208,7 @@ void nes_rex_sl1632_device::set_chr(uint8_t chr, int chr_base, int chr_mask) chr1_x(chr_page ^ 7, chr_base2[7] | (bank[7] & chr_mask), chr); } -WRITE8_MEMBER(nes_rex_sl1632_device::write_h) +void nes_rex_sl1632_device::write_h(offs_t offset, uint8_t data) { uint8_t helper1, helper2; LOG_MMC(("rex_sl1632 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -232,7 +232,7 @@ WRITE8_MEMBER(nes_rex_sl1632_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } diff --git a/src/devices/bus/nes/rexsoft.h b/src/devices/bus/nes/rexsoft.h index 61fe876633a..0c44c73139d 100644 --- a/src/devices/bus/nes/rexsoft.h +++ b/src/devices/bus/nes/rexsoft.h @@ -16,10 +16,10 @@ public: // construction/destruction nes_rex_dbz5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_READ8_MEMBER(read_m) override { return read_l(space, offset, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual void chr_cb( int start, int bank, int source ) override; + virtual uint8_t read_l(offs_t offset) override; + virtual uint8_t read_m(offs_t offset) override { return read_l(offset); } + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; @@ -40,7 +40,7 @@ public: // construction/destruction nes_rex_sl1632_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/sachen.cpp b/src/devices/bus/nes/sachen.cpp index 369c4cde885..0622bfec8d4 100644 --- a/src/devices/bus/nes/sachen.cpp +++ b/src/devices/bus/nes/sachen.cpp @@ -308,7 +308,7 @@ void nes_sachen_8259d_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_sa009_device::write_l) +void nes_sachen_sa009_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("SA009 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -327,7 +327,7 @@ WRITE8_MEMBER(nes_sachen_sa009_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_sa0036_device::write_h) +void nes_sachen_sa0036_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sa0036 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -346,7 +346,7 @@ WRITE8_MEMBER(nes_sachen_sa0036_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_sa0037_device::write_h) +void nes_sachen_sa0037_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sa0037 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -369,7 +369,7 @@ WRITE8_MEMBER(nes_sachen_sa0037_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_sa72007_device::write_l) +void nes_sachen_sa72007_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("SA72007 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -390,7 +390,7 @@ WRITE8_MEMBER(nes_sachen_sa72007_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_sa72008_device::write_l) +void nes_sachen_sa72008_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("SA72008 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -410,7 +410,7 @@ WRITE8_MEMBER(nes_sachen_sa72008_device::write_l) -------------------------------------------------*/ -READ8_MEMBER(nes_sachen_tca01_device::read_l) +uint8_t nes_sachen_tca01_device::read_l(offs_t offset) { LOG_MMC(("TCA-01 read_l, offset: %04x\n", offset)); @@ -433,7 +433,7 @@ READ8_MEMBER(nes_sachen_tca01_device::read_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_tcu01_device::write_l) +void nes_sachen_tcu01_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("TCU-01 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -456,7 +456,7 @@ WRITE8_MEMBER(nes_sachen_tcu01_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sachen_tcu02_device::write_l) +void nes_sachen_tcu02_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("TCU-02 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -467,7 +467,7 @@ WRITE8_MEMBER(nes_sachen_tcu02_device::write_l) } } -READ8_MEMBER(nes_sachen_tcu02_device::read_l) +uint8_t nes_sachen_tcu02_device::read_l(offs_t offset) { LOG_MMC(("TCU-02 read_l, offset: %04x\n", offset)); @@ -512,7 +512,7 @@ void nes_sachen_74x374_device::set_mirror(uint8_t nt) // also used by mappers 13 } -WRITE8_MEMBER(nes_sachen_74x374_device::write_l) +void nes_sachen_74x374_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("Sachen 74*374 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -551,7 +551,7 @@ WRITE8_MEMBER(nes_sachen_74x374_device::write_l) } } -READ8_MEMBER(nes_sachen_74x374_device::read_l) +uint8_t nes_sachen_74x374_device::read_l(offs_t offset) { LOG_MMC(("Sachen 74*374 read_l, offset: %04x", offset)); @@ -562,7 +562,7 @@ READ8_MEMBER(nes_sachen_74x374_device::read_l) return 0; } -WRITE8_MEMBER(nes_sachen_74x374_alt_device::write_l) +void nes_sachen_74x374_alt_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("Sachen 74*374 Alt write_l, offset: %04x, data: %02x\n", offset, data)); @@ -626,7 +626,7 @@ void nes_sachen_8259a_device::chr_update() } } -WRITE8_MEMBER(nes_sachen_8259a_device::write_l) +void nes_sachen_8259a_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("Sachen 8259 write_l, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/sachen.h b/src/devices/bus/nes/sachen.h index cfec9363bdc..b23599345b3 100644 --- a/src/devices/bus/nes/sachen.h +++ b/src/devices/bus/nes/sachen.h @@ -16,7 +16,7 @@ public: // construction/destruction nes_sachen_sa009_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -34,7 +34,7 @@ public: // construction/destruction nes_sachen_sa0036_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -52,7 +52,7 @@ public: // construction/destruction nes_sachen_sa0037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -70,7 +70,7 @@ public: // construction/destruction nes_sachen_sa72007_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -88,7 +88,7 @@ public: // construction/destruction nes_sachen_sa72008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -106,7 +106,7 @@ public: // construction/destruction nes_sachen_tca01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; + virtual uint8_t read_l(offs_t offset) override; virtual void pcb_reset() override; @@ -124,9 +124,9 @@ public: // construction/destruction nes_sachen_tcu01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_h) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); } + virtual void write_h(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); } virtual void pcb_reset() override; @@ -144,8 +144,8 @@ public: // construction/destruction nes_sachen_tcu02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -166,8 +166,8 @@ public: // construction/destruction nes_sachen_74x374_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -191,8 +191,8 @@ public: nes_sachen_74x374_alt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_READ8_MEMBER(read_l) override { return 0xff; } // no read_l here - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual uint8_t read_l(offs_t offset) override { return 0xff; } // no read_l here + virtual void write_l(offs_t offset, uint8_t data) override; }; @@ -204,8 +204,8 @@ public: // construction/destruction nes_sachen_8259a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override { write_l(space, (offset + 0x100) & 0xfff, data, mem_mask); } + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_m(offs_t offset, uint8_t data) override { write_l((offset + 0x100) & 0xfff, data); } virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/somari.cpp b/src/devices/bus/nes/somari.cpp index f4a5c2e7f40..c517a4fae16 100644 --- a/src/devices/bus/nes/somari.cpp +++ b/src/devices/bus/nes/somari.cpp @@ -157,7 +157,7 @@ void nes_somari_device::pcb_reset() -------------------------------------------------*/ // MMC1 Mode emulation -WRITE8_MEMBER(nes_somari_device::mmc1_w) +void nes_somari_device::mmc1_w(offs_t offset, uint8_t data) { assert(m_board_mode == 2); @@ -191,7 +191,7 @@ WRITE8_MEMBER(nes_somari_device::mmc1_w) } // MMC3 Mode emulation -WRITE8_MEMBER(nes_somari_device::mmc3_w) +void nes_somari_device::mmc3_w(offs_t offset, uint8_t data) { uint8_t mmc_helper, cmd; @@ -240,7 +240,7 @@ WRITE8_MEMBER(nes_somari_device::mmc3_w) } // VRC2 Mode emulation -WRITE8_MEMBER(nes_somari_device::vrc2_w) +void nes_somari_device::vrc2_w(offs_t offset, uint8_t data) { uint8_t bank, shift; @@ -381,15 +381,15 @@ void nes_somari_device::update_mirror() } -WRITE8_MEMBER(nes_somari_device::write_h) +void nes_somari_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("somari write_h, mode %d, offset: %04x, data: %02x\n", m_board_mode, offset, data)); switch (m_board_mode) { - case SOMARI_VRC2_MODE: vrc2_w(space, offset, data, mem_mask); break; - case SOMARI_MMC3_MODE: mmc3_w(space, offset, data, mem_mask); break; - case SOMARI_MMC1_MODE: mmc1_w(space, offset, data, mem_mask); break; + case SOMARI_VRC2_MODE: vrc2_w(offset, data); break; + case SOMARI_MMC3_MODE: mmc3_w(offset, data); break; + case SOMARI_MMC1_MODE: mmc1_w(offset, data); break; } } @@ -409,7 +409,7 @@ void nes_somari_device::bank_update_switchmode() update_chr(); } -WRITE8_MEMBER(nes_somari_device::write_m) +void nes_somari_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("somari write_m, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/somari.h b/src/devices/bus/nes/somari.h index 7b5d2920923..dda299b3a99 100644 --- a/src/devices/bus/nes/somari.h +++ b/src/devices/bus/nes/somari.h @@ -16,12 +16,12 @@ public: // construction/destruction nes_somari_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override { write_m(space, offset + 0x100, data, mem_mask); } - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(mmc1_w); - virtual DECLARE_WRITE8_MEMBER(mmc3_w); - virtual DECLARE_WRITE8_MEMBER(vrc2_w); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_l(offs_t offset, uint8_t data) override { write_m(offset + 0x100, data); } + virtual void write_m(offs_t offset, uint8_t data) override; + void mmc1_w(offs_t offset, uint8_t data); + void mmc3_w(offs_t offset, uint8_t data); + void vrc2_w(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/subor.cpp b/src/devices/bus/nes/subor.cpp index c15e8761112..0fa25b2b5bb 100644 --- a/src/devices/bus/nes/subor.cpp +++ b/src/devices/bus/nes/subor.cpp @@ -183,7 +183,7 @@ void nes_subor2_device::ppu_latch(offs_t offset) nt -------------------------------------------------*/ -READ8_MEMBER(nes_subor2_device::nt_r) +uint8_t nes_subor2_device::nt_r(offs_t offset) { int page = ((offset & 0xc00) >> 10); @@ -234,7 +234,7 @@ void nes_subor2_device::update_banks() read -------------------------------------------------*/ -READ8_MEMBER(nes_subor2_device::read_l) +uint8_t nes_subor2_device::read_l(offs_t offset) { LOG_MMC("subor2 read_l, offset: %04x\n", offset); @@ -242,14 +242,14 @@ READ8_MEMBER(nes_subor2_device::read_l) { return 0x8F; } - return m_open_bus; + return get_open_bus(); } /*------------------------------------------------- write -------------------------------------------------*/ -WRITE8_MEMBER(nes_subor0_device::write_h) +void nes_subor0_device::write_h(offs_t offset, uint8_t data) { uint8_t subor_helper1, subor_helper2; LOG_MMC("subor0 write_h, offset: %04x, data: %02x\n", offset, data); @@ -279,7 +279,7 @@ WRITE8_MEMBER(nes_subor0_device::write_h) prg16_cdef(subor_helper2); } -WRITE8_MEMBER(nes_subor1_device::write_h) +void nes_subor1_device::write_h(offs_t offset, uint8_t data) { uint8_t subor_helper1, subor_helper2; LOG_MMC("subor1 write_h, offset: %04x, data: %02x\n", offset, data); @@ -309,7 +309,7 @@ WRITE8_MEMBER(nes_subor1_device::write_h) prg16_cdef(subor_helper2); } -WRITE8_MEMBER(nes_subor2_device::write_l) +void nes_subor2_device::write_l(offs_t offset, uint8_t data) { LOG_MMC("subor2 write_l, offset: %04x, data: %02x\n", offset, data); diff --git a/src/devices/bus/nes/subor.h b/src/devices/bus/nes/subor.h index 93e542cf481..a4ffc13a553 100644 --- a/src/devices/bus/nes/subor.h +++ b/src/devices/bus/nes/subor.h @@ -20,7 +20,7 @@ public: // construction/destruction nes_subor0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -41,7 +41,7 @@ public: // construction/destruction nes_subor1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -62,9 +62,9 @@ public: // construction/destruction nes_subor2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(nt_r) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_READ8_MEMBER(read_l) override; + virtual uint8_t nt_r(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual uint8_t read_l(offs_t offset) override; virtual void ppu_latch(offs_t offset) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp index 3ce39de4295..be90e36e535 100644 --- a/src/devices/bus/nes/sunsoft.cpp +++ b/src/devices/bus/nes/sunsoft.cpp @@ -209,7 +209,7 @@ void nes_sunsoft_fme7_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_sunsoft_1_device::write_m) +void nes_sunsoft_1_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft 1 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -235,7 +235,7 @@ WRITE8_MEMBER(nes_sunsoft_1_device::write_m) // there are two 'variants' depending on hardwired or mapper ctrl mirroring -WRITE8_MEMBER(nes_sunsoft_2_device::write_h) +void nes_sunsoft_2_device::write_h(offs_t offset, uint8_t data) { uint8_t helper = (data & 0x07) | ((data & 0x80) ? 0x08 : 0x00); LOG_MMC(("Sunsoft 2 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -282,7 +282,7 @@ void nes_sunsoft_3_device::device_timer(emu_timer &timer, device_timer_id id, in } } -WRITE8_MEMBER(nes_sunsoft_3_device::write_h) +void nes_sunsoft_3_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft 3 write_h, offset %04x, data: %02x\n", offset, data)); @@ -384,7 +384,7 @@ void nes_sunsoft_4_device::sun4_mirror( int mirror, int mirr0, int mirr1 ) } } -WRITE8_MEMBER(nes_sunsoft_4_device::sun4_write) +void nes_sunsoft_4_device::sun4_write(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft 4 write_h, offset %04x, data: %02x\n", offset, data)); @@ -424,7 +424,7 @@ WRITE8_MEMBER(nes_sunsoft_4_device::sun4_write) } } -WRITE8_MEMBER(nes_sunsoft_4_device::write_m) +void nes_sunsoft_4_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft 4 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -434,7 +434,7 @@ WRITE8_MEMBER(nes_sunsoft_4_device::write_m) m_prgram[offset & (m_prgram.size() - 1)] = data; } -READ8_MEMBER(nes_sunsoft_4_device::read_m) +uint8_t nes_sunsoft_4_device::read_m(offs_t offset) { LOG_MMC(("Sunsoft 4 read_m, offset: %04x\n", offset)); @@ -443,7 +443,7 @@ READ8_MEMBER(nes_sunsoft_4_device::read_m) if (!m_prgram.empty() && m_wram_enable) return m_prgram[offset & (m_prgram.size() - 1)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } /*------------------------------------------------- @@ -475,7 +475,7 @@ void nes_sunsoft_fme7_device::device_timer(emu_timer &timer, device_timer_id id, } } -WRITE8_MEMBER(nes_sunsoft_fme7_device::fme7_write) +void nes_sunsoft_fme7_device::fme7_write(offs_t offset, uint8_t data) { LOG_MMC(("fme7_write, offset %04x, data: %02x\n", offset, data)); @@ -533,7 +533,7 @@ WRITE8_MEMBER(nes_sunsoft_fme7_device::fme7_write) } } -WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m) +void nes_sunsoft_fme7_device::write_m(offs_t offset, uint8_t data) { uint8_t bank = m_wram_bank & 0x3f; LOG_MMC(("Sunsoft FME7 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -549,7 +549,7 @@ WRITE8_MEMBER(nes_sunsoft_fme7_device::write_m) } } -READ8_MEMBER(nes_sunsoft_fme7_device::read_m) +uint8_t nes_sunsoft_fme7_device::read_m(offs_t offset) { uint8_t bank = m_wram_bank & 0x3f; LOG_MMC(("Sunsoft FME7 read_m, offset: %04x\n", offset)); @@ -564,7 +564,7 @@ READ8_MEMBER(nes_sunsoft_fme7_device::read_m) return m_prgram[((bank * 0x2000) + offset) & (m_prgram.size() - 1)]; } - return m_open_bus; // open bus + return get_open_bus(); // open bus } @@ -578,7 +578,7 @@ READ8_MEMBER(nes_sunsoft_fme7_device::read_m) -------------------------------------------------*/ -WRITE8_MEMBER(nes_sunsoft_5_device::write_h) +void nes_sunsoft_5_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("sunsoft 5 write_h, offset %04x, data: %02x\n", offset, data)); @@ -591,7 +591,7 @@ WRITE8_MEMBER(nes_sunsoft_5_device::write_h) m_ym2149->data_w(data); break; default: - fme7_write(space, offset, data, mem_mask); + fme7_write(offset, data); break; } } diff --git a/src/devices/bus/nes/sunsoft.h b/src/devices/bus/nes/sunsoft.h index b4b035d515d..c02b94647cf 100644 --- a/src/devices/bus/nes/sunsoft.h +++ b/src/devices/bus/nes/sunsoft.h @@ -17,7 +17,7 @@ public: // construction/destruction nes_sunsoft_1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -35,7 +35,7 @@ public: // construction/destruction nes_sunsoft_2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -53,7 +53,7 @@ public: // construction/destruction nes_sunsoft_3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -78,10 +78,10 @@ public: // construction/destruction nes_sunsoft_4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(sun4_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { sun4_write(space, offset, data, mem_mask); } + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + void sun4_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { sun4_write(offset, data); } virtual void pcb_reset() override; @@ -104,10 +104,10 @@ public: // construction/destruction nes_sunsoft_fme7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(fme7_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { fme7_write(space, offset, data, mem_mask); } + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + void fme7_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { fme7_write(offset, data); } virtual void pcb_reset() override; @@ -138,7 +138,7 @@ public: // construction/destruction nes_sunsoft_5_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; protected: virtual void device_add_mconfig(machine_config &config) override; diff --git a/src/devices/bus/nes/sunsoft_dcs.cpp b/src/devices/bus/nes/sunsoft_dcs.cpp index b4faf0afcc9..23c81894666 100644 --- a/src/devices/bus/nes/sunsoft_dcs.cpp +++ b/src/devices/bus/nes/sunsoft_dcs.cpp @@ -68,10 +68,10 @@ void nes_ntb_slot_device::device_start() m_cart = dynamic_cast(get_card_device()); } -READ8_MEMBER(nes_ntb_slot_device::read) +uint8_t nes_ntb_slot_device::read(offs_t offset) { if (m_cart) - return m_cart->read(space, offset, mem_mask); + return m_cart->read(offset); return 0xff; } @@ -212,7 +212,7 @@ void nes_sunsoft_dcs_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_sunsoft_dcs_device::write_h) +void nes_sunsoft_dcs_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft DCS write_h, offset %04x, data: %02x\n", offset, data)); @@ -224,27 +224,27 @@ WRITE8_MEMBER(nes_sunsoft_dcs_device::write_h) m_wram_enable = BIT(data, 4); break; default: - sun4_write(space, offset, data, mem_mask); + sun4_write(offset, data); break; } } -READ8_MEMBER(nes_sunsoft_dcs_device::read_h) +uint8_t nes_sunsoft_dcs_device::read_h(offs_t offset) { LOG_MMC(("Sunsoft DCS read_h, offset: %04x\n", offset)); if (m_exrom_enable && m_subslot->m_cart && offset < 0x4000) { if (m_timer_on) - return m_subslot->m_cart->read(space, offset, mem_mask); + return m_subslot->m_cart->read(offset); else - return m_open_bus; // after the timer is off, this returns open bus... + return get_open_bus(); // after the timer is off, this returns open bus... } else return hi_access_rom(offset); } -WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m) +void nes_sunsoft_dcs_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("Sunsoft DCS write_m, offset: %04x, data: %02x\n", offset, data)); @@ -260,7 +260,7 @@ WRITE8_MEMBER(nes_sunsoft_dcs_device::write_m) } } -READ8_MEMBER(nes_sunsoft_dcs_device::read_m) +uint8_t nes_sunsoft_dcs_device::read_m(offs_t offset) { LOG_MMC(("Sunsoft DCS read_m, offset: %04x\n", offset)); @@ -269,7 +269,7 @@ READ8_MEMBER(nes_sunsoft_dcs_device::read_m) if (!m_prgram.empty() && m_wram_enable) return m_prgram[offset & (m_prgram.size() - 1)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } diff --git a/src/devices/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h index 9971b8c48bd..51a11b22ae4 100644 --- a/src/devices/bus/nes/sunsoft_dcs.h +++ b/src/devices/bus/nes/sunsoft_dcs.h @@ -24,7 +24,7 @@ public: virtual ~ntb_cart_interface(); // reading and writing - virtual DECLARE_READ8_MEMBER(read) { return m_rom[offset]; } + virtual uint8_t read(offs_t offset) { return m_rom[offset]; } uint8_t *get_cart_base() { return m_rom; } @@ -78,7 +78,7 @@ public: // slot interface overrides virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; - virtual DECLARE_READ8_MEMBER(read); + virtual uint8_t read(offs_t offset); protected: ntb_cart_interface* m_cart; @@ -133,10 +133,10 @@ public: // construction/destruction nes_sunsoft_dcs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_READ8_MEMBER(read_h) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_m(offs_t offset) override; + virtual uint8_t read_h(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/taito.cpp b/src/devices/bus/nes/taito.cpp index 2868bfea1dc..28c37b6109c 100644 --- a/src/devices/bus/nes/taito.cpp +++ b/src/devices/bus/nes/taito.cpp @@ -172,7 +172,7 @@ void nes_x1_017_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_tc0190fmc_device::tc0190fmc_write) +void nes_tc0190fmc_device::tc0190fmc_write(offs_t offset, uint8_t data) { LOG_MMC(("tc0190fmc_write, offset: %04x, data: %02x\n", offset, data)); @@ -240,7 +240,7 @@ void nes_tc0190fmc_pal16r4_device::hblank_irq( int scanline, int vblank, int bla } } -WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h) +void nes_tc0190fmc_pal16r4_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("tc0190fmc pal16r4 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -256,7 +256,7 @@ WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h) case 0x2001: case 0x2002: case 0x2003: - tc0190fmc_write(space, offset, data, mem_mask); + tc0190fmc_write(offset, data); break; case 0x4000: m_irq_count_latch = (0x100 - data) & 0xff; @@ -291,7 +291,7 @@ WRITE8_MEMBER(nes_tc0190fmc_pal16r4_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_x1_005_device::write_m) +void nes_x1_005_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("x1_005 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -355,14 +355,14 @@ WRITE8_MEMBER(nes_x1_005_device::write_m) m_x1_005_ram[offset & 0x7f] = data; } -READ8_MEMBER(nes_x1_005_device::read_m) +uint8_t nes_x1_005_device::read_m(offs_t offset) { LOG_MMC(("x1_005 read_m, offset: %04x\n", offset)); if (offset >= 0x1f00 && m_latch == 0xa3) return m_x1_005_ram[offset & 0x7f]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } /*------------------------------------------------- @@ -399,7 +399,7 @@ void nes_x1_017_device::set_chr() chr1_x(7 ^ m_latch, m_mmc_vrom_bank[5], CHRROM); } -WRITE8_MEMBER(nes_x1_017_device::write_m) +void nes_x1_017_device::write_m(offs_t offset, uint8_t data) { LOG_MMC(("x1017 write_m, offset: %04x, data: %02x\n", offset, data)); @@ -453,7 +453,7 @@ WRITE8_MEMBER(nes_x1_017_device::write_m) m_x1_017_ram[0x1000 + (offset & 0x3ff)] = data; } -READ8_MEMBER(nes_x1_017_device::read_m) +uint8_t nes_x1_017_device::read_m(offs_t offset) { LOG_MMC(("x1017 read_m, offset: %04x\n", offset)); @@ -465,5 +465,5 @@ READ8_MEMBER(nes_x1_017_device::read_m) if (offset < 0x1400 && m_reg[2] == 0x84) return m_x1_017_ram[0x1000 + (offset & 0x3ff)]; - return m_open_bus; // open bus + return get_open_bus(); // open bus } diff --git a/src/devices/bus/nes/taito.h b/src/devices/bus/nes/taito.h index 8f3ccb2a8ee..b4efa553c86 100644 --- a/src/devices/bus/nes/taito.h +++ b/src/devices/bus/nes/taito.h @@ -16,8 +16,8 @@ public: // construction/destruction nes_tc0190fmc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(tc0190fmc_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { tc0190fmc_write(space, offset, data, mem_mask); } + void tc0190fmc_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { tc0190fmc_write(offset, data); } virtual void pcb_reset() override; @@ -37,7 +37,7 @@ public: // construction/destruction nes_tc0190fmc_pal16r4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -60,8 +60,8 @@ public: // construction/destruction nes_x1_005_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -84,8 +84,8 @@ public: // construction/destruction nes_x1_017_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_m) override; - virtual DECLARE_WRITE8_MEMBER(write_m) override; + virtual uint8_t read_m(offs_t offset) override; + virtual void write_m(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/tengen.cpp b/src/devices/bus/nes/tengen.cpp index 9cef09434a0..f6228685796 100644 --- a/src/devices/bus/nes/tengen.cpp +++ b/src/devices/bus/nes/tengen.cpp @@ -126,7 +126,7 @@ void nes_tengen032_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_tengen008_device::write_h) +void nes_tengen008_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("tengen008 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -240,7 +240,7 @@ void nes_tengen032_device::set_chr() chr_cb(7 ^ chr_page, m_mmc_vrom_bank[5], CHRROM); } -WRITE8_MEMBER(nes_tengen032_device::tengen032_write) +void nes_tengen032_device::tengen032_write(offs_t offset, uint8_t data) { uint8_t helper, cmd; LOG_MMC(("tengen032_write, offset: %04x, data: %02x\n", offset, data)); @@ -359,7 +359,7 @@ void nes_tengen037_device::chr_cb( int start, int bank, int source ) } -WRITE8_MEMBER(nes_tengen037_device::write_h) +void nes_tengen037_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("tengen037 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -369,7 +369,7 @@ WRITE8_MEMBER(nes_tengen037_device::write_h) break; default: - tengen032_write(space, offset, data, mem_mask); + tengen032_write(offset, data); break; } } diff --git a/src/devices/bus/nes/tengen.h b/src/devices/bus/nes/tengen.h index dce41f4fbb4..6d651339f86 100644 --- a/src/devices/bus/nes/tengen.h +++ b/src/devices/bus/nes/tengen.h @@ -14,7 +14,7 @@ public: // construction/destruction nes_tengen008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -32,8 +32,8 @@ public: // construction/destruction nes_tengen032_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(tengen032_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { tengen032_write(space, offset, data, mem_mask); } + void tengen032_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { tengen032_write(offset, data); } virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -74,7 +74,7 @@ public: nes_tengen037_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void chr_cb(int start, int bank, int source) override; protected: diff --git a/src/devices/bus/nes/txc.cpp b/src/devices/bus/nes/txc.cpp index f3ab8efc5f9..4149c6262a3 100644 --- a/src/devices/bus/nes/txc.cpp +++ b/src/devices/bus/nes/txc.cpp @@ -139,7 +139,7 @@ void nes_txc_commandos_device::pcb_reset() -------------------------------------------------*/ -WRITE8_MEMBER(nes_txc_22211_device::write_l) +void nes_txc_22211_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("TXC 22111 write_l, offset: %04x, data: %02x\n", offset, data)); @@ -147,7 +147,7 @@ WRITE8_MEMBER(nes_txc_22211_device::write_l) m_reg[offset & 0x03] = data; } -READ8_MEMBER(nes_txc_22211_device::read_l) +uint8_t nes_txc_22211_device::read_l(offs_t offset) { LOG_MMC(("TXC 22111 read_l, offset: %04x\n", offset)); @@ -157,7 +157,7 @@ READ8_MEMBER(nes_txc_22211_device::read_l) return 0x00; } -WRITE8_MEMBER(nes_txc_22211_device::write_h) +void nes_txc_22211_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("TXC 22111 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -180,7 +180,7 @@ WRITE8_MEMBER(nes_txc_22211_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_txc_dumarc_device::write_h) +void nes_txc_dumarc_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("TXC Du Ma Racing write_h, offset: %04x, data: %02x\n", offset, data)); @@ -203,7 +203,7 @@ WRITE8_MEMBER(nes_txc_dumarc_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_txc_mjblock_device::read_l) +uint8_t nes_txc_mjblock_device::read_l(offs_t offset) { LOG_MMC(("TXC mjblock read_l, offset: %04x\n", offset)); @@ -226,7 +226,7 @@ READ8_MEMBER(nes_txc_mjblock_device::read_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_txc_strikew_device::write_h) +void nes_txc_strikew_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("TXC Strike Wolf write_h, offset: %04x, data: %02x\n", offset, data)); @@ -256,12 +256,12 @@ WRITE8_MEMBER(nes_txc_strikew_device::write_h) -------------------------------------------------*/ -READ8_MEMBER(nes_txc_commandos_device::read_l) +uint8_t nes_txc_commandos_device::read_l(offs_t offset) { return 0x50; } -WRITE8_MEMBER(nes_txc_commandos_device::write_h) +void nes_txc_commandos_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("TXC Commandos write_h, offset: %04x, data: %02x\n", offset, data)); diff --git a/src/devices/bus/nes/txc.h b/src/devices/bus/nes/txc.h index f4b875b51ba..9ad5e2807dc 100644 --- a/src/devices/bus/nes/txc.h +++ b/src/devices/bus/nes/txc.h @@ -16,9 +16,9 @@ public: // construction/destruction nes_txc_22211_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -41,7 +41,7 @@ public: nes_txc_dumarc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -54,7 +54,7 @@ public: nes_txc_mjblock_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_READ8_MEMBER(read_l) override; + virtual uint8_t read_l(offs_t offset) override; }; @@ -66,7 +66,7 @@ public: // construction/destruction nes_txc_strikew_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -84,8 +84,8 @@ public: // construction/destruction nes_txc_commandos_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual uint8_t read_l(offs_t offset) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/waixing.cpp b/src/devices/bus/nes/waixing.cpp index 791779f0a76..3706d64b26e 100644 --- a/src/devices/bus/nes/waixing.cpp +++ b/src/devices/bus/nes/waixing.cpp @@ -433,7 +433,7 @@ void nes_waixing_a1_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, chr_src); } -WRITE8_MEMBER(nes_waixing_a_device::waixing_write) +void nes_waixing_a_device::waixing_write(offs_t offset, uint8_t data) { LOG_MMC(("waixing_write, offset: %04x, data: %02x\n", offset, data)); @@ -447,12 +447,12 @@ WRITE8_MEMBER(nes_waixing_a_device::waixing_write) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } -READ8_MEMBER(nes_waixing_a_device::read_l) +uint8_t nes_waixing_a_device::read_l(offs_t offset) { LOG_MMC(("waixing read_l, offset: %04x\n", offset)); offset += 0x100; @@ -462,7 +462,7 @@ READ8_MEMBER(nes_waixing_a_device::read_l) return 0xff; } -WRITE8_MEMBER(nes_waixing_a_device::write_l) +void nes_waixing_a_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("waixing write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -597,7 +597,7 @@ void nes_waixing_f_device::set_prg( int prg_base, int prg_mask ) prg_cb(3, m_mmc_prg_bank[3]); } -WRITE8_MEMBER(nes_waixing_f_device::write_h) +void nes_waixing_f_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data)); @@ -628,7 +628,7 @@ WRITE8_MEMBER(nes_waixing_f_device::write_h) break; default: - waixing_write(space, offset, data, mem_mask); + waixing_write(offset, data); break; } } @@ -668,7 +668,7 @@ void nes_waixing_g_device::set_chr(uint8_t chr, int chr_base, int chr_mask) chr_cb(chr_page ^ 7, chr_base | (m_mmc_vrom_bank[5] & chr_mask), chr); } -WRITE8_MEMBER(nes_waixing_g_device::write_h) +void nes_waixing_g_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("waixing_g write_h, offset: %04x, data: %02x\n", offset, data)); @@ -699,7 +699,7 @@ WRITE8_MEMBER(nes_waixing_g_device::write_h) break; default: - waixing_write(space, offset, data, mem_mask); + waixing_write(offset, data); break; } } @@ -731,7 +731,7 @@ void nes_waixing_h_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_waixing_h_device::write_h) +void nes_waixing_h_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("waixing_h write_h, offset: %04x, data: %02x\n", offset, data)); @@ -767,12 +767,12 @@ WRITE8_MEMBER(nes_waixing_h_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } -WRITE8_MEMBER(nes_waixing_h1_device::write_h) +void nes_waixing_h1_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("waixing_h1 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -805,7 +805,7 @@ WRITE8_MEMBER(nes_waixing_h1_device::write_h) break; default: - txrom_write(space, offset, data, mem_mask); + txrom_write(offset, data); break; } } @@ -832,7 +832,7 @@ void nes_waixing_j_device::set_prg( int prg_base, int prg_mask ) prg_cb(3, m_reg[3]); } -WRITE8_MEMBER(nes_waixing_j_device::write_h) +void nes_waixing_j_device::write_h(offs_t offset, uint8_t data) { uint8_t cmd; LOG_MMC(("waixing_f write_h, offset: %04x, data: %02x\n", offset, data)); @@ -862,7 +862,7 @@ WRITE8_MEMBER(nes_waixing_j_device::write_h) // break; default: - waixing_write(space, offset, data, mem_mask); + waixing_write(offset, data); break; } } @@ -887,7 +887,7 @@ void nes_waixing_sh2_device::chr_cb(int start, int bank, int source) chr4_4(m_reg[1], m_reg[1] ? CHRRAM : CHRROM); } -READ8_MEMBER(nes_waixing_sh2_device::chr_r) +uint8_t nes_waixing_sh2_device::chr_r(offs_t offset) { int bank = offset >> 10; uint8_t val = m_chr_access[bank][offset & 0x3ff]; // this would be usual return value @@ -940,7 +940,7 @@ void nes_waixing_sec_device::chr_cb(int start, int bank, int source) chr1_x(start, bank, source); } -WRITE8_MEMBER(nes_waixing_sec_device::write_l) +void nes_waixing_sec_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("waixing_sec write_l, offset: %04x, data: %02x\n", offset, data)); offset += 0x100; @@ -979,7 +979,7 @@ void nes_waixing_sgz_device::hblank_irq(int scanline, int vblank, int blanked) } } -WRITE8_MEMBER(nes_waixing_sgz_device::write_h) +void nes_waixing_sgz_device::write_h(offs_t offset, uint8_t data) { uint8_t helper, bank; LOG_MMC(("waixing_sgz write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1047,7 +1047,7 @@ WRITE8_MEMBER(nes_waixing_sgz_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l) +void nes_waixing_sgzlz_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("waixing_sgzlz write_l, offset: %04x, data: %02x\n", offset, data)); if (offset >= 0x700 && offset <= 0xEFF) @@ -1112,7 +1112,7 @@ WRITE8_MEMBER(nes_waixing_sgzlz_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_ffv_device::write_l) +void nes_waixing_ffv_device::write_l(offs_t offset, uint8_t data) { uint8_t helper; LOG_MMC(("waixing_ffv write_l, offset: %04x, data: %02x\n", offset, data)); @@ -1161,7 +1161,7 @@ WRITE8_MEMBER(nes_waixing_ffv_device::write_l) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_wxzs_device::write_h) +void nes_waixing_wxzs_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("waixing_zs write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1191,7 +1191,7 @@ WRITE8_MEMBER(nes_waixing_wxzs_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_dq8_device::write_h) +void nes_waixing_dq8_device::write_h(offs_t offset, uint8_t data) { LOG_MMC(("waixing_dq8 write_h, offset: %04x, data: %02x\n", offset, data)); @@ -1212,7 +1212,7 @@ WRITE8_MEMBER(nes_waixing_dq8_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_wxzs2_device::write_h) +void nes_waixing_wxzs2_device::write_h(offs_t offset, uint8_t data) { uint8_t flip = (data & 0x80) >> 7; uint8_t helper = (data & 0x7f) << 1; @@ -1265,7 +1265,7 @@ WRITE8_MEMBER(nes_waixing_wxzs2_device::write_h) -------------------------------------------------*/ -WRITE8_MEMBER(nes_waixing_fs304_device::write_l) +void nes_waixing_fs304_device::write_l(offs_t offset, uint8_t data) { LOG_MMC(("fs304 write_l, offset: %04x, data: %02x\n", offset, data)); int bank; diff --git a/src/devices/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h index 5488973a14c..bb6fcaf831a 100644 --- a/src/devices/bus/nes/waixing.h +++ b/src/devices/bus/nes/waixing.h @@ -16,10 +16,10 @@ public: // construction/destruction nes_waixing_a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(read_l) override; - virtual DECLARE_WRITE8_MEMBER(write_l) override; - virtual DECLARE_WRITE8_MEMBER(waixing_write); - virtual DECLARE_WRITE8_MEMBER(write_h) override { waixing_write(space, offset, data, mem_mask); } + virtual uint8_t read_l(offs_t offset) override; + virtual void write_l(offs_t offset, uint8_t data) override; + virtual void waixing_write(offs_t offset, uint8_t data); + virtual void write_h(offs_t offset, uint8_t data) override { waixing_write(offset, data); } virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; @@ -109,7 +109,7 @@ public: nes_waixing_f_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -129,7 +129,7 @@ public: nes_waixing_g_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; @@ -155,7 +155,7 @@ protected: nes_waixing_h_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; }; @@ -168,7 +168,7 @@ public: nes_waixing_h1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // device-level overrides - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; // This variant does not ignore the wram protect! }; @@ -194,7 +194,7 @@ public: // construction/destruction nes_waixing_j_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -217,7 +217,7 @@ public: // device-level overrides virtual void device_start() override; - virtual DECLARE_READ8_MEMBER(chr_r) override; + virtual uint8_t chr_r(offs_t offset) override; virtual void chr_cb(int start, int bank, int source) override; virtual void pcb_reset() override; @@ -235,7 +235,7 @@ public: // construction/destruction nes_waixing_sec_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void prg_cb(int start, int bank) override; virtual void chr_cb(int start, int bank, int source) override; @@ -257,7 +257,7 @@ public: // construction/destruction nes_waixing_sgz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void hblank_irq(int scanline, int vblank, int blanked) override; virtual void pcb_reset() override; @@ -281,7 +281,7 @@ public: // construction/destruction nes_waixing_sgzlz_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -301,7 +301,7 @@ public: // construction/destruction nes_waixing_ffv_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -321,7 +321,7 @@ public: // construction/destruction nes_waixing_wxzs_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -339,7 +339,7 @@ public: // construction/destruction nes_waixing_dq8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -357,7 +357,7 @@ public: // construction/destruction nes_waixing_wxzs2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; @@ -375,7 +375,7 @@ public: // construction/destruction nes_waixing_fs304_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_WRITE8_MEMBER(write_l) override; + virtual void write_l(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; diff --git a/src/devices/bus/nes/zemina.cpp b/src/devices/bus/nes/zemina.cpp index bb4b3b61bc0..22741967572 100644 --- a/src/devices/bus/nes/zemina.cpp +++ b/src/devices/bus/nes/zemina.cpp @@ -80,7 +80,7 @@ void nes_zemina_device::pcb_reset() write -------------------------------------------------*/ -WRITE8_MEMBER(nes_zemina_device::write_h) +void nes_zemina_device::write_h(offs_t offset, uint8_t data) { LOG_MMC("zemina write_h, offset: %04x, data: %02x\n", offset, data); diff --git a/src/devices/bus/nes/zemina.h b/src/devices/bus/nes/zemina.h index 87d170d053d..752c7f1382d 100644 --- a/src/devices/bus/nes/zemina.h +++ b/src/devices/bus/nes/zemina.h @@ -20,7 +20,7 @@ public: // device-level overrides virtual void device_start() override; - virtual DECLARE_WRITE8_MEMBER(write_h) override; + virtual void write_h(offs_t offset, uint8_t data) override; virtual void pcb_reset() override; }; diff --git a/src/devices/sound/vrc6.cpp b/src/devices/sound/vrc6.cpp index e632cce1cdb..29729fc9fcc 100644 --- a/src/devices/sound/vrc6.cpp +++ b/src/devices/sound/vrc6.cpp @@ -218,7 +218,7 @@ void vrc6snd_device::sound_stream_update(sound_stream &stream, stream_sample_t * // write - write to the chip's registers //--------------------------------------- -WRITE8_MEMBER( vrc6snd_device::write ) +void vrc6snd_device::write(offs_t offset, uint8_t data) { switch (offset >> 8) { diff --git a/src/devices/sound/vrc6.h b/src/devices/sound/vrc6.h index dbcd5152c3b..a24d34a90c4 100644 --- a/src/devices/sound/vrc6.h +++ b/src/devices/sound/vrc6.h @@ -24,7 +24,7 @@ public: // construction/destruction vrc6snd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_WRITE8_MEMBER(write); + void write(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/mame/drivers/nes.cpp b/src/mame/drivers/nes.cpp index 34acda1dcef..090834d40db 100644 --- a/src/mame/drivers/nes.cpp +++ b/src/mame/drivers/nes.cpp @@ -165,21 +165,21 @@ void nes_state::setup_disk(nes_disksys_device *slot) address_space &space = m_maincpu->space(AS_PROGRAM); // Set up memory handlers - space.install_read_handler(0x4020, 0x40ff, read8_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot)); - space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot)); - space.install_read_handler(0x4100, 0x5fff, read8_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot)); - space.install_write_handler(0x4100, 0x5fff, write8_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot)); - space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot)); - space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot)); - space.install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot)); - space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot)); + space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_disksys_device::read_ex), (nes_disksys_device *)slot)); + space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_disksys_device::write_ex), (nes_disksys_device *)slot)); + space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(device_nes_cart_interface::read_l), (device_nes_cart_interface *)slot)); + space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(device_nes_cart_interface::write_l), (device_nes_cart_interface *)slot)); + space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_disksys_device::read_m), (nes_disksys_device *)slot)); + space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_disksys_device::write_m), (nes_disksys_device *)slot)); + space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_disksys_device::read_h), (nes_disksys_device *)slot)); + space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_disksys_device::write_h), (nes_disksys_device *)slot)); slot->vram_alloc(0x2000); slot->prgram_alloc(0x8000); slot->pcb_start(machine(), m_ciram.get(), false); - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot)); - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),(device_nes_cart_interface *)slot)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),(device_nes_cart_interface *)slot), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),(device_nes_cart_interface *)slot)); m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),(device_nes_cart_interface *)slot)); m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(nes_disksys_device::hblank_irq),(nes_disksys_device *)slot)); m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),(device_nes_cart_interface *)slot)); diff --git a/src/mame/machine/nes.cpp b/src/mame/machine/nes.cpp index 9adc870ed8e..7b15384293e 100644 --- a/src/mame/machine/nes.cpp +++ b/src/mame/machine/nes.cpp @@ -55,18 +55,18 @@ void nes_state::machine_start() if (m_cartslot && m_cartslot->m_cart) { // Set up memory handlers - space.install_read_handler(0x4100, 0x5fff, read8_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot)); - space.install_write_handler(0x4100, 0x5fff, write8_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot)); - space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot)); - space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot)); + space.install_read_handler(0x4100, 0x5fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_l), (nes_cart_slot_device *)m_cartslot)); + space.install_write_handler(0x4100, 0x5fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_l), (nes_cart_slot_device *)m_cartslot)); + space.install_read_handler(0x6000, 0x7fff, read8sm_delegate(FUNC(nes_cart_slot_device::read_m), (nes_cart_slot_device *)m_cartslot)); + space.install_write_handler(0x6000, 0x7fff, write8sm_delegate(FUNC(nes_cart_slot_device::write_m), (nes_cart_slot_device *)m_cartslot)); space.install_read_bank(0x8000, 0x9fff, "prg0"); space.install_read_bank(0xa000, 0xbfff, "prg1"); space.install_read_bank(0xc000, 0xdfff, "prg2"); space.install_read_bank(0xe000, 0xffff, "prg3"); - space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot)); + space.install_write_handler(0x8000, 0xffff, write8sm_delegate(FUNC(nes_cart_slot_device::write_h), (nes_cart_slot_device *)m_cartslot)); - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart)); - m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(FUNC(device_nes_cart_interface::chr_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::chr_w),m_cartslot->m_cart)); + m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(FUNC(device_nes_cart_interface::nt_r),m_cartslot->m_cart), write8sm_delegate(FUNC(device_nes_cart_interface::nt_w),m_cartslot->m_cart)); m_ppu->set_scanline_callback(ppu2c0x_device::scanline_delegate(FUNC(device_nes_cart_interface::scanline_irq),m_cartslot->m_cart)); m_ppu->set_hblank_callback(ppu2c0x_device::hblank_delegate(FUNC(device_nes_cart_interface::hblank_irq),m_cartslot->m_cart)); m_ppu->set_latch(ppu2c0x_device::latch_delegate(FUNC(device_nes_cart_interface::ppu_latch),m_cartslot->m_cart)); @@ -82,20 +82,20 @@ void nes_state::machine_start() || m_cartslot->get_pcb_id() == BMC_70IN1 || m_cartslot->get_pcb_id() == BMC_800IN1) { logerror("read_h installed!\n"); - space.install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot)); + space.install_read_handler(0x8000, 0xffff, read8sm_delegate(FUNC(nes_cart_slot_device::read_h), (nes_cart_slot_device *)m_cartslot)); } if (m_cartslot->get_pcb_id() == BTL_SMB2JB || m_cartslot->get_pcb_id() == UNL_AC08 || m_cartslot->get_pcb_id() == UNL_SMB2J || m_cartslot->get_pcb_id() == BTL_09034A) { logerror("write_ex installed!\n"); - space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot)); + space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot)); } if (m_cartslot->get_pcb_id() == KAISER_KS7017 || m_cartslot->get_pcb_id() == UNL_603_5052 || m_cartslot->get_pcb_id() == STD_DISKSYS) { logerror("write_ex & read_ex installed!\n"); - space.install_read_handler(0x4020, 0x40ff, read8_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot)); - space.install_write_handler(0x4020, 0x40ff, write8_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot)); + space.install_read_handler(0x4020, 0x40ff, read8sm_delegate(FUNC(nes_cart_slot_device::read_ex), (nes_cart_slot_device *)m_cartslot)); + space.install_write_handler(0x4020, 0x40ff, write8sm_delegate(FUNC(nes_cart_slot_device::write_ex), (nes_cart_slot_device *)m_cartslot)); } m_cartslot->pcb_start(m_ciram.get()); From d4370f150dc811b15a66111a98352b16a066e1fe Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 19:59:38 -0500 Subject: [PATCH 41/42] bus/cgenie/expansion, bus/einstein/pipe, bus/nasbus, bus/spectrum, bus/vtech: Install spaces through finders (nw) --- .../bus/cgenie/expansion/expansion.cpp | 22 +--------- src/devices/bus/cgenie/expansion/expansion.h | 8 ++-- src/devices/bus/einstein/pipe/pipe.cpp | 44 ++++++++++--------- src/devices/bus/einstein/pipe/pipe.h | 9 ++-- src/devices/bus/einstein/pipe/tk02.cpp | 3 -- src/devices/bus/nasbus/nasbus.cpp | 22 +--------- src/devices/bus/nasbus/nasbus.h | 8 ++-- src/devices/bus/spectrum/exp.cpp | 28 +++++++----- src/devices/bus/spectrum/exp.h | 5 ++- src/devices/bus/spectrum/fuller.cpp | 2 - src/devices/bus/spectrum/intf1.cpp | 2 - src/devices/bus/spectrum/melodik.cpp | 2 - src/devices/bus/spectrum/uslot.cpp | 2 - src/devices/bus/vtech/ioexp/ioexp.cpp | 11 +---- src/devices/bus/vtech/ioexp/ioexp.h | 4 +- src/devices/bus/vtech/memexp/floppy.cpp | 3 -- src/devices/bus/vtech/memexp/memexp.cpp | 44 ++++++++++--------- src/devices/bus/vtech/memexp/memexp.h | 9 ++-- src/mame/drivers/cgenie.cpp | 6 +-- src/mame/drivers/einstein.cpp | 6 +-- src/mame/drivers/nascom1.cpp | 18 ++------ src/mame/drivers/spec128.cpp | 17 +++---- src/mame/drivers/specpls3.cpp | 7 +-- src/mame/drivers/spectrum.cpp | 4 +- src/mame/drivers/timex.cpp | 12 ++--- src/mame/drivers/vtech1.cpp | 32 +++++--------- src/mame/drivers/vtech2.cpp | 2 +- src/mame/includes/spectrum.h | 2 - src/mame/machine/vtech2.cpp | 3 -- 29 files changed, 125 insertions(+), 212 deletions(-) diff --git a/src/devices/bus/cgenie/expansion/expansion.cpp b/src/devices/bus/cgenie/expansion/expansion.cpp index 366b1513aca..3a7665f7c2b 100644 --- a/src/devices/bus/cgenie/expansion/expansion.cpp +++ b/src/devices/bus/cgenie/expansion/expansion.cpp @@ -30,8 +30,8 @@ DEFINE_DEVICE_TYPE(CG_EXP_SLOT, cg_exp_slot_device, "cg_exp_slot", "Colour Genie cg_exp_slot_device::cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, CG_EXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), - m_program(nullptr), - m_io(nullptr), + m_program(*this, finder_base::DUMMY_TAG, -1), + m_io(*this, finder_base::DUMMY_TAG, -1), m_cart(nullptr), m_int_handler(*this), m_nmi_handler(*this), @@ -67,24 +67,6 @@ void cg_exp_slot_device::device_reset() { } -//------------------------------------------------- -// set_program_space - set address space we are attached to -//------------------------------------------------- - -void cg_exp_slot_device::set_program_space(address_space *program) -{ - m_program = program; -} - -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void cg_exp_slot_device::set_io_space(address_space *io) -{ - m_io = io; -} - //************************************************************************** // CARTRIDGE INTERFACE diff --git a/src/devices/bus/cgenie/expansion/expansion.h b/src/devices/bus/cgenie/expansion/expansion.h index 86c4d42d41f..3f61b275c19 100644 --- a/src/devices/bus/cgenie/expansion/expansion.h +++ b/src/devices/bus/cgenie/expansion/expansion.h @@ -64,8 +64,8 @@ public: cg_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~cg_exp_slot_device(); - void set_program_space(address_space *program); - void set_io_space(address_space *io); + template void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward(tag), spacenum); } + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } // callbacks auto int_handler() { return m_int_handler.bind(); } @@ -77,8 +77,8 @@ public: DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } DECLARE_WRITE_LINE_MEMBER( reset_w ) { m_reset_handler(state); } - address_space *m_program; - address_space *m_io; + required_address_space m_program; + required_address_space m_io; protected: // device-level overrides diff --git a/src/devices/bus/einstein/pipe/pipe.cpp b/src/devices/bus/einstein/pipe/pipe.cpp index b40038e650b..d521d146325 100644 --- a/src/devices/bus/einstein/pipe/pipe.cpp +++ b/src/devices/bus/einstein/pipe/pipe.cpp @@ -33,8 +33,8 @@ DEFINE_DEVICE_TYPE(TATUNG_PIPE, tatung_pipe_device, "tatung_pipe", "Tatung Pipe tatung_pipe_device::tatung_pipe_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, TATUNG_PIPE, tag, owner, clock), device_slot_interface(mconfig, *this), - m_program(nullptr), - m_io(nullptr), + m_program(*this, finder_base::DUMMY_TAG, -1), + m_io(*this, finder_base::DUMMY_TAG, -1), m_card(nullptr), m_int_handler(*this), m_nmi_handler(*this), @@ -50,6 +50,28 @@ tatung_pipe_device::~tatung_pipe_device() { } +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void tatung_pipe_device::device_config_complete() +{ + // for passthrough connectors, use the parent slot's spaces + if (dynamic_cast(owner()) != nullptr) + { + auto parent = dynamic_cast(owner()->owner()); + if (parent != nullptr) + { + if (m_program.finder_tag() == finder_base::DUMMY_TAG) + m_program.set_tag(parent->m_program, parent->m_program.spacenum()); + if (m_io.finder_tag() == finder_base::DUMMY_TAG) + m_io.set_tag(parent->m_io, parent->m_io.spacenum()); + } + } +} + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -83,24 +105,6 @@ WRITE_LINE_MEMBER( tatung_pipe_device::host_int_w ) m_card->int_w(state); } -//------------------------------------------------- -// set_program_space - set address space we are attached to -//------------------------------------------------- - -void tatung_pipe_device::set_program_space(address_space *program) -{ - m_program = program; -} - -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void tatung_pipe_device::set_io_space(address_space *io) -{ - m_io = io; -} - //************************************************************************** // CARD INTERFACE diff --git a/src/devices/bus/einstein/pipe/pipe.h b/src/devices/bus/einstein/pipe/pipe.h index e0ce7e9a6f7..f0c32bd0043 100644 --- a/src/devices/bus/einstein/pipe/pipe.h +++ b/src/devices/bus/einstein/pipe/pipe.h @@ -68,8 +68,8 @@ public: } virtual ~tatung_pipe_device(); - void set_program_space(address_space *program); - void set_io_space(address_space *io); + template void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward(tag), spacenum); } + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } // callbacks auto int_handler() { return m_int_handler.bind(); } @@ -86,11 +86,12 @@ public: protected: // device-level overrides + virtual void device_config_complete() override; virtual void device_start() override; virtual void device_reset() override; - address_space *m_program; - address_space *m_io; + required_address_space m_program; + required_address_space m_io; device_tatung_pipe_interface *m_card; diff --git a/src/devices/bus/einstein/pipe/tk02.cpp b/src/devices/bus/einstein/pipe/tk02.cpp index d0926f2e320..311c3099011 100644 --- a/src/devices/bus/einstein/pipe/tk02.cpp +++ b/src/devices/bus/einstein/pipe/tk02.cpp @@ -159,9 +159,6 @@ void tk02_device::device_start() void tk02_device::device_reset() { - m_pipe->set_io_space(&io_space()); - m_pipe->set_program_space(&program_space()); - io_space().install_device(0x40, 0x4f, *this, &tk02_device::map); io_space().install_readwrite_handler(0x40, 0x47, 0, 0, 0xff00, read8_delegate(FUNC(tk02_device::ram_r), this), write8_delegate(FUNC(tk02_device::ram_w), this)); } diff --git a/src/devices/bus/nasbus/nasbus.cpp b/src/devices/bus/nasbus/nasbus.cpp index 817e486af8f..ed6cf27bc7a 100644 --- a/src/devices/bus/nasbus/nasbus.cpp +++ b/src/devices/bus/nasbus/nasbus.cpp @@ -61,8 +61,8 @@ DEFINE_DEVICE_TYPE(NASBUS, nasbus_device, "nasbus", "NASBUS Backplane") nasbus_device::nasbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, NASBUS, tag, owner, clock), - m_program(nullptr), - m_io(nullptr), + m_program(*this, finder_base::DUMMY_TAG, -1), + m_io(*this, finder_base::DUMMY_TAG, -1), m_ram_disable_handler(*this) { } @@ -104,24 +104,6 @@ void nasbus_device::add_card(device_nasbus_card_interface *card) m_dev.append(*card); } -//------------------------------------------------- -// set_program_space - set address space we are attached to -//------------------------------------------------- - -void nasbus_device::set_program_space(address_space *program) -{ - m_program = program; -} - -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void nasbus_device::set_io_space(address_space *io) -{ - m_io = io; -} - // callbacks from slot device to the host WRITE_LINE_MEMBER( nasbus_device::ram_disable_w ) { m_ram_disable_handler(state); } diff --git a/src/devices/bus/nasbus/nasbus.h b/src/devices/bus/nasbus/nasbus.h index bdeb39a879f..c2c11e2db9a 100644 --- a/src/devices/bus/nasbus/nasbus.h +++ b/src/devices/bus/nasbus/nasbus.h @@ -149,8 +149,8 @@ public: void add_card(device_nasbus_card_interface *card); - void set_program_space(address_space *program); - void set_io_space(address_space *io); + template void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward(tag), spacenum); } + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } // from cards DECLARE_WRITE_LINE_MEMBER( ram_disable_w ); @@ -161,8 +161,8 @@ protected: virtual void device_reset() override; private: - address_space *m_program; - address_space *m_io; + required_address_space m_program; + required_address_space m_io; simple_list m_dev; diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp index 73e1d4a3a9a..2c8f86f6a9d 100644 --- a/src/devices/bus/spectrum/exp.cpp +++ b/src/devices/bus/spectrum/exp.cpp @@ -43,7 +43,7 @@ device_spectrum_expansion_interface::device_spectrum_expansion_interface(const m spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, SPECTRUM_EXPANSION_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), - m_io(nullptr), + m_io(*this, finder_base::DUMMY_TAG, -1), m_card(nullptr), m_irq_handler(*this), m_nmi_handler(*this) @@ -51,6 +51,23 @@ spectrum_expansion_slot_device::spectrum_expansion_slot_device(const machine_con } +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void spectrum_expansion_slot_device::device_config_complete() +{ + // for passthrough connectors, use the parent slot's I/O space + if (m_io.finder_tag() == finder_base::DUMMY_TAG && dynamic_cast(owner()) != nullptr) + { + auto parent = dynamic_cast(owner()->owner()); + if (parent != nullptr) + m_io.set_tag(parent->m_io, parent->m_io.spacenum()); + } +} + //------------------------------------------------- // device_validity_check - device-specific checks //------------------------------------------------- @@ -86,15 +103,6 @@ void spectrum_expansion_slot_device::device_reset() { } -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void spectrum_expansion_slot_device::set_io_space(address_space *io) -{ - m_io = io; -} - //------------------------------------------------- // port_fe_r //------------------------------------------------- diff --git a/src/devices/bus/spectrum/exp.h b/src/devices/bus/spectrum/exp.h index 1d8eb5f21f2..a20308fd12d 100644 --- a/src/devices/bus/spectrum/exp.h +++ b/src/devices/bus/spectrum/exp.h @@ -69,7 +69,7 @@ public: spectrum_expansion_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock = 0); - void set_io_space(address_space *io); + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } // callbacks auto irq_handler() { return m_irq_handler.bind(); } @@ -83,10 +83,11 @@ public: DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_handler(state); } DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_handler(state); } - address_space *m_io; + required_address_space m_io; protected: // device-level overrides + virtual void device_config_complete() override; virtual void device_validity_check(validity_checker &valid) const override; virtual void device_start() override; virtual void device_reset() override; diff --git a/src/devices/bus/spectrum/fuller.cpp b/src/devices/bus/spectrum/fuller.cpp index bf3630dc9ff..1fa96a92071 100644 --- a/src/devices/bus/spectrum/fuller.cpp +++ b/src/devices/bus/spectrum/fuller.cpp @@ -90,8 +90,6 @@ void spectrum_fuller_device::device_start() void spectrum_fuller_device::device_reset() { - m_exp->set_io_space(&io_space()); - io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target())); io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target())); io_space().install_read_handler(0x7f, 0x7f, 0, 0xff00, 0, read8_delegate(FUNC(spectrum_fuller_device::joystick_r), this)); diff --git a/src/devices/bus/spectrum/intf1.cpp b/src/devices/bus/spectrum/intf1.cpp index d324e931e2c..f95da3cfa36 100644 --- a/src/devices/bus/spectrum/intf1.cpp +++ b/src/devices/bus/spectrum/intf1.cpp @@ -93,8 +93,6 @@ void spectrum_intf1_device::device_start() void spectrum_intf1_device::device_reset() { - m_exp->set_io_space(&io_space()); - m_romcs = 0; } diff --git a/src/devices/bus/spectrum/melodik.cpp b/src/devices/bus/spectrum/melodik.cpp index 0a7e04371fe..2de5ab7797a 100644 --- a/src/devices/bus/spectrum/melodik.cpp +++ b/src/devices/bus/spectrum/melodik.cpp @@ -66,8 +66,6 @@ void spectrum_melodik_device::device_start() void spectrum_melodik_device::device_reset() { - m_exp->set_io_space(&io_space()); - io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target())); io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target())); } diff --git a/src/devices/bus/spectrum/uslot.cpp b/src/devices/bus/spectrum/uslot.cpp index d2d75d6a72c..3e25046e506 100644 --- a/src/devices/bus/spectrum/uslot.cpp +++ b/src/devices/bus/spectrum/uslot.cpp @@ -64,8 +64,6 @@ void spectrum_uslot_device::device_start() void spectrum_uslot_device::device_reset() { - m_exp1->set_io_space(&io_space()); - m_exp2->set_io_space(&io_space()); } diff --git a/src/devices/bus/vtech/ioexp/ioexp.cpp b/src/devices/bus/vtech/ioexp/ioexp.cpp index c2916a0ba14..897b0dba95b 100644 --- a/src/devices/bus/vtech/ioexp/ioexp.cpp +++ b/src/devices/bus/vtech/ioexp/ioexp.cpp @@ -30,7 +30,7 @@ DEFINE_DEVICE_TYPE(VTECH_IOEXP_SLOT, vtech_ioexp_slot_device, "vtech_ioexp_slot" vtech_ioexp_slot_device::vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, VTECH_IOEXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), - m_io(nullptr), + m_io(*this, finder_base::DUMMY_TAG, -1), m_cart(nullptr) { } @@ -59,15 +59,6 @@ void vtech_ioexp_slot_device::device_reset() { } -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void vtech_ioexp_slot_device::set_io_space(address_space *io) -{ - m_io = io; -} - //************************************************************************** // CARTRIDGE INTERFACE diff --git a/src/devices/bus/vtech/ioexp/ioexp.h b/src/devices/bus/vtech/ioexp/ioexp.h index 0c2a3d2d431..9a78f861478 100644 --- a/src/devices/bus/vtech/ioexp/ioexp.h +++ b/src/devices/bus/vtech/ioexp/ioexp.h @@ -54,14 +54,14 @@ public: vtech_ioexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vtech_ioexp_slot_device(); - void set_io_space(address_space *io); + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } protected: // device-level overrides virtual void device_start() override; virtual void device_reset() override; - address_space *m_io; + required_address_space m_io; device_vtech_ioexp_interface *m_cart; }; diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp index bf7a3175594..5807588ec27 100644 --- a/src/devices/bus/vtech/memexp/floppy.cpp +++ b/src/devices/bus/vtech/memexp/floppy.cpp @@ -107,9 +107,6 @@ void vtech_floppy_controller_device::device_start() void vtech_floppy_controller_device::device_reset() { - m_memexp->set_io_space(&io_space()); - m_memexp->set_program_space(&program_space()); - program_space().install_rom(0x4000, 0x5fff, memregion("software")->base()); io_space().install_device(0x10, 0x1f, *this, &vtech_floppy_controller_device::map); diff --git a/src/devices/bus/vtech/memexp/memexp.cpp b/src/devices/bus/vtech/memexp/memexp.cpp index e7f61e5d048..90f51da7345 100644 --- a/src/devices/bus/vtech/memexp/memexp.cpp +++ b/src/devices/bus/vtech/memexp/memexp.cpp @@ -30,8 +30,8 @@ DEFINE_DEVICE_TYPE(VTECH_MEMEXP_SLOT, vtech_memexp_slot_device, "vtech_memexp_sl vtech_memexp_slot_device::vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, VTECH_MEMEXP_SLOT, tag, owner, clock), device_slot_interface(mconfig, *this), - m_program(nullptr), - m_io(nullptr), + m_program(*this, finder_base::DUMMY_TAG, -1), + m_io(*this, finder_base::DUMMY_TAG, -1), m_cart(nullptr), m_int_handler(*this), m_nmi_handler(*this), @@ -47,6 +47,28 @@ vtech_memexp_slot_device::~vtech_memexp_slot_device() { } +//------------------------------------------------- +// device_config_complete - perform any +// operations now that the configuration is +// complete +//------------------------------------------------- + +void vtech_memexp_slot_device::device_config_complete() +{ + // for passthrough connectors, use the parent slot's spaces + if (dynamic_cast(owner()) != nullptr) + { + auto parent = dynamic_cast(owner()->owner()); + if (parent != nullptr) + { + if (m_program.finder_tag() == finder_base::DUMMY_TAG) + m_program.set_tag(parent->m_program, parent->m_program.spacenum()); + if (m_io.finder_tag() == finder_base::DUMMY_TAG) + m_io.set_tag(parent->m_io, parent->m_io.spacenum()); + } + } +} + //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- @@ -67,24 +89,6 @@ void vtech_memexp_slot_device::device_reset() { } -//------------------------------------------------- -// set_program_space - set address space we are attached to -//------------------------------------------------- - -void vtech_memexp_slot_device::set_program_space(address_space *program) -{ - m_program = program; -} - -//------------------------------------------------- -// set_io_space - set address space we are attached to -//------------------------------------------------- - -void vtech_memexp_slot_device::set_io_space(address_space *io) -{ - m_io = io; -} - //************************************************************************** // CARTRIDGE INTERFACE diff --git a/src/devices/bus/vtech/memexp/memexp.h b/src/devices/bus/vtech/memexp/memexp.h index 097036bfd92..ca096075e90 100644 --- a/src/devices/bus/vtech/memexp/memexp.h +++ b/src/devices/bus/vtech/memexp/memexp.h @@ -61,8 +61,8 @@ public: vtech_memexp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~vtech_memexp_slot_device(); - void set_program_space(address_space *program); - void set_io_space(address_space *io); + template void set_program_space(T &&tag, int spacenum) { m_program.set_tag(std::forward(tag), spacenum); } + template void set_io_space(T &&tag, int spacenum) { m_io.set_tag(std::forward(tag), spacenum); } // callbacks auto int_handler() { return m_int_handler.bind(); } @@ -76,11 +76,12 @@ public: protected: // device-level overrides + virtual void device_config_complete() override; virtual void device_start() override; virtual void device_reset() override; - address_space *m_program; - address_space *m_io; + required_address_space m_program; + required_address_space m_io; device_vtech_memexp_interface *m_cart; diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp index 6e61298660a..b8728da66b5 100644 --- a/src/mame/drivers/cgenie.cpp +++ b/src/mame/drivers/cgenie.cpp @@ -306,10 +306,6 @@ void cgenie_state::machine_start() { // setup ram m_maincpu->space(AS_PROGRAM).install_ram(0x4000, 0x4000 + m_ram->size() - 1, m_ram->pointer()); - - // setup expansion bus - m_exp->set_program_space(&m_maincpu->space(AS_PROGRAM)); - m_exp->set_io_space(&m_maincpu->space(AS_IO)); } @@ -480,6 +476,8 @@ void cgenie_state::cgenie(machine_config &config) // cartridge expansion slot CG_EXP_SLOT(config, m_exp); + m_exp->set_program_space(m_maincpu, AS_PROGRAM); + m_exp->set_io_space(m_maincpu, AS_IO); m_exp->int_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // parallel slot diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp index 093d47bcb0b..6e1834edb2e 100644 --- a/src/mame/drivers/einstein.cpp +++ b/src/mame/drivers/einstein.cpp @@ -390,10 +390,6 @@ void einstein_state::machine_start() m_bank1->configure_entry(1, m_bios->base()); m_bank2->set_base(m_ram->pointer()); m_bank3->set_base(m_ram->pointer() + 0x8000); - - // setup expansion slot - m_pipe->set_program_space(&m_maincpu->space(AS_PROGRAM)); - m_pipe->set_io_space(&m_maincpu->space(AS_IO)); } void einstein_state::machine_reset() @@ -674,6 +670,8 @@ void einstein_state::einstein(machine_config &config) // tatung pipe connector TATUNG_PIPE(config, m_pipe, XTAL_X002 / 2, tatung_pipe_cards, nullptr); + m_pipe->set_program_space(m_maincpu, AS_PROGRAM); + m_pipe->set_io_space(m_maincpu, AS_IO); m_pipe->nmi_handler().set_inputline(IC_I001, INPUT_LINE_NMI); // user port diff --git a/src/mame/drivers/nascom1.cpp b/src/mame/drivers/nascom1.cpp index 27a3e13c8c2..588cb5d126b 100644 --- a/src/mame/drivers/nascom1.cpp +++ b/src/mame/drivers/nascom1.cpp @@ -120,7 +120,6 @@ public: void nascom2(machine_config &config); void nascom2c(machine_config &config); - void init_nascom2(); void init_nascom2c(); private: @@ -394,15 +393,6 @@ void nascom2_state::machine_reset() m_maincpu->set_state_int(Z80_PC, m_lsw1->read() << 12); } -void nascom2_state::init_nascom2() -{ - init_nascom(); - - // setup nasbus - m_nasbus->set_program_space(&m_maincpu->space(AS_PROGRAM)); - m_nasbus->set_io_space(&m_maincpu->space(AS_IO)); -} - // since we don't know for which regions we should disable ram, we just let other devices // overwrite the region they need, and re-install our ram when they are disabled WRITE_LINE_MEMBER( nascom2_state::ram_disable_w ) @@ -418,10 +408,6 @@ void nascom2_state::init_nascom2c() { // install memory m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x0000 + m_ram->size() - 1, m_ram->pointer()); - - // setup nasbus - m_nasbus->set_program_space(&m_maincpu->space(AS_PROGRAM)); - m_nasbus->set_io_space(&m_maincpu->space(AS_IO)); } WRITE_LINE_MEMBER( nascom2_state::ram_disable_cpm_w ) @@ -764,6 +750,8 @@ void nascom2_state::nascom2(machine_config &config) // nasbus expansion bus nasbus_device &nasbus(NASBUS(config, NASBUS_TAG)); nasbus.ram_disable().set(FUNC(nascom2_state::ram_disable_w)); + nasbus.set_program_space(m_maincpu, AS_PROGRAM); + nasbus.set_io_space(m_maincpu, AS_IO); NASBUS_SLOT(config, "nasbus1", nasbus_slot_cards, nullptr); NASBUS_SLOT(config, "nasbus2", nasbus_slot_cards, nullptr); NASBUS_SLOT(config, "nasbus3", nasbus_slot_cards, nullptr); @@ -848,5 +836,5 @@ ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS COMP( 1978, nascom1, 0, 0, nascom1, nascom1, nascom1_state, init_nascom, "Nascom Microcomputers", "Nascom 1", MACHINE_NO_SOUND_HW ) -COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, init_nascom2, "Nascom Microcomputers", "Nascom 2", MACHINE_NO_SOUND_HW ) +COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, init_nascom, "Nascom Microcomputers", "Nascom 2", MACHINE_NO_SOUND_HW ) COMP( 1980, nascom2c, nascom2, 0, nascom2c, nascom2c, nascom2_state, init_nascom2c, "Nascom Microcomputers", "Nascom 2 (CP/M)", MACHINE_NO_SOUND_HW ) diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp index 8da68cafa73..dc57b656b0f 100644 --- a/src/mame/drivers/spec128.cpp +++ b/src/mame/drivers/spec128.cpp @@ -250,12 +250,6 @@ void spectrum_state::spectrum_128_mem(address_map &map) map(0xc000, 0xffff).bankrw("bank4"); } -void spectrum_state::init_spec128() -{ - // setup expansion slot - m_exp->set_io_space(&m_maincpu->space(AS_IO)); -} - MACHINE_RESET_MEMBER(spectrum_state,spectrum_128) { uint8_t *messram = m_ram->pointer(); @@ -319,6 +313,7 @@ void spectrum_state::spectrum_128(machine_config &config) /* expansion port */ SPECTRUM_EXPANSION_SLOT(config.replace(), m_exp, spec128_expansion_devices, nullptr); + m_exp->set_io_space(m_maincpu, AS_IO); m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); @@ -380,8 +375,8 @@ ROM_START(hc2000) ROMX_LOAD("hc2000.v2", 0x14000,0x4000, CRC(65d90464) SHA1(5e2096e6460ff2120c8ada97579fdf82c1199c09), ROM_BIOS(1)) ROM_END -// YEAR NAME PARENT COMPAT MACHINE CLASS STATE INIT COMPANY FULLNAME FLAGS -COMP( 1986, spec128, 0, 0, spectrum_128, spec128, spectrum_state, init_spec128, "Sinclair Research Ltd", "ZX Spectrum 128", 0 ) -COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "Amstrad plc", "ZX Spectrum +2", 0 ) -COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "ICE-Felix", "HC-128", 0 ) -COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, spectrum_state, init_spec128, "ICE-Felix", "HC-2000", MACHINE_NOT_WORKING ) +// YEAR NAME PARENT COMPAT MACHINE CLASS STATE INIT COMPANY FULLNAME FLAGS +COMP( 1986, spec128, 0, 0, spectrum_128, spec128, spectrum_state, empty_init, "Sinclair Research Ltd", "ZX Spectrum 128", 0 ) +COMP( 1986, specpls2, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "Amstrad plc", "ZX Spectrum +2", 0 ) +COMP( 1991, hc128, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "ICE-Felix", "HC-128", 0 ) +COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, spectrum_state, empty_init, "ICE-Felix", "HC-2000", MACHINE_NOT_WORKING ) diff --git a/src/mame/drivers/specpls3.cpp b/src/mame/drivers/specpls3.cpp index 13c28e1fa65..64b4695360b 100644 --- a/src/mame/drivers/specpls3.cpp +++ b/src/mame/drivers/specpls3.cpp @@ -341,17 +341,11 @@ MACHINE_RESET_MEMBER(spectrum_state,spectrum_plus3) void spectrum_state::init_plus3() { m_floppy = 1; - - // setup expansion slot - m_exp->set_io_space(&m_maincpu->space(AS_IO)); } void spectrum_state::init_plus2() { m_floppy = 0; - - // setup expansion slot - m_exp->set_io_space(&m_maincpu->space(AS_IO)); } static void specpls3_floppies(device_slot_interface &device) @@ -396,6 +390,7 @@ void spectrum_state::spectrum_plus3(machine_config &config) FLOPPY_CONNECTOR(config, "upd765:1", specpls3_floppies, "3ssdd", floppy_image_device::default_floppy_formats); SPECTRUM_EXPANSION_SLOT(config.replace(), m_exp, specpls3_expansion_devices, nullptr); + m_exp->set_io_space(m_maincpu, AS_IO); m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); diff --git a/src/mame/drivers/spectrum.cpp b/src/mame/drivers/spectrum.cpp index ccd29d7cc45..4a7bec87583 100644 --- a/src/mame/drivers/spectrum.cpp +++ b/src/mame/drivers/spectrum.cpp @@ -617,9 +617,6 @@ void spectrum_state::init_spectrum() case 16*1024: space.install_ram(0x5b00, 0x7fff, nullptr); } - - // setup expansion slot - m_exp->set_io_space(&m_maincpu->space(AS_IO)); } MACHINE_RESET_MEMBER(spectrum_state,spectrum) @@ -699,6 +696,7 @@ void spectrum_state::spectrum_common(machine_config &config) /* expansion port */ SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, "kempjoy"); + m_exp->set_io_space(m_maincpu, AS_IO); m_exp->irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_exp->nmi_handler().set_inputline(m_maincpu, INPUT_LINE_NMI); diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp index ae0d2d29549..561c41193b0 100644 --- a/src/mame/drivers/timex.cpp +++ b/src/mame/drivers/timex.cpp @@ -583,12 +583,6 @@ void spectrum_state::tc2048_mem(address_map &map) map(0x4000, 0xffff).bankr("bank1").bankw("bank2"); } -void spectrum_state::init_timex() -{ - // setup expansion slot - m_exp->set_io_space(&m_maincpu->space(AS_IO)); -} - MACHINE_RESET_MEMBER(spectrum_state,tc2048) { uint8_t *messram = m_ram->pointer(); @@ -784,6 +778,6 @@ ROM_START(uk2086) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, spectrum_state, init_timex, "Timex of Portugal", "TC-2048" , 0 ) -COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, spectrum_state, init_timex, "Timex Sinclair", "TS-2068" , 0 ) -COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, spectrum_state, init_timex, "Unipolbrit", "UK-2086 ver. 1.2" , 0 ) +COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, spectrum_state, empty_init, "Timex of Portugal", "TC-2048" , 0 ) +COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, spectrum_state, empty_init, "Timex Sinclair", "TS-2068" , 0 ) +COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, spectrum_state, empty_init, "Unipolbrit", "UK-2086 ver. 1.2" , 0 ) diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp index ad26a417244..05b3252abc6 100644 --- a/src/mame/drivers/vtech1.cpp +++ b/src/mame/drivers/vtech1.cpp @@ -83,7 +83,6 @@ public: void laser110(machine_config &config); void laser210(machine_config &config); - void init_vtech1(); void init_vtech1h(); private: @@ -280,18 +279,8 @@ READ8_MEMBER( vtech1_state::mc6847_videoram_r ) DRIVER INIT ***************************************************************************/ -void vtech1_state::init_vtech1() -{ - // setup expansion slots - m_ioexp->set_io_space(&m_maincpu->space(AS_IO)); - m_memexp->set_program_space(&m_maincpu->space(AS_PROGRAM)); - m_memexp->set_io_space(&m_maincpu->space(AS_IO)); -} - void vtech1_state::init_vtech1h() { - init_vtech1(); - // the SHRG mod replaces the standard videoram chip with an 8k chip m_videoram.allocate(0x2000); @@ -463,7 +452,10 @@ void vtech1_state::laser110(machine_config &config) // peripheral and memory expansion slots VTECH_IOEXP_SLOT(config, m_ioexp); + m_ioexp->set_io_space(m_maincpu, AS_IO); VTECH_MEMEXP_SLOT(config, m_memexp); + m_memexp->set_program_space(m_maincpu, AS_PROGRAM); + m_memexp->set_io_space(m_maincpu, AS_IO); // snapshot snapshot_image_device &snapshot(SNAPSHOT(config, "snapshot", 0)); @@ -574,13 +566,13 @@ ROM_END ***************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 110", 0 ) -COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 200", 0 ) -COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING ) -COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Salora", "Fellow (Finland)", 0 ) -COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, init_vtech1, "Texet", "TX-8000 (UK)", 0 ) -COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 210", 0 ) -COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, init_vtech1, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 ) -COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, init_vtech1, "Video Technology", "Laser 310", 0 ) -COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, init_vtech1, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 ) +COMP( 1983, laser110, 0, 0, laser110, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 110", 0 ) +COMP( 1983, laser200, 0, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 200", 0 ) +COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING ) +COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Salora", "Fellow (Finland)", 0 ) +COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, empty_init, "Texet", "TX-8000 (UK)", 0 ) +COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 210", 0 ) +COMP( 1984, vz200, laser210, 0, laser210, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-200 (Oceania)", 0 ) +COMP( 1984, laser310, 0, 0, laser310, vtech1, vtech1_state, empty_init, "Video Technology", "Laser 310", 0 ) +COMP( 1984, vz300, laser310, 0, laser310, vtech1, vtech1_state, empty_init, "Dick Smith Electronics", "VZ-300 (Oceania)", 0 ) COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, init_vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL ) diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp index 751ae7b0fda..6f724b3f2f4 100644 --- a/src/mame/drivers/vtech2.cpp +++ b/src/mame/drivers/vtech2.cpp @@ -518,7 +518,7 @@ MACHINE_CONFIG_START(vtech2_state::laser350) m_cassette->set_formats(vtech2_cassette_formats); m_cassette->set_default_state(CASSETTE_PLAY); - VTECH_IOEXP_SLOT(config, "io"); + VTECH_IOEXP_SLOT(config, "io").set_io_space(m_maincpu, AS_IO); /* cartridge */ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "vtech_cart") diff --git a/src/mame/includes/spectrum.h b/src/mame/includes/spectrum.h index 9ace2a689fc..4a48fb41772 100644 --- a/src/mame/includes/spectrum.h +++ b/src/mame/includes/spectrum.h @@ -107,8 +107,6 @@ public: void spectrum_128(machine_config &config); void init_spectrum(); - void init_spec128(); - void init_timex(); void init_plus2(); void init_plus3(); diff --git a/src/mame/machine/vtech2.cpp b/src/mame/machine/vtech2.cpp index 8f5be7013b8..494044db80b 100644 --- a/src/mame/machine/vtech2.cpp +++ b/src/mame/machine/vtech2.cpp @@ -43,9 +43,6 @@ void vtech2_state::init_laser() // check ROM expansion std::string region_tag; m_cart_rom = memregion(region_tag.assign(m_cart->tag()).append(GENERIC_ROM_REGION_TAG).c_str()); - - // setup expansion slot - m_ioexp->set_io_space(&m_maincpu->space(AS_IO)); } From b46ab2b76723070542ad4d7869c8685b72e11017 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 25 Feb 2019 20:30:34 -0500 Subject: [PATCH 42/42] bus/acorn: Replace CPU finder with required_address_space (nw) --- src/devices/bus/acorn/bus.cpp | 2 +- src/devices/bus/acorn/bus.h | 6 +++--- src/mame/drivers/acrnsys.cpp | 10 +++++----- src/mame/drivers/cms.cpp | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/devices/bus/acorn/bus.cpp b/src/devices/bus/acorn/bus.cpp index ed759be82af..2ecb509c30f 100644 --- a/src/devices/bus/acorn/bus.cpp +++ b/src/devices/bus/acorn/bus.cpp @@ -80,7 +80,7 @@ DEFINE_DEVICE_TYPE(ACORN_BUS, acorn_bus_device, "acorn_bus", "Acorn Bus") acorn_bus_device::acorn_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, ACORN_BUS, tag, owner, clock) - , m_maincpu(*this, finder_base::DUMMY_TAG) + , m_space(*this, finder_base::DUMMY_TAG, -1) , m_out_irq_cb(*this) , m_out_nmi_cb(*this) { diff --git a/src/devices/bus/acorn/bus.h b/src/devices/bus/acorn/bus.h index 9ebcafdad73..149da10d447 100644 --- a/src/devices/bus/acorn/bus.h +++ b/src/devices/bus/acorn/bus.h @@ -64,11 +64,11 @@ public: acorn_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration - template void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } + template void set_space(T &&tag, int spacenum) { m_space.set_tag(std::forward(tag), spacenum); } auto out_irq_callback() { return m_out_irq_cb.bind(); } auto out_nmi_callback() { return m_out_nmi_cb.bind(); } - address_space &memspace() const { return m_maincpu->space(AS_PROGRAM); } + address_space &memspace() const { return *m_space; } DECLARE_WRITE_LINE_MEMBER(irq_w); DECLARE_WRITE_LINE_MEMBER(nmi_w); @@ -81,7 +81,7 @@ protected: virtual void device_reset() override; // internal state - required_device m_maincpu; + required_address_space m_space; devcb_write_line m_out_irq_cb; devcb_write_line m_out_nmi_cb; diff --git a/src/mame/drivers/acrnsys.cpp b/src/mame/drivers/acrnsys.cpp index f24b1a4f120..e7dcea8a45a 100644 --- a/src/mame/drivers/acrnsys.cpp +++ b/src/mame/drivers/acrnsys.cpp @@ -437,7 +437,7 @@ void acrnsys_state::acrnsys2(machine_config &config) /* Acorn Bus - 8 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff @@ -461,7 +461,7 @@ void acrnsys_state::acrnsys3(machine_config &config) /* Acorn Bus - 8 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff @@ -485,7 +485,7 @@ void acrnsys_state::acrnsys3_6809(machine_config &config) /* Acorn Bus - 8 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x0000-0x1fff @@ -508,7 +508,7 @@ void acrnsys_state::acrnsys4(machine_config &config) /* Acorn Bus - 14 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "8k"); // 0x2000-0x3fff @@ -538,7 +538,7 @@ void acrnsys_state::acrnsys5(machine_config &config) /* Acorn Bus - 7 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(acrnsys_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, acorn_bus_devices, "32k"); // 32K diff --git a/src/mame/drivers/cms.cpp b/src/mame/drivers/cms.cpp index 4d9090a0577..02283669b7d 100644 --- a/src/mame/drivers/cms.cpp +++ b/src/mame/drivers/cms.cpp @@ -276,7 +276,7 @@ void cms_state::cms6502(machine_config &config) /* 7 Slot Backplane */ ACORN_BUS(config, m_bus, 0); - m_bus->set_cputag(m_maincpu); + m_bus->set_space(m_maincpu, AS_PROGRAM); m_bus->out_irq_callback().set(m_irqs, FUNC(input_merger_device::in_w<1>)); m_bus->out_nmi_callback().set(FUNC(cms_state::bus_nmi_w)); ACORN_BUS_SLOT(config, "bus1", m_bus, cms_bus_devices, "4080term");