From 17ed97f020d4c3eab2c0688bd59b6dc9d4d5609f Mon Sep 17 00:00:00 2001 From: negunma <97546439+negunma@users.noreply.github.com> Date: Sun, 21 Apr 2024 01:43:09 +0900 Subject: [PATCH 01/46] nmk/nmk16.cpp: Updated comments to note that Many Block is a hack of Slot Gal. (#12280) --- src/mame/nmk/nmk16.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mame/nmk/nmk16.cpp b/src/mame/nmk/nmk16.cpp index 7e0185c7879a9..198a180c678b0 100644 --- a/src/mame/nmk/nmk16.cpp +++ b/src/mame/nmk/nmk16.cpp @@ -4,7 +4,7 @@ /******************************************************************** Task Force Harrier 1989 UPL 68000 Z80 YM2203 2xOKIM6295 -Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295 (hack of "Jewels" by UPL) +Many Block 1991 Bee-Oh 68000 Z80 YM2203 2xOKIM6295 (hack of "Slot Gal" by UPL) Mustang 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 Bio-ship Paladin 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 Vandyke 1990 UPL 68000 NMK004 YM2203 2xOKIM6295 @@ -152,7 +152,7 @@ Questions / Notes 'manybloc' : - - This is a bootleg / hack of Jewels by UPL + - This is a bootleg / hack of Slot Gal by UPL - The MCU code was patched to use standard IO, it may be running code that is no longer used. - There are writes to 0x080010.w and 0x080012.w (MCU ?) in code between 0x005000 to 0x005690, but I see no call to "main" routine at 0x005504 ! From ee43d4c3e7211368c492467e3fa61f372fdf323d Mon Sep 17 00:00:00 2001 From: ArcadeShadow Date: Sat, 20 Apr 2024 17:47:27 +0100 Subject: [PATCH 02/46] =?UTF-8?q?oric1=5Fcass.xml=20Added=20Rodm=C3=A4n.?= =?UTF-8?q?=20(#12279)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New working software list items (oric1_cass.xml) -------------------------------------------- Rodmän [Mika Keranen] --- hash/oric1_cass.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hash/oric1_cass.xml b/hash/oric1_cass.xml index 7ea75a07c8389..9fac2e2767e96 100644 --- a/hash/oric1_cass.xml +++ b/hash/oric1_cass.xml @@ -3710,6 +3710,18 @@ The cassette stops during the game loading + + Rodmän + 2021 + The Future Was 8 Bit + + + + + + + + Roland Garros 1985 From 17a2c15253fa5e05fc24b4051e1a6846576eaf77 Mon Sep 17 00:00:00 2001 From: ArcadeShadow Date: Sat, 20 Apr 2024 17:53:59 +0100 Subject: [PATCH 03/46] spectrum_cass.xml: Added 31 working items (30 working). (#12268) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Removed duplicate Ghostly Grange Triple Decker (System 4). * Also improved some metadata and parent/clone relationships. New working software list items (spectrum_cass.xml) -------------------------------------------- Anti-Lune [Michael Bruhn / Planeta Sinclair] Black & White [Spectrum Computing] Cálculo de Areas e Volumes [Planeta Sinclair] Cálculo de Estrutura Tronco-Cónicas [Planeta Sinclair] Box Reloaded [Spectrum Computing] Editor Musical [El Trastero del Spectrum] Flunky (Zafi Chip) [Spectrum Computing] Foguetão [Planeta Sinclair] Geografia de Portugal (Astor) [Planeta Sinclair] GP Motocross [Spectrum Computing] Juego de Damas [El Trastero del Spectrum] La Balada del Duende [El Trastero del Spectrum] La Isla Maldita [El Trastero del Spectrum] Left Behind: Escape From Mars [Spectrum Computing] Mad Cars [Spectrum Computing] Mad Mix Game & The Pepsi Challenge (Portuguese) [Planeta Sinclair] O Segredo dos Templários (TAP tape image) [Planeta Sinclair] Pot-Pourri [Spectrum Computing] Pro Golf II (System 4, alt) [Planeta Sinclair] Pssst (Nuova Newel Software) [Planeta Sinclair] Pssst + Jetpac + Kucharik [Planeta Sinclair] Quest for the Sacred Flame of Hestia [Spectrum Computing] Rodmän [Misfit] Sachy Psion + Reversi + Backgammon [Planeta Sinclair] Space Racer [Spectrum Computing] Starblazer [Planeta Sinclair] Stop Virus (demo) [Spectrum Computing] Tabela Periódica [Planeta Sinclair] Tabela Periódica (fast version hack) [Planeta Sinclair] Tokimal (demo) [Pat Morita Team] New NOT working software list addition (spectrum_cass.xml) -------------------------------------------- O Segredo dos Templários (TZX tape image) [Spectrum Computing] Software list item promoted to working (spectrum_cass.xml) -------------------------------------------- Prioridade Em Cruzamentos --- hash/spectrum_cass.xml | 2224 ++++++++++++++++++++++++---------------- 1 file changed, 1365 insertions(+), 859 deletions(-) diff --git a/hash/spectrum_cass.xml b/hash/spectrum_cass.xml index 27b0e0581cccf..c566ae8602547 100644 --- a/hash/spectrum_cass.xml +++ b/hash/spectrum_cass.xml @@ -1758,6 +1758,21 @@ Run on TC 2048 or ZX Spectrum + + Anti-Lune + 1984 + Informatique Service + + + + + + + + + + + Antiquity Jones (v1.2, TZX tape image) 2012 @@ -2642,6 +2657,18 @@ no loading screen, no custom loader + + Box Reloaded + 2010 + Beyker Soft + + + + + + + + Brainache 1987 @@ -2846,6 +2873,17 @@ no loading screen, no custom loader + + Black & White + 2020 + Pat Morita Team + + + + + + + Black Beard 1988 @@ -2984,7 +3022,7 @@ no loading screen, no custom loader Bruce Lee (set 8, Erbe) 19?? - Erbe software + Erbe Software @@ -6713,7 +6751,7 @@ no loading screen, no custom loader Cobra (Erbe, small case) 1986 - Erbe software + Erbe Software @@ -11373,7 +11411,7 @@ Expects you to press a key after the title screen appears, or it will miss the n Ghost Hunt 1983 - Personal Software Services Ltd + Personal Software Services @@ -11403,11 +11441,10 @@ Expects you to press a key after the title screen appears, or it will miss the n - Gulpman (Aackosoft) - 19?? - Campbell Systems / Aackosoft + 1982 + Aackosoft @@ -11417,8 +11454,8 @@ Expects you to press a key after the title screen appears, or it will miss the n Gulpman (Profisoft) - 19?? - Campbell Systems / Profisoft + 1982 + Profisoft @@ -11428,8 +11465,8 @@ Expects you to press a key after the title screen appears, or it will miss the n Gulpman (Micromega) - 19?? - Campbell Systems / Micromega + 1983 + Micromega @@ -11472,17 +11509,6 @@ Expects you to press a key after the title screen appears, or it will miss the n - - Gun Law (Aackosoft) - 1983 - Aackosoft - - - - - - - Golden Axe 1990 @@ -11987,7 +12013,7 @@ Expects you to press a key after the title screen appears, or it will miss the n Gloop (Cronosoft) 2003 - Jonathan Cauldwell / Cronosoft + Cronosoft @@ -12504,6 +12530,18 @@ Expects you to press a key after the title screen appears, or it will miss the n + + GP Motocross + 1985 + Ventamatic + + + + + + + + The Great Escape (set 1) 1986 @@ -13480,7 +13518,7 @@ Expects you to press a key after the title screen appears, or it will miss the n Hacker 2 (Mastertronic) 1987 - Activision Inc / Mastertronic + Mastertronic @@ -16486,7 +16524,7 @@ Side B: Laser Shoot (original release) La Diosa de Cozumel (Retro Gamer edition) 2013 Axel Springer / Matra Computer Automations - + @@ -20654,7 +20692,7 @@ Side B: Laser Shoot (original release) Ordidactic (multi-format) 19?? - Ere Informatique + ERE Informatique @@ -21026,11 +21064,13 @@ Side B: Laser Shoot (original release) - + Prioridade Em Cruzamentos 1985 Astor Software + + @@ -21335,11 +21375,11 @@ Side B: Laser Shoot (original release) - Pssst 1983 Ultimate Play The Game + On tape twice @@ -21347,10 +21387,10 @@ Side B: Laser Shoot (original release) - + Pssst (Sinclair) 1983 - Ultimate / Sinclair + Sinclair Research @@ -21358,6 +21398,30 @@ Side B: Laser Shoot (original release) + + Pssst (Nuova Newel Software) + 198? + Nuova Newel Software + + + + + + + + + + Pssst + Jetpac + Kucharik + 19?? + Didaktik + + + + + + + + Pi-R Squared 1987 @@ -21395,7 +21459,7 @@ Side B: Laser Shoot (original release) Pod (Centipedes) 1983 - Euro-Byte Ltd + Euro-Byte @@ -24292,7 +24356,7 @@ Side B: Laser Shoot (original release) Red Heat (Erbe) 1989 - Erbe + Erbe Software @@ -25222,6 +25286,16 @@ Side B: Laser Shoot (original release) + + Stop Virus (demo) + 2021 + PC NONO Games + + + + + + Spellbound (Beyond) @@ -25266,6 +25340,18 @@ Side B: Laser Shoot (original release) + + Starblazer + 1983 + Arnsvik-Data + + + + + + + + Starblitz 1984 @@ -26025,9 +26111,10 @@ Side B: Laser Shoot (original release) - SDI - Strategic Defence Initiative + SDI - Now the Odds Are Even 1988 Activision + @@ -27784,50 +27871,6 @@ Side B: Laser Shoot (original release) - - Sector (release 2) - 2013 - RetroSouls - - - - - - - - - Sector (release 1) - 2013 - RetroSouls - - - - - - - - - Sector: Invasion (TZX tape image) - 2014 - RetroSouls - - - - - - - - - Sector: Invasion (TAP tape image) - 2014 - RetroSouls - - - - - - - SolarGun (v1.0) 2016 @@ -28191,7 +28234,7 @@ Side B: Laser Shoot (original release) - SIP - Special Intergalactic Painter (TZX tape image) + S.I.P. - Special Intergalactic Painter (TZX tape image) 2014 RetroSouls @@ -28202,7 +28245,7 @@ Side B: Laser Shoot (original release) - SIP - Special Intergalactic Painter (TAP tape image) + S.I.P. - Special Intergalactic Painter (TAP tape image) 2014 RetroSouls @@ -28865,7 +28908,7 @@ Side B: Laser Shoot (original release) Turbo Outrun (Erbe) 1989 - Erbe software + Erbe Software @@ -28952,7 +28995,7 @@ Side B: Laser Shoot (original release) Tempest (Proein) 1987 - Electric Dreams Software + Proein Soft Line @@ -28962,8 +29005,8 @@ Side B: Laser Shoot (original release) Tempest (Ricochet) - 19?? - <unknown> + 1987 + Ricochet @@ -28988,7 +29031,7 @@ Side B: Laser Shoot (original release) - Tempest (Mikro-Gen) (Development Tape) + Tempest (Mikro-Gen) (development tape) 1983 Mikro-Gen @@ -29995,8 +30038,8 @@ Side B: Laser Shoot (original release) The Untouchables (alt) - 19?? - <unknown> + 1989 + Ocean @@ -39721,6 +39764,7 @@ Side B - 9 - Confusion (original release) 1987 Hobby Press + @@ -45365,7 +45409,7 @@ Side B: Once Upon a Lily Pad Alpine Games 1987 - Atlantis + Atlantis Software @@ -45528,25 +45572,27 @@ Side B: Once Upon a Lily Pad - Amazônia (bugfix release) + Amazônia 1985 - Ciberne - + Ciberne Software + + - - + + - Amazônia + Amazônia (bugfix release) 1985 - Ciberne - + Ciberne Software + + - - + + @@ -46779,7 +46825,7 @@ Side B: Once Upon a Lily Pad Aqua Squad 1988 - Atlantis + Atlantis Software @@ -48632,7 +48678,7 @@ Side B: Once Upon a Lily Pad Axe 1987 - Top Ten + Top Ten Software @@ -55284,10 +55330,36 @@ Side B: Once Upon a Lily Pad + + Cálculo de Areas e Volumes + 1985 + Astor Software + + + + + + + + + + + Cálculo de Estrutura Tronco-Cónicas + 1985 + Astor Software + + + + + + + + + Calendar - 19?? - <unknown> + 1987 + Chezron Software (within e-magazine Outlet issue 4) @@ -56682,7 +56754,7 @@ Side B: Once Upon a Lily Pad Caverns of Kontonia 1986 - Atlantis + Atlantis Software @@ -58057,7 +58129,7 @@ Side B: Once Upon a Lily Pad Chinese Patience (Zafiro) 1985 - Atlantis + Atlantis Software @@ -60209,7 +60281,7 @@ Only side B works Connect 4 1984 - Atlantis + Atlantis Software @@ -61160,7 +61232,7 @@ Only side B works Count About 1983 - Longman + Longman Software @@ -61575,7 +61647,7 @@ Only side B works Crack Up 1989 - Atlantis + Atlantis Software @@ -62387,7 +62459,7 @@ Only side B works Crossfire (Atlantis) 1989 - Atlantis + Atlantis Software @@ -63862,7 +63934,7 @@ Side A doesn't work. The Colditz Story 1987 - Atlantis + Atlantis Software @@ -65124,7 +65196,7 @@ Side A doesn't work. Dawnssley 1987 - Top Ten + Top Ten Software @@ -67008,23 +67080,23 @@ Side A doesn't work. - Dick Tracy (Proein) + Dick Tracy 1990 - Proein Soft Line + Titus - - + + - Dick Tracy - 19?? - <unknown> + Dick Tracy (Proein) + 1990 + Proein Soft Line - - + + @@ -67448,7 +67520,7 @@ Side A doesn't work. Dis-Assembler (Heise Software) 19?? - <unknown> + Heise Software @@ -67562,8 +67634,8 @@ Side A doesn't work. Discovery (CRL) - 19?? - <unknown> + 1988 + CRL Group @@ -67572,23 +67644,23 @@ Side A doesn't work. - Discs of Death (Tynesoft) + Discs of Death 1985 - Tynesoft + Artic Computing - + - Discs of Death - 19?? - <unknown> + Discs of Death (Tynesoft) + 1985 + Tynesoft - + @@ -68518,7 +68590,7 @@ Side A doesn't work. Down Town 1991 - Atlantis + Atlantis Software @@ -68711,20 +68783,20 @@ Side A doesn't work. - Draconus (set 2, alt cover) + Draconus (mastering tape) 1988 Zeppelin Games - - + + Draconus (set 1) - 19?? - <unknown> + 1988 + Zeppelin Games @@ -68732,13 +68804,13 @@ Side A doesn't work. - - Draconus (Mastering Tape) - 19?? - <unknown> + + Draconus (set 2, alt cover) + 1988 + Zeppelin Games - - + + @@ -68775,10 +68847,10 @@ Side A doesn't work. - + Dracula's Castle - 19?? - <unknown> + 1984 + CP Software @@ -69141,7 +69213,7 @@ Side A doesn't work. Draughts (Oasis) 1984 - Oasis + Oasis Software @@ -69149,10 +69221,10 @@ Side A doesn't work. - + Draughts Genius - 19?? - <unknown> + 1987 + Rack-It @@ -69160,32 +69232,32 @@ Side A doesn't work. - - Draughts Master (set 2) - 19?? - <unknown> + + Draughts Master (CP Software) + 1982 + CP Software - - + + - - Draughts Master - 19?? - <unknown> + + Draughts Master (CP Software, alt) + 1982 + CP Software - - + + - - Draughts - 19?? - <unknown> + + Draughts (CRL Group) + 1983 + CRL Group @@ -69194,20 +69266,20 @@ Side A doesn't work. - Draw Master (Aackosoft) + Drawmaster 1983 - Aackosoft + Campbell Systems - - + + - Draw Master (Kellydata) - 19?? - <unknown> + Drawmaster (Kellydata) + 1988 + Kellydata @@ -69216,12 +69288,12 @@ Side A doesn't work. - Draw Master - 19?? - <unknown> + Drawmaster (Aackosoft) + 1983 + Aackosoft - - + + @@ -71221,6 +71293,17 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) + + Editor Musical + 198? + Eyrolles + + + + + + + Editor - Assembler (Profisoft) 1982 @@ -71305,7 +71388,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Eights 1984 - Atlantis + Atlantis Software @@ -71349,7 +71432,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) El Dorado (alt) 1985 - Atlantis + Atlantis Software @@ -71360,7 +71443,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) El Dorado 1985 - Atlantis + Atlantis Software @@ -71429,6 +71512,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) El Poder Oscuro (set 1) 1988 Zigurat Software + @@ -71438,8 +71522,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) El Poder Oscuro (set 2) - 19?? - <unknown> + 1988 + Zigurat Software + @@ -73522,9 +73607,23 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) + Everyone's A Wally (Jackson Soft) + 1985 + Mikro-Gen / Jackson Soft + + + + + + + + + + Everyone's A Wally (Ciberne) - 19?? - <unknown> + 198? + Ciberne Software + @@ -73534,8 +73633,8 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Everyone's A Wally (Alternative) - 19?? - <unknown> + 1987 + Alternative Software @@ -73545,8 +73644,8 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Everyone's A Wally (EDOS) - 19?? - <unknown> + 198? + EDOS @@ -73556,8 +73655,8 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Everyone's A Wally (Sparklers) - 19?? - <unknown> + 1985 + Sparklers @@ -73567,8 +73666,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Everyone's A Wally (System 4) - 19?? - <unknown> + 1988 + System 4 + @@ -73577,9 +73677,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Everyone's A Wally - Release 1 - 19?? - <unknown> + Everyone's A Wally (Mikro-Gen, release 1) + 1985 + Mikro-Gen @@ -73588,9 +73688,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Everyone's A Wally - Release 2 - 19?? - <unknown> + Everyone's A Wally (Mikro-Gen, release 2) + 1985 + Mikro-Gen @@ -73599,9 +73699,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Everyone's A Wally - Release 3 - 19?? - <unknown> + Everyone's A Wally (Mikro-Gen, release 3) + 1985 + Mikro-Gen @@ -73610,9 +73710,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Everyone's A Wally - Release 4 - 19?? - <unknown> + Everyone's A Wally (Mikro-Gen, release 4) + 1985 + Mikro-Gen @@ -75652,7 +75752,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) First Moves 1985 - Longman + Longman Software @@ -76201,10 +76301,23 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) + + Foguetão + 1985 + Astor Software + + + + + + + + + Fol-De-Rol - 19?? - <unknown> + 1984 + Sulis Software @@ -78765,7 +78878,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - The Famous Five + The Famous Five: Five on a Treasure Island 1990 Enigma Variations @@ -79522,7 +79635,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Galaxians (set 3, Al Rushaid) 1982 - Artic Computing Ltd / Al Rushaid + Al Rushaid @@ -79542,9 +79655,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Galaxians (Pset 5, Profisoft) + Galaxians (set 5, Profisoft) 1982 - Artic Computing / Profisoft + Profisoft @@ -79552,7 +79665,6 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Galaxias 1986 @@ -79763,9 +79875,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Garfield - Big, Fat, Hairy Deal (set 2) - 19?? - <unknown> + Garfield - Big, Fat, Hairy Deal (two sides) + 1988 + The Edge @@ -79779,9 +79891,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Garfield - Big, Fat, Hairy Deal - 19?? - <unknown> + Garfield - Big, Fat, Hairy Deal (one side) + 1988 + The Edge @@ -79789,10 +79901,10 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - + Garfield - Winter's Tale - 19?? - <unknown> + 1990 + The Edge @@ -79801,7 +79913,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Gary Lineker's Hot Shot! (set 1) + Gary Lineker's Hot Shot! (Gremlin) 1988 Gremlin Graphics Software @@ -79812,9 +79924,9 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Gary Lineker's Hot Shot! (set 2, Kixx) + Gary Lineker's Hot Shot! (Kixx) 1988 - Gremlin Graphics Software Ltd / Kixx + Kixx @@ -79858,7 +79970,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Gary Lineker's Superskills (Kixx) 1988 - Gremlin Graphics Software Ltd / Kixx + Kixx @@ -79869,7 +79981,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Gas Bill Calculations 19?? - <unknown> + D. Charles @@ -80360,11 +80472,26 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) + + Geografia de Portugal (Astor) + 1984 + Astor Software + + + + + + + + + + - Geografia de Portugal + Geografia de Portugal (Avlisoft) 1985 - <homebrew> + Avlisoft + @@ -80373,10 +80500,11 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Geografia de Portugal (prototype 1) + Geografia de Portugal (Avlisoft, prototype 1) 1985 - <homebrew> + Avlisoft + @@ -80385,11 +80513,11 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) - Geografia de Portugal (prototype 2) + Geografia de Portugal (Avlisoft, prototype 2) 1985 - <homebrew> - Homebrew + Avlisoft + @@ -80942,7 +81070,7 @@ Side B - Game 1: The Dragonstar Trilogy Part III (Delta 4 Software) Go Micro 1984 - Longman + Longman Software @@ -81559,7 +81687,7 @@ Tape 1 - Side B: Gone Missin' 1986 - Excalibur + Excalibur Software @@ -81595,20 +81723,20 @@ Tape 1 - Side B: - Good Luck (Top Ten Software) - 1988 - Top Ten + Good Luck (loading screen) + 1985 + Antonio Carlos Braga Morais Mateus - - + + - Good Luck - Fast - 19?? - <unknown> + Good Luck (fast loader) + 1985 + Antonio Carlos Braga Morais Mateus @@ -81617,12 +81745,12 @@ Tape 1 - Side B: - Good Luck - Loading Screen - 19?? - <unknown> + Good Luck (Top Ten Software) + 1988 + Top Ten Software - - + + @@ -81737,23 +81865,23 @@ Tape 1 - Side B: - Graeme Souness Soccer Manager (EDOS) - 19?? - <unknown> + Graeme Souness Soccer Manager + 1992 + Zeppelin Games - - + + - Graeme Souness Soccer Manager - 19?? - <unknown> + Graeme Souness Soccer Manager (EDOS) + 199? + EDOS - - + + @@ -82358,10 +82486,22 @@ Tape 1 - Side B: + + Gremlins + 1984 + Thor Computer Software + + + + + + + Gremlins - The Adventure (English, set 2) 1985 Adventure International + @@ -82373,6 +82513,7 @@ Tape 1 - Side B: Gremlins - The Adventure (English, set 1) 1985 Adventure International + @@ -82384,6 +82525,7 @@ Tape 1 - Side B: Gremlins - The Adventure (Erbe) 1985 Erbe Software + @@ -82400,6 +82542,7 @@ Tape 1 - Side B: Gremlins - The Adventure (German) 1985 Adventure International + @@ -82407,21 +82550,11 @@ Tape 1 - Side B: - - Gremlins - 19?? - <unknown> - - - - - - - Gremlins 2: The New Batch 1990 Elite Systems + @@ -82433,6 +82566,7 @@ Tape 1 - Side B: Gremlins 2: La Nueva Generacion 1990 Topo Soft + @@ -82444,6 +82578,7 @@ Tape 1 - Side B: Gremlins 2: A Nova Geração 2020 Topo Siglo XXI + @@ -82639,20 +82774,20 @@ Tape 1 - Side B: - Ground Attack (Orion) - 19?? - <unknown> + Ground Attack (release 1) + 1982 + Silversoft - - + + Ground Attack (Paxman) - 19?? - <unknown> + 1982 + Paxman Promotions @@ -82661,20 +82796,20 @@ Tape 1 - Side B: - Ground Attack - Release 1 - 19?? - <unknown> + Ground Attack (Orion) + 198? + Orion - - + + - Ground Attack - Release 2 - 19?? - <unknown> + Ground Attack (release 2) + 1982 + Silversoft @@ -82683,9 +82818,9 @@ Tape 1 - Side B: - Ground Attack - Release 3 - 19?? - <unknown> + Ground Attack (release 3) + 1982 + Silversoft @@ -82851,9 +82986,10 @@ Tape 1 - Side B: - Guillermo Tell (Lightgun) + Guillermo Tell (lightgun) 1989 Opera Soft + @@ -82883,10 +83019,21 @@ Tape 1 - Side B: + + Gun Law (Aackosoft) + 1983 + Aackosoft + + + + + + + Gunfighter 1988 - Atlantis + Atlantis Software @@ -84283,20 +84430,20 @@ Tape 1 - Side B: - Hampstead - Release 1 (set 2) + Hampstead (release 2) 1984 Melbourne House - - + + - Hampstead - Release 1 - 19?? - <unknown> + Hampstead (release 1) + 1984 + Melbourne House @@ -84305,12 +84452,12 @@ Tape 1 - Side B: - Hampstead - Release 2 - 19?? - <unknown> + Hampstead (release 1, alt) + 1984 + Melbourne House - - + + @@ -84894,7 +85041,7 @@ Tape 1 - Side B: Heartbroken 1989 - Atlantis + Atlantis Software @@ -86233,6 +86380,7 @@ Tape 2: Hero Quest: Return of the Witch Lord 1984 Avlisoft + @@ -86309,7 +86457,7 @@ Tape 2: Hero Quest: Return of the Witch Lord Hobgoblin 1991 - Atlantis + Atlantis Software @@ -86644,7 +86792,7 @@ Tape 2: Hero Quest: Return of the Witch Lord - Hopping Mad (set 1) + Hopping Mad 1988 Elite Systems @@ -86655,9 +86803,9 @@ Tape 2: Hero Quest: Return of the Witch Lord - Hopping Mad (set 2, Encore) - 19?? - <unknown> + Hopping Mad (Encore, one side) + 1990 + Encore @@ -86666,9 +86814,9 @@ Tape 2: Hero Quest: Return of the Witch Lord - Hopping Mad (set 3, Encore) - 19?? - <unknown> + Hopping Mad (Encore, two sides) + 1990 + Encore @@ -86682,7 +86830,7 @@ Tape 2: Hero Quest: Return of the Witch Lord - Hopping Mad (set 4, uniMicro) + Hopping Mad (uniMicro) 19?? <unknown> @@ -86886,7 +87034,7 @@ Tape 2: Hero Quest: Return of the Witch Lord Hot Dot Spotter 1983 - Longman + Longman Software @@ -87384,7 +87532,7 @@ Tape 2: Hero Quest: Return of the Witch Lord Hypa Raid 1986 - Atlantis + Atlantis Software @@ -87395,7 +87543,7 @@ Tape 2: Hero Quest: Return of the Witch Lord Hypa Raid (Z Cobra) 1986 - Atlantis + Atlantis Software @@ -88617,6 +88765,7 @@ Game 7: What's Your Name? Simulator (S.H. Eye-Tea Productions, 1994) Ice Breaker 1990 Topo Soft + @@ -89080,7 +89229,7 @@ Game 7: What's Your Name? Simulator (S.H. Eye-Tea Productions, 1994) Inspector Flukeit (Top Ten Software) 1987 - Top Ten + Top Ten Software @@ -92691,6 +92840,7 @@ Created by Mark Jeffries Jeu de Dames 1984 Loriciels + @@ -92704,6 +92854,18 @@ Created by Mark Jeffries + + Juego de Damas + 1984 + Indissoft + + + + + + + + Jewel of Power 1985 @@ -93450,6 +93612,7 @@ Created by Mark Jeffries Perigos na Selva 1983 TMX Portugal Ltda + @@ -95040,7 +95203,7 @@ Created by Mark Jeffries Kosmos 1989 - Atlantis + Atlantis Software @@ -95242,7 +95405,7 @@ Created by Mark Jeffries Kung Fu Knights 1988 - Top Ten + Top Ten Software @@ -95592,6 +95755,8 @@ Created by Mark Jeffries La Ballade du Lutin 1984 Loriciels + + @@ -95599,6 +95764,19 @@ Created by Mark Jeffries + + La Balada del Duende + 1984 + Indissoft + + + + + + + + + La Constitucion Espanola 19?? @@ -96160,9 +96338,10 @@ Created by Mark Jeffries - Laser Wheel + Lazer Wheel 1987 Mastertronic Added Dimension + @@ -96384,7 +96563,7 @@ Created by Mark Jeffries The Last Vampire 1990 - Atlantis + Atlantis Software @@ -96483,7 +96662,7 @@ Created by Mark Jeffries League Challenge 1988 - Atlantis + Atlantis Software @@ -96659,7 +96838,6 @@ Created by Mark Jeffries - Leeds Powerbox 1993 @@ -96672,7 +96850,7 @@ Created by Mark Jeffries - Left And Right + Left and Right 1983 Peak Mathematics @@ -96682,6 +96860,19 @@ Created by Mark Jeffries + + Left Behind: Escape From Mars + 2017 + Dave Hughes + + + + + + + + + Left Right, Left Right 1986 @@ -98352,7 +98543,7 @@ Lacks game introduction, bad dump or alternate version? Loogaroo (set 2) 1988 - Top Ten + Top Ten Software @@ -99326,7 +99517,7 @@ Lacks game introduction, bad dump or alternate version? Lunar Letters 1983 - Longman + Longman Software @@ -99420,6 +99611,8 @@ Lacks game introduction, bad dump or alternate version? L'Ile Maudite 1984 Loriciels + + @@ -99427,6 +99620,24 @@ Lacks game introduction, bad dump or alternate version? + + La Isla Maldita + 1984 + Indissoft + + + + + + + + + + + + + + The L Game (set 1, with Mastermind and Pontoon) 1982 @@ -100319,10 +100530,24 @@ Lacks game introduction, bad dump or alternate version? + + Mad Cars + 1984 + Ventamatic + + + + + + + + + Flunky 1987 Piranha + @@ -100330,10 +100555,12 @@ Lacks game introduction, bad dump or alternate version? - - Mad Flunky (set 1, Alternative) + + Mad Flunky (Alternative) 1987 Alternative Software + + @@ -100341,10 +100568,11 @@ Lacks game introduction, bad dump or alternate version? - - Mad Flunky (set 2, EDOS) - 19?? - <unknown> + + Mad Flunky (EDOS) + 1987 + EDOS + @@ -100352,10 +100580,12 @@ Lacks game introduction, bad dump or alternate version? - - Mad Flunky (set 3, System 4) - 19?? - <unknown> + + Mad Flunky (System 4) + 1988 + System 4 + + @@ -100363,11 +100593,23 @@ Lacks game introduction, bad dump or alternate version? + + Flunky (Zafi Chip) + 1987 + Zafi Chip + + + + + + + Mad'in Ca$hcais 1986 Cascaismicro + @@ -100375,7 +100617,6 @@ Lacks game introduction, bad dump or alternate version? - Mad Martha (release 3) 1983 @@ -100485,28 +100726,28 @@ Lacks game introduction, bad dump or alternate version? - Mad Mix Game - The Pepsi Challenge + Mad Mix Game 1988 - U.S. Gold + Topo Soft - - + + - - Mad Mix Game + + Mad Mix Game - The Pepsi Challenge 1988 - Topo Soft + U.S. Gold - - + + - + Mad Mix Game (IBSA) 1988 IBSA @@ -100517,10 +100758,10 @@ Lacks game introduction, bad dump or alternate version? - + Mad Mix Game (Spectrum + Amstrad dual format) - 198? - <unknown> + 1988 + Topo Soft @@ -100535,10 +100776,10 @@ Lacks game introduction, bad dump or alternate version? - + Mad Mix Game - The Pepsi Challenge (alt) 1988 - US Gold + U.S. Gold @@ -100546,6 +100787,17 @@ Lacks game introduction, bad dump or alternate version? + + Mad Mix Game & The Pepsi Challenge (Portuguese) + 2020 + Topo Siglo XXI + + + + + + + Mad Nurse 1987 @@ -100557,7 +100809,6 @@ Lacks game introduction, bad dump or alternate version? - Madcap Manor (set 1) 1985 @@ -101874,7 +102125,7 @@ Lacks game introduction, bad dump or alternate version? Margana 1983 - Longman + Longman Software @@ -102155,7 +102406,7 @@ Lacks game introduction, bad dump or alternate version? Master And Servant - Loading Screen Fix 1985 - Atlantis + Atlantis Software @@ -102314,7 +102565,7 @@ Lacks game introduction, bad dump or alternate version? Master Mariner 1984 - Atlantis + Atlantis Software @@ -104202,23 +104453,23 @@ Nothing happens after loading the cassette - Metrocross (Kixx) + Metrocross 1987 - Kixx + U.S. Gold - - + + - Metrocross - 19?? - <unknown> + Metrocross (Kixx) + 1987 + Kixx - - + + @@ -105058,20 +105309,9 @@ Nothing happens after loading the cassette - Mig Busters (EDOS) - 1990 - EDOS - - - - - - - - Mig Busters - 19?? - <unknown> + 1990 + Players Premier @@ -105084,6 +105324,17 @@ Nothing happens after loading the cassette + + Mig Busters (EDOS) + 1990 + EDOS + + + + + + + Mike Gunner (Lightgun) 1988 @@ -105096,33 +105347,33 @@ Nothing happens after loading the cassette - Mike Read's Pop Quiz (Encore) - 1990 - Encore + Mike Read's Pop Quiz + 1989 + Elite Systems - + - + - Mike Read's Pop Quiz - 19?? - <unknown> + Mike Read's Pop Quiz (Encore) + 1990 + Encore - + - + @@ -106419,7 +106670,7 @@ Nothing happens after loading the cassette Moontorc 1991 - Atlantis + Atlantis Software @@ -106540,7 +106791,7 @@ Nothing happens after loading the cassette Moron Spaceship 1986 - Atlantis + Atlantis Software @@ -109920,7 +110171,7 @@ Nothing happens after loading the cassette Nifty Lifty (set 2, Currys) 1984 - Visions Software Factory Ltd / Currys + Currys @@ -109979,7 +110230,7 @@ Nothing happens after loading the cassette Nigel Mansell's World Championship 1993 - 1993 + Gremlin Graphics Software @@ -110163,7 +110414,7 @@ Nothing happens after loading the cassette - Nightflite (set 2) Cover + Nightflite (diferent cover) 1982 Hewson Consultants @@ -110175,8 +110426,8 @@ Nothing happens after loading the cassette Nightflite - 19?? - <unknown> + 1982 + Hewson Software @@ -110184,10 +110435,26 @@ Nothing happens after loading the cassette - + + Nightflite 1 (Aackosoft, two sides) + 1982 + Aackosoft + + + + + + + + + + + + + Nightflite II - 19?? - <unknown> + 1983 + Hewson Software @@ -110295,20 +110562,10 @@ Nothing happens after loading the cassette - Nightwing (Zenobi) - 1989 - Zenobi Software - - - - - - - - Nightwing - 19?? - <unknown> + 1989 + Softel + within compilation Nightwing & Solaris @@ -110321,6 +110578,17 @@ Nothing happens after loading the cassette + + Nightwing (Zenobi) + 1989 + Zenobi Software + + + + + + + Nihilist 1987 @@ -110359,17 +110627,6 @@ Nothing happens after loading the cassette - - Ninja (bugfix) - 1987 - Entertainment USA - - - - - - - Ninja Commando 1989 @@ -110382,9 +110639,9 @@ Nothing happens after loading the cassette - Ninja Commando (Mastering Tape) - 19?? - <unknown> + Ninja Commando (master tape) + 1989 + Zeppelin Games @@ -110393,20 +110650,10 @@ Nothing happens after loading the cassette - Ninja Grannies - Demo - 19?? - <unknown> - - - - - - - - Ninja Grannies - 19?? + 1989 <unknown> + @@ -110419,21 +110666,22 @@ Nothing happens after loading the cassette - - Ninja Scooter Simulator (MCM) - 1988 - MCM Software + + Ninja Grannies (demo) + 1989 + <unknown> + - - + + - + Ninja Scooter Simulator - 19?? - <unknown> + 1988 + Silverbird Software @@ -110441,6 +110689,17 @@ Nothing happens after loading the cassette + + Ninja Scooter Simulator (MCM) + 1988 + MCM Software + + + + + + + Ninja 1987 @@ -110452,18 +110711,13 @@ Nothing happens after loading the cassette - - Niteflite 1 (Aackosoft) - 19?? - <unknown> - - - - - - - - + + Ninja (bugfix) + 1987 + Entertainment USA + + + @@ -110649,6 +110903,7 @@ Nothing happens after loading the cassette Nosferatu el Vampiro (Zafiro) 1987 Z Cobra + @@ -110781,7 +111036,7 @@ Nothing happens after loading the cassette Nuclear Countdown 1987 - Atlantis + Atlantis Software @@ -110834,31 +111089,31 @@ Nothing happens after loading the cassette - Number 6 In The Village (Global) - 1989 - Global Games + Number 6 in the Village (Zenobi) + 1987 + Zenobi Software - - + + - Number 6 In The Village (Zenobi) - 19?? - <unknown> + Number 6 in the Village (Global) + 1989 + Global Games - - + + - + Number 6 In The Village - 19?? - <unknown> + 1986 + P.R. Software @@ -110866,24 +111121,24 @@ Nothing happens after loading the cassette - - Number 7 - 16k + + Number 7 1983 Prime - - + + - - Number 7 + + Number 7 (16K) 1983 Prime - - + + @@ -111370,23 +111625,23 @@ Nothing happens after loading the cassette - Obliterator (Dro Soft) + Obliterator 1989 - Dro Soft + Melbourne House - - + + - Obliterator - 19?? - <unknown> + Obliterator (Dro Soft) + 1989 + Dro Soft - - + + @@ -111753,7 +112008,7 @@ Nothing happens after loading the cassette Olympiad '86 1986 - Atlantis + Atlantis Software @@ -111762,23 +112017,23 @@ Nothing happens after loading the cassette - Olympic Challenge (Mind Games España) - 1985 - Mind Games España + Olympic Challenge + 1984 + Century City Software - - + + - Olympic Challenge - 19?? - <unknown> + Olympic Challenge (Mind Games España) + 1985 + Mind Games España - - + + @@ -112229,9 +112484,9 @@ Nothing happens after loading the cassette - One On One (set 1) + One on One (set 1) 1985 - Ariolasoft UK Ltd + Ariolasoft UK @@ -112240,9 +112495,9 @@ Nothing happens after loading the cassette - One On One (set 2, Serma) + One on One (set 2, Serma) 1985 - Ariolasoft UK Ltd / Serma + Serma @@ -112288,7 +112543,7 @@ Nothing happens after loading the cassette Op-Amp 1984 - SciCAL Software Ltd + SciCAL Software @@ -112300,6 +112555,7 @@ Nothing happens after loading the cassette Operacion Conquista 1992 Pepsi Soft + @@ -113200,6 +113456,34 @@ Nothing happens after loading the cassette + + O Segredo dos Templários (TZX tape image) + 1985 + Astor Software + + + + + + + + + + + + O Segredo dos Templários (TAP tape image) + 1985 + Astor Software + + + + + + + + + + O' Level - CSE Chemistry (Calpac Computer Software) 1982 @@ -114735,7 +115019,7 @@ Nothing happens after loading the cassette Periscope Up 1989 - Atlantis + Atlantis Software @@ -116121,7 +116405,7 @@ Nothing happens after loading the cassette Plasma Ball 1989 - Atlantis + Atlantis Software @@ -116464,7 +116748,8 @@ Nothing happens after loading the cassette Podzielnosc Liczb 19?? - <unknown> + Polmer + @@ -116484,31 +116769,31 @@ Nothing happens after loading the cassette - Pogotron (MCM) + Pogotron 1989 - MCM Software + Gamebusters - - + + - Pogotron - 19?? - <unknown> + Pogotron (MCM) + 1989 + MCM Software - - + + Poker (Duckworth) - 19?? - <unknown> + 1985 + Duckworth Educational Computing @@ -117220,7 +117505,7 @@ Nothing happens after loading the cassette Postman Pat's Trail Game 1984 - Longman + Longman Software @@ -117228,6 +117513,24 @@ Nothing happens after loading the cassette + + Pot-Pourri + 1983 + JRS Software + + + + + + + + + Potegi i Pierwiastki 19?? @@ -117823,7 +118126,8 @@ Nothing happens after loading the cassette Pro Golf II 1986 - Atlantis + Atlantis Software + @@ -117831,10 +118135,11 @@ Nothing happens after loading the cassette - + Pro Golf II (System 4) 1986 System 4 + @@ -117842,10 +118147,22 @@ Nothing happens after loading the cassette + + Pro Golf II (System 4, alt) + 1986 + System 4 + + + + + + + + Pro Golf 1986 - Atlantis + Atlantis Software @@ -120224,6 +120541,18 @@ Nothing happens after loading the cassette + + Quest for the Sacred Flame of Hestia + 2019 + Simon Allan Software + + + + + + + + Questprobe featuring The Hulk 1984 @@ -121647,7 +121976,7 @@ Nothing happens after loading the cassette Rattler 1985 - Atlantis + Atlantis Software @@ -123809,6 +124138,7 @@ Nothing happens after loading the cassette Robot Factory 1984 Ventamatic + @@ -123853,7 +124183,7 @@ Nothing happens after loading the cassette Robot Rumpus 1985 - Atlantis + Atlantis Software @@ -123875,7 +124205,7 @@ Nothing happens after loading the cassette Robot Runner 1984 - Longman + Longman Software @@ -123928,8 +124258,8 @@ Nothing happens after loading the cassette Robyn Hode (set 1) - 19?? - <unknown> + 1984 + Runesoft @@ -123944,8 +124274,8 @@ Nothing happens after loading the cassette Robyn Hode (set 2) - 19?? - <unknown> + 1984 + Runesoft @@ -123960,8 +124290,8 @@ Nothing happens after loading the cassette Robyn Hode (set 3) - 19?? - <unknown> + 1984 + Runesoft @@ -123976,8 +124306,8 @@ Nothing happens after loading the cassette Robyn Hode (set 4) - 19?? - <unknown> + 1984 + Runesoft @@ -123992,8 +124322,8 @@ Nothing happens after loading the cassette Robyn Hode (set 5, development build, with The Quill A06) - 19?? - <unknown> + 1984 + Runesoft @@ -124006,8 +124336,6 @@ Nothing happens after loading the cassette - - Rock 'n'Roll 1989 @@ -124094,7 +124422,7 @@ Nothing happens after loading the cassette Rockfall (Top Ten) 1988 - Top Ten + Top Ten Software @@ -124228,7 +124556,19 @@ Nothing happens after loading the cassette - + + Rodmän + 2018 + The Future Was 8 Bit + + + + + + + + + Rodmän (demo) 2018 The Future Was 8 Bit @@ -125784,6 +126124,18 @@ Nothing happens after loading the cassette + + Sachy Psion + Reversi + Backgammon + 19?? + Didaktik + + + + + + + + Sacred Ruby of the Toggalids (set 2) 1984 @@ -125797,8 +126149,8 @@ Nothing happens after loading the cassette Sacred Ruby of the Toggalids - 19?? - <unknown> + 1984 + Goldstar @@ -125808,8 +126160,9 @@ Nothing happens after loading the cassette SAGA - Sprites and Graphic Animator - 19?? - <unknown> + 1984 + Individual Software Service + @@ -126218,7 +126571,7 @@ Nothing happens after loading the cassette Sarlmoor 1986 - Atlantis + Atlantis Software @@ -126366,7 +126719,7 @@ Nothing happens after loading the cassette Satcom 1987 - Atlantis + Atlantis Software @@ -126610,7 +126963,7 @@ Nothing happens after loading the cassette Sceptre of Bagdad 1987 - Atlantis + Atlantis Software @@ -127168,23 +127521,23 @@ Nothing happens after loading the cassette - Scuba Kidz (MCM) - 1989 - MCM Software + Scuba Kidz + 1988 + Silverbird Software - - + + - Scuba Kidz - 19?? - <unknown> + Scuba Kidz (MCM) + 1989 + MCM Software - - + + @@ -127217,25 +127570,25 @@ Nothing happens after loading the cassette - Se-Kaa of Assiah (Mastertronic) + Se-Kaa of Assiah 1984 Mastervision - - + + - - + + Se-Kaa of Assiah (Zenobi) - 19?? - <unknown> + 1984 + Zenobi Software @@ -127249,17 +127602,17 @@ Nothing happens after loading the cassette - Se-Kaa of Assiah - 19?? - <unknown> + Se-Kaa of Assiah (Mastertronic) + 1984 + Mastervision - - + + - - + + @@ -127267,7 +127620,7 @@ Nothing happens after loading the cassette Sea Battles 1984 - Atlantis + Atlantis Software @@ -127278,7 +127631,7 @@ Nothing happens after loading the cassette Sea Hawk 1990 - Atlantis + Atlantis Software @@ -127299,8 +127652,8 @@ Nothing happens after loading the cassette Sea of Zirun - 19?? - <unknown> + 1985 + Gilsoft International @@ -127348,8 +127701,8 @@ Nothing happens after loading the cassette Seabase Delta (set 2) - 19?? - <unknown> + 1985 + Firebird Software @@ -127359,8 +127712,8 @@ Nothing happens after loading the cassette Seabase Delta - 19?? - <unknown> + 1985 + Firebird Software @@ -127405,7 +127758,7 @@ Nothing happens after loading the cassette - Seas of Blood (set 2) + Seas of Blood (alt) 1985 Adventure International @@ -127417,8 +127770,8 @@ Nothing happens after loading the cassette Seas of Blood - 19?? - <unknown> + 1985 + Adventure International @@ -127459,10 +127812,10 @@ Nothing happens after loading the cassette - + Secret Mission - 19?? - <unknown> + 1985 + Adventure International @@ -127471,7 +127824,7 @@ Nothing happens after loading the cassette - Secret Valley (set 2) + Secret Valley (alt) 1982 Newsoft Products @@ -127483,8 +127836,8 @@ Nothing happens after loading the cassette Secret Valley - 19?? - <unknown> + 1982 + Newsoft Products @@ -127492,10 +127845,21 @@ Nothing happens after loading the cassette - - Sector - Release 2 - 19?? - <unknown> + + Sector (release 3, TZX tape image) + 2014 + RetroSouls + + + + + + + + + Sector (release 2, TZX tape image) + 2013 + RetroSouls @@ -127503,21 +127867,55 @@ Nothing happens after loading the cassette - - Sector - Release 3 - 19?? - <unknown> + + Sector (release 2, TAP tape image) + 2013 + RetroSouls - - + + + + + + + + Sector (release 1, TAP tape image) + 2013 + RetroSouls + + + + + + + + + Sector: Invasion (TZX tape image) + 2014 + RetroSouls + + + + + + + + + Sector: Invasion (TAP tape image) + 2014 + RetroSouls + + + - Sector-90 (Quicksilva) + Sector 90 1987 - Argus Press Software - Quicksilva + Argus Press Software / Quicksilva + @@ -127526,9 +127924,10 @@ Nothing happens after loading the cassette - Sector-90 - 19?? - <unknown> + Sector-90 (alt) + 1987 + Argus Press Software / Quicksilva + @@ -127603,23 +128002,23 @@ Nothing happens after loading the cassette - Self Destruct (Zafiro) - 1987 - Z Cobra + Self Destruct + 1985 + Atlantis Gold - - + + - Self Destruct - 19?? - <unknown> + Self Destruct (Zafiro) + 1987 + Z Cobra - - + + @@ -127663,9 +128062,9 @@ Nothing happens after loading the cassette - Sentinels (set 2, Mind Games Espana, small case) + Sentinels (set 2, Mind Games España, small case) 19?? - <unknown> + Mind Games España @@ -127676,7 +128075,7 @@ Nothing happens after loading the cassette Sentinels (set 3, Mind Games España) 19?? - <unknown> + Mind Games España @@ -129119,7 +129518,7 @@ Nothing happens after loading the cassette Sinbad 1983 - Atlantis + Atlantis Software @@ -129130,7 +129529,7 @@ Nothing happens after loading the cassette The Adventures of Sinbad 1983 - Atlantis + Atlantis Software @@ -129436,7 +129835,7 @@ Nothing happens after loading the cassette Skatin' USA 1989 - Atlantis + Atlantis Software @@ -130341,7 +130740,7 @@ Nothing happens after loading the cassette Snaffle 1985 - Longman + Longman Software @@ -130434,7 +130833,7 @@ Nothing happens after loading the cassette Snoball In Hell 1989 - Atlantis + Atlantis Software @@ -130599,7 +130998,7 @@ Nothing happens after loading the cassette Snookered 1988 - Top Ten + Top Ten Software @@ -132247,6 +132646,17 @@ Nothing happens after loading the cassette Space Racer + 1988 + Loriciels + + + + + + + + + Space Racer (Proein) 1989 Proein Soft Line @@ -137527,7 +137937,7 @@ Nothing happens after loading the cassette Sum Scruncher 1983 - Longman + Longman Software @@ -137631,7 +138041,7 @@ Nothing happens after loading the cassette Super Brat 1985 - Atlantis + Atlantis Software @@ -137745,7 +138155,7 @@ Nothing happens after loading the cassette Super Com 1986 - Atlantis + Atlantis Software @@ -140371,10 +140781,36 @@ Nothing happens after loading the cassette + + Tabela Periódica + 1984 + Astor Software + + + + + + + + + + + Tabela Periódica (fast version hack) + 1984 + Astor Software + + + + + + + + + Table Football - 19?? - <unknown> + 1987 + Budgie Budget Software @@ -140449,7 +140885,8 @@ Nothing happens after loading the cassette Tablica Mendelejewa 19?? - <unknown> + Polmer + @@ -140470,8 +140907,8 @@ Nothing happens after loading the cassette Taffy Turner - 19?? - <unknown> + 1985 + Silversoft @@ -140555,10 +140992,11 @@ Nothing happens after loading the cassette - + Tajpan - 19?? - <unknown> + 1984 + J. Rajzer + @@ -140590,8 +141028,8 @@ Nothing happens after loading the cassette Tales of the Arabian Nights - 19?? - <unknown> + 1985 + Interceptor @@ -140730,7 +141168,7 @@ Nothing happens after loading the cassette - + Tank Busters (MCM) 1988 MCM Software @@ -140741,10 +141179,10 @@ Nothing happens after loading the cassette - + Tank Busters - 19?? - <unknown> + 1983 + Firebird Software @@ -140755,7 +141193,7 @@ Nothing happens after loading the cassette Tank Command 1988 - Atlantis + Atlantis Software @@ -140764,23 +141202,23 @@ Nothing happens after loading the cassette - Tank Trax (Mastertronic) + Tank Trax 1983 - Mastertronic + Amoeba Software - + - Tank Trax - 19?? - <unknown> + Tank Trax (Mastertronic) + 1983 + Mastertronic - + @@ -140937,6 +141375,7 @@ Nothing happens after loading the cassette Tarot Cibernetico 1985 Creativos Editoriales + @@ -140947,7 +141386,7 @@ Nothing happens after loading the cassette Tas-Trig 1983 - Tasman + Tasman Software @@ -140958,7 +141397,7 @@ Nothing happens after loading the cassette TasCalc 1988 - Tasman + Tasman Software @@ -140988,35 +141427,35 @@ Nothing happens after loading the cassette - - TasCopy (set 2) - Greyscale + + TasCopy 1984 - Tasman + Tasman Software - - + + - - TasCopy (set 2) - Monochrome - 19?? - <unknown> + + TasCopy (greyscale) + 1984 + Tasman Software - - + + - - TasCopy + + TasCopy (monochrome) 1984 - Tasman + Tasman Software - - + + @@ -141024,7 +141463,7 @@ Nothing happens after loading the cassette TasDiary 1985 - Tasman + Tasman Software @@ -141035,7 +141474,7 @@ Nothing happens after loading the cassette Tasimeq 1983 - Tasman + Tasman Software @@ -141054,24 +141493,24 @@ Nothing happens after loading the cassette - - Task Force (EDOS) - 19?? - <unknown> + + Task Force (Players Premier) + 1989 + Players Premier - - + + - - Task Force - 19?? - <unknown> + + Task Force (EDOS) + 1989 + EDOS - - + + @@ -141079,7 +141518,7 @@ Nothing happens after loading the cassette Tasman Parallel Printer Interface 1984 - Tasman + Tasman Software @@ -141095,7 +141534,7 @@ Nothing happens after loading the cassette TasMath 1 1983 - Tasman + Tasman Software @@ -141106,7 +141545,7 @@ Nothing happens after loading the cassette TasMerge 1985 - Tasman + Tasman Software @@ -141160,7 +141599,7 @@ Nothing happens after loading the cassette TasSign 1988 - Tasman + Tasman Software @@ -141176,7 +141615,7 @@ Nothing happens after loading the cassette TasWide 1984 - Tasman + Tasman Software @@ -141253,7 +141692,7 @@ Nothing happens after loading the cassette TasWord Plus Two 1986 - Tasman + Tasman Software @@ -141280,7 +141719,7 @@ Nothing happens after loading the cassette TasWord 1982 - Tasman + Tasman Software @@ -141734,7 +142173,7 @@ Nothing happens after loading the cassette Ten-Pin Challenge 1987 - Atlantis + Atlantis Software @@ -141745,7 +142184,7 @@ Nothing happens after loading the cassette Tenkolek Light Pen Interface 19?? - <unknown> + Tenkolek @@ -141754,7 +142193,7 @@ Nothing happens after loading the cassette - Tennis (Wintersoft) (set 2) + Tennis (Winters) (set 2) 1983 Winters @@ -141765,9 +142204,9 @@ Nothing happens after loading the cassette - Tennis (Wintersoft) - 19?? - <unknown> + Tennis (Winters) + 1983 + Winters @@ -141910,7 +142349,8 @@ Nothing happens after loading the cassette Terminy Geograficzne 19?? - <unknown> + Polmer + @@ -142030,8 +142470,8 @@ Nothing happens after loading the cassette Terrorballs - 19?? - <unknown> + 1987 + Whammo Productions @@ -142062,23 +142502,23 @@ Nothing happens after loading the cassette - Terrorpods (Dro Soft) - 1989 - Dro Soft + Terrorpods + 1988 + Melbourne House - - + + - Terrorpods - 19?? - <unknown> + Terrorpods (Dro Soft) + 1989 + Dro Soft - - + + @@ -142188,23 +142628,23 @@ Nothing happens after loading the cassette - Test Master (Challenge Software) - 1989 - Challenge + Test Master + 1988 + E&J Software - - + + - Test Master - 19?? - <unknown> + Test Master (Challenge Software) + 1989 + Challenge - - + + @@ -142222,8 +142662,9 @@ Nothing happens after loading the cassette Teufels-Fahrer - 19?? - <unknown> + 1984 + Wicosoft + @@ -144637,6 +145078,17 @@ Nothing happens after loading the cassette + + Tokimal (demo) + 2021 + Pat Morita Team + + + + + + + Tokyo Gang 1990 @@ -148016,7 +148468,7 @@ Nothing happens after loading the cassette The Valley (Kayde) 1983 - Kayde + Kayde Software @@ -148024,10 +148476,11 @@ Nothing happens after loading the cassette - - The Valley - 19?? - <unknown> + + The Valley (ASP) + 1982 + ASP Software + @@ -148227,7 +148680,7 @@ Nothing happens after loading the cassette Vagan Attack 1984 - Atlantis + Atlantis Software @@ -149932,7 +150385,7 @@ Version without loading screen, maybe a pre-release The Warlock's Treasure 1984 - CRL Group PLC + CRL Group @@ -150482,17 +150935,6 @@ Version without loading screen, maybe a pre-release - - Wally Family - 1985 - Jackson Soft - - - - - - - Wally Kong (Calisto) 1984 @@ -151050,9 +151492,9 @@ Version without loading screen, maybe a pre-release - Wentworth West And East - Release 1 + Wentworth West And East (release 1) 1983 - Hornby + Hornby Software @@ -151066,9 +151508,9 @@ Version without loading screen, maybe a pre-release - Wentworth West And East - Release 2 - 19?? - <unknown> + Wentworth West And East (release 2) + 1983 + Hornby Software @@ -151082,9 +151524,9 @@ Version without loading screen, maybe a pre-release - Wentworth West And East - Release 3 - 19?? - <unknown> + Wentworth West And East (release 3) + 1983 + Hornby Software @@ -151100,7 +151542,7 @@ Version without loading screen, maybe a pre-release Werewolf Simulator 1988 - Top Ten + Top Ten Software @@ -151767,7 +152209,7 @@ Version without loading screen, maybe a pre-release Wild Words 1983 - Longman + Longman Software @@ -152661,7 +153103,7 @@ Version without loading screen, maybe a pre-release Word Wizard 1983 - Longman + Longman Software @@ -155177,7 +155619,7 @@ Version without loading screen, maybe a pre-release Zodiac Master 1984 - Longman + Longman Software @@ -156830,6 +157272,8 @@ Side A - Game 1: Ghostly Grange (Sparklers) Side A - Game 2: Brainstorm (Bubble Bus Software) Side A - Game 3: Pentomania (original release) ]]> + + @@ -156846,6 +157290,8 @@ Side A - Game 1: Ghostly Grange (Sparklers) Side A - Game 2: Brainstorm (Bubble Bus Software) Side A - Game 3: Pentomania (original release) ]]> + + @@ -156853,6 +157299,23 @@ Side A - Game 3: Pentomania (original release) + + Ghostly Grange Triple Decker (alt) + 1987 + Alternative Software + + + + + + + + + Triple Decker 4 - Classic Arcadia 1988 @@ -162373,6 +162836,14 @@ Tape 2: Cell of the Ridges Famous Five (compilation) 1987 Mastertronic + + @@ -163032,24 +163503,24 @@ Tape 2: Cell of the Ridges - - Games 4 (set 2) + + Games 4 1982 Sinclair Research - - + + - - Games 4 + + Games 4 (set 2) 1982 Sinclair Research - - + + @@ -163165,17 +163636,6 @@ Tape 2: Cell of the Ridges - - Games Pack One (Logic Systems) - 19?? - <unknown> - - - - - - - Games Pack One 19?? @@ -163202,100 +163662,130 @@ Tape 2: Cell of the Ridges Games Tape 1 (Gilsoft) 1982 Gilsoft International + + + + - - - Games Tape 2 (Gilsoft) - 19?? - <unknown> + + Games Tape 1 (Riko Data) + 198? + Riko Data + + - - + + + - - + + + - - Games Tape 3 (Gilsoft) - Release 1 - 19?? - <unknown> - - - - - - - - + + Games Tape I (Pi Software) + 1982 + Pi Software + + + + + + - - Games Tape 3 (Gilsoft) - Release 2 - 19?? - <unknown> - - - - - - - - + + Games Tape I (Riko Data) + 1983 + Riko Data + + + + + + + Games Tape 2 (Gilsoft) + 1982 + Gilsoft International + - - Games Tape 1 (Riko Data) - 19?? - <unknown> - - + + + - - + + + + + Games Tape II (Pi Software) + 1983 + Pi Software + - - Games Tape I (Riko Data) - 19?? - <unknown> + - - + + - + Games Tape II (Riko Data) - 19?? - <unknown> + 1983 + Riko Data @@ -163303,13 +163793,38 @@ Tape 2: Cell of the Ridges - - Games Tape 2 (Pi Software) - 19?? - <unknown> - - - + + Games Tape 3 (Gilsoft, release 1) + 1983 + Gilsoft International + + + + + + + + + + + + + + + + Games Tape 3 (Gilsoft, release 2) + 1983 + Gilsoft International + + + + + + + + + + @@ -163331,7 +163846,7 @@ Tape 2: Cell of the Ridges - Gamestar 1 + Gamestar - Issue 1 1991 A.C.E. Publications @@ -163341,10 +163856,10 @@ Tape 2: Cell of the Ridges - - Gamestar 3 - 19?? - <unknown> + + Gamestar - Issue 3 (Jan/Feb '92) + 1992 + A.C.E. Publications @@ -163404,28 +163919,6 @@ Tape 2: Cell of the Ridges - - Ghostly Grange Triple Decker (System 4) - 1987 - System 4 - - - - - - - - - Ghostly Grange Triple Decker - 19?? - <unknown> - - - - - - - Giants (compilation) 1988 @@ -163759,9 +164252,22 @@ Tape 2: Cell of the Ridges - Gremlin 10 Pack - 19?? - <unknown> + Gremlin - 10 Pack + 1991 + Gremlin Graphics Software + + @@ -163938,10 +164444,10 @@ Tape 2: Cell of the Ridges 1990 Domark @@ -171609,33 +172115,33 @@ Tape 3 - Vendetta (System 3 Software) - Tango & Magic Dice (Sintech) - 19?? - <unknown> + Tango + Magic Dice + 1993 + Proxima Software - + - + - Tango & Magic Dice + Tango + Magic Dice (Sintech) 19?? <unknown> - + - + From 943ae3135b8ab2088fc2ccb07896ceffb5f71e02 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sun, 21 Apr 2024 02:32:14 +0900 Subject: [PATCH 04/46] midway/midtunit.cpp, midtunit_v.cpp, midwunit.cpp, midxunit.cpp: Cleaned up code. (#12281) * midtunit_v.cpp: Use callback for interrupt output, reduced hard-coded tags and unnecessary configuration. * midtunit.cpp: Moved variants with ADPCM ad DCS sound hardware to separate driver state classes. * Suppress side effects for debugger reads. * Removed unnecessary object finders and #includes, reduced literal tags, use logmacro.h for configurable logging. * Removed unnecessary prefixes from member function names, use C++ line comments for single line comments, reduced preprocessor macros. --- src/mame/midway/midtunit.cpp | 408 +++++++++++++++++---------------- src/mame/midway/midtunit.h | 110 ++++++--- src/mame/midway/midtunit_m.cpp | 339 ++++++++++++++------------- src/mame/midway/midtunit_v.cpp | 222 +++++++++--------- src/mame/midway/midtunit_v.h | 94 ++++---- src/mame/midway/midwunit.cpp | 352 ++++++++++++++-------------- src/mame/midway/midwunit.h | 22 +- src/mame/midway/midwunit_m.cpp | 70 +++--- src/mame/midway/midxunit.cpp | 57 +++-- src/mame/midway/midxunit.h | 28 ++- src/mame/midway/midxunit_m.cpp | 96 ++++---- 11 files changed, 938 insertions(+), 860 deletions(-) diff --git a/src/mame/midway/midtunit.cpp b/src/mame/midway/midtunit.cpp index 443a22e679de1..bfae5563054a5 100644 --- a/src/mame/midway/midtunit.cpp +++ b/src/mame/midway/midtunit.cpp @@ -25,7 +25,6 @@ #include "emu.h" #include "midtunit.h" -#include "cpu/adsp2100/adsp2100.h" #include "machine/nvram.h" #include "machine/watchdog.h" @@ -33,9 +32,6 @@ #include "speaker.h" -#define CPU_CLOCK (50000000) -#define PIXEL_CLOCK (8000000/2) - /************************************* @@ -44,30 +40,44 @@ * *************************************/ -void midtunit_state::main_map(address_map &map) +void midtunit_base_state::main_map(address_map &map) { map.unmap_value_high(); map(0x00000000, 0x003fffff).rw(m_video, FUNC(midtunit_video_device::midtunit_vram_r), FUNC(midtunit_video_device::midtunit_vram_w)); map(0x01000000, 0x013fffff).ram(); - map(0x01400000, 0x0141ffff).rw(FUNC(midtunit_state::midtunit_cmos_r), FUNC(midtunit_state::midtunit_cmos_w)).share("nvram"); - map(0x01480000, 0x014fffff).w(FUNC(midtunit_state::midtunit_cmos_enable_w)); + map(0x01400000, 0x0141ffff).rw(FUNC(midtunit_base_state::cmos_r), FUNC(midtunit_base_state::cmos_w)).share(m_nvram); + map(0x01480000, 0x014fffff).w(FUNC(midtunit_base_state::cmos_enable_w)); map(0x01600000, 0x0160000f).portr("IN0"); map(0x01600010, 0x0160001f).portr("IN1"); map(0x01600020, 0x0160002f).portr("IN2"); map(0x01600030, 0x0160003f).portr("DSW"); map(0x01800000, 0x0187ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x01a80000, 0x01a800ff).rw(m_video, FUNC(midtunit_video_device::midtunit_dma_r), FUNC(midtunit_video_device::midtunit_dma_w)); + map(0x01a80000, 0x01a800ff).rw(m_video, FUNC(midtunit_video_device::dma_r), FUNC(midtunit_video_device::dma_w)); map(0x01b00000, 0x01b0001f).w(m_video, FUNC(midtunit_video_device::midtunit_control_w)); -// map(0x01c00060, 0x01c0007f).w(FUNC(midtunit_state::midtunit_cmos_enable_w)); - map(0x01d00000, 0x01d0001f).r(FUNC(midtunit_state::midtunit_sound_state_r)); - map(0x01d01020, 0x01d0103f).rw(FUNC(midtunit_state::midtunit_sound_r), FUNC(midtunit_state::midtunit_sound_w)); +// map(0x01c00060, 0x01c0007f).w(FUNC(midtunit_base_state::cmos_enable_w)); map(0x01d81060, 0x01d8107f).w("watchdog", FUNC(watchdog_timer_device::reset16_w)); map(0x01f00000, 0x01f0001f).w(m_video, FUNC(midtunit_video_device::midtunit_control_w)); - map(0x02000000, 0x07ffffff).r(m_video, FUNC(midtunit_video_device::midtunit_gfxrom_r)).share("gfxrom"); - map(0x1f800000, 0x1fffffff).rom().region("maincpu", 0); /* mirror used by MK */ + map(0x02000000, 0x07ffffff).r(m_video, FUNC(midtunit_video_device::midtunit_gfxrom_r)).share("video"); + map(0x1f800000, 0x1fffffff).rom().region("maincpu", 0); // mirror used by MK map(0xff800000, 0xffffffff).rom().region("maincpu", 0); } +void midtunit_adpcm_state::main_adpcm_map(address_map &map) +{ + midtunit_base_state::main_map(map); + map.unmap_value_high(); + map(0x01d00000, 0x01d0001f).r(FUNC(midtunit_adpcm_state::sound_state_r)); + map(0x01d01020, 0x01d0103f).rw(FUNC(midtunit_adpcm_state::sound_r), FUNC(midtunit_adpcm_state::sound_w)); +} + +void mk2_state::mk2_map(address_map &map) +{ + midtunit_base_state::main_map(map); + map.unmap_value_high(); + map(0x01d00000, 0x01d0001f).r(FUNC(mk2_state::dcs_state_r)); + map(0x01d01020, 0x01d0103f).rw(FUNC(mk2_state::dcs_r), FUNC(mk2_state::dcs_w)); +} + /************************************* @@ -99,7 +109,7 @@ static INPUT_PORTS_START( mk ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -196,7 +206,7 @@ static INPUT_PORTS_START( mk2 ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -304,7 +314,7 @@ static INPUT_PORTS_START( jdreddp ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -327,7 +337,7 @@ static INPUT_PORTS_START( jdreddp ) PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P3 Crouch") PORT_PLAYER(3) PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("DSW") /* DS1 */ + PORT_START("DSW") // DS1 PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off )) PORT_DIPSETTING( 0x0000, DEF_STR( On )) @@ -400,7 +410,7 @@ static INPUT_PORTS_START( nbajam ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE( 0x0010, IP_ACTIVE_LOW ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -430,7 +440,7 @@ static INPUT_PORTS_START( nbajam ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Turbo") PORT_PLAYER(4) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("DSW") /* DS1 */ + PORT_START("DSW") // DS1 PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -503,7 +513,7 @@ static INPUT_PORTS_START( nbajamte ) PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE_NO_TOGGLE( 0x0010, IP_ACTIVE_LOW ) PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -533,7 +543,7 @@ static INPUT_PORTS_START( nbajamte ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Turbo") PORT_PLAYER(4) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("DSW")/* DS1 */ + PORT_START("DSW")// DS1 PORT_DIPNAME( 0x0001, 0x0001, "Test Switch" ) PORT_DIPSETTING( 0x0001, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -590,26 +600,30 @@ INPUT_PORTS_END * *************************************/ -void midtunit_state::tunit_core(machine_config &config) +void midtunit_base_state::tunit_core(machine_config &config) { - MIDTUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); + constexpr XTAL CPU_CLOCK = 50_MHz_XTAL; + constexpr XTAL PIXEL_CLOCK = 8_MHz_XTAL/2; + + MIDTUNIT_VIDEO(config, m_video, m_palette); + m_video->dma_irq_cb().set_inputline(m_maincpu, 0); - /* basic machine hardware */ + // basic machine hardware TMS34010(config, m_maincpu, CPU_CLOCK); - m_maincpu->set_addrmap(AS_PROGRAM, &midtunit_state::main_map); - m_maincpu->set_halt_on_reset(false); /* halt on reset */ - m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ - m_maincpu->set_pixels_per_clock(2); /* pixels per clock */ - m_maincpu->set_scanline_ind16_callback("video", FUNC(midtunit_video_device::scanline_update)); /* scanline updater (indexed16) */ - m_maincpu->set_shiftreg_in_callback("video", FUNC(midtunit_video_device::to_shiftreg)); /* write to shiftreg function */ - m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ + m_maincpu->set_addrmap(AS_PROGRAM, &midtunit_base_state::main_map); + m_maincpu->set_halt_on_reset(false); // halt on reset + m_maincpu->set_pixel_clock(PIXEL_CLOCK); // pixel clock + m_maincpu->set_pixels_per_clock(2); // pixels per clock + m_maincpu->set_scanline_ind16_callback(m_video, FUNC(midtunit_video_device::scanline_update)); // scanline updater (indexed16) + m_maincpu->set_shiftreg_in_callback(m_video, FUNC(midtunit_video_device::to_shiftreg)); // write to shiftreg function + m_maincpu->set_shiftreg_out_callback(m_video, FUNC(midtunit_video_device::from_shiftreg)); // read from shiftreg function m_maincpu->set_screen("screen"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); WATCHDOG_TIMER(config, "watchdog"); - /* video hardware */ + // video hardware PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 32768); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); @@ -620,22 +634,28 @@ void midtunit_state::tunit_core(machine_config &config) } -void midtunit_state::tunit_adpcm(machine_config &config) +void midtunit_adpcm_state::tunit_adpcm(machine_config &config) { tunit_core(config); - /* basic machine hardware */ + // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &midtunit_adpcm_state::main_adpcm_map); + SPEAKER(config, "speaker").front_center(); WILLIAMS_ADPCM_SOUND(config, m_adpcm_sound, 0).add_route(ALL_OUTPUTS, "speaker", 1.0); } -void midtunit_state::tunit_dcs(machine_config &config) +void mk2_state::mk2(machine_config &config) { tunit_core(config); - /* basic machine hardware */ + // basic machine hardware + m_maincpu->set_addrmap(AS_PROGRAM, &mk2_state::mk2_map); + + m_video->set_gfx_rom_large(true); + SPEAKER(config, "speaker").front_center(); DCS_AUDIO_2K(config, m_dcs, 0); @@ -652,20 +672,20 @@ void midtunit_state::tunit_dcs(machine_config &config) *************************************/ ROM_START( mk ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "sl1_mortal_kombat_u3_sound_rom.u3", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "sl1_mortal_kombat_u12_sound_rom.u12", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) ROM_RELOAD( 0x40000, 0x40000 ) ROM_LOAD( "sl1_mortal_kombat_u13_sound_rom.u13", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) ROM_RELOAD( 0xc0000, 0x40000 ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l5_mortal_kombat_t-unit_uj12_game_rom.uj12", 0x00000, 0x80000, CRC(f4990bf2) SHA1(796ec84d37c8d20ca36d6439c14dee626fb8481e) ) ROM_LOAD16_BYTE( "l5_mortal_kombat_t-unit_ug12_game_rom.ug12", 0x00001, 0x80000, CRC(b06aeac1) SHA1(f66655eeab67c8cf5e496ae42dbae54d6400586f) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug14_game_rom.ug14", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_uj14_game_rom.uj14", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug19_game_rom.ug19", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) @@ -684,20 +704,20 @@ ROM_END ROM_START( mkr4 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "sl1_mortal_kombat_u3_sound_rom.u3", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "sl1_mortal_kombat_u12_sound_rom.u12", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) ROM_RELOAD( 0x40000, 0x40000 ) ROM_LOAD( "sl1_mortal_kombat_u13_sound_rom.u13", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) ROM_RELOAD( 0xc0000, 0x40000 ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l4_mortal_kombat_t-unit_uj12_game_rom.uj12", 0x00000, 0x80000, CRC(a1b6635a) SHA1(22d396cc9c1e3a14cb01d196de6d3e864f7afc55) ) ROM_LOAD16_BYTE( "l4_mortal_kombat_t-unit_ug12_game_rom.ug12", 0x00001, 0x80000, CRC(aa94f7ea) SHA1(bd8957bf52f73b49767cc78fec84ed1109a37701) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug14_game_rom.ug14", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_uj14_game_rom.uj14", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug19_game_rom.ug19", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) @@ -716,21 +736,21 @@ ROM_END ROM_START( mktturbo ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "sl1_mortal_kombat_u3_sound_rom.u3", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "sl1_mortal_kombat_u12_sound_rom.u12", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) ) ROM_RELOAD( 0x40000, 0x40000 ) ROM_LOAD( "sl1_mortal_kombat_u13_sound_rom.u13", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) ) ROM_RELOAD( 0xc0000, 0x40000 ) - /* A 'NIBBLE BOARD' daughtercard holding a GAL16V8A-2SP, 27C040 EPROM and a 9.8304MHz XTAL plugs into the UG12 socket */ - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + // A 'NIBBLE BOARD' daughtercard holding a GAL16V8A-2SP, 27C040 EPROM and a 9.8304MHz XTAL plugs into the UG12 socket + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "kombo-rom-uj-12.bin", 0x00000, 0x80000, CRC(7a441f2d) SHA1(3b731bcbd73721ea0cc20157ec5181d25922523c) ) ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug14_game_rom.ug14", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_uj14_game_rom.uj14", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_t-unit_ug19_game_rom.ug19", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) ) @@ -749,7 +769,7 @@ ROM_END ROM_START( mk2 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -762,13 +782,13 @@ ROM_START( mk2 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l3.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(cf100a75) SHA1(c5cf739fdb08e311f47794eb93a8d34d4bc11cde) ) /* Revision 3.1 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l3.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(cf100a75) SHA1(c5cf739fdb08e311f47794eb93a8d34d4bc11cde) ) // Revision 3.1 ROM_LOAD16_BYTE( "l3.1_mortal_kombat_ii_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(582c7dfd) SHA1(f32bd1213ce70f74caa97a2047815cf4baee56b5) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -787,7 +807,7 @@ ROM_END ROM_START( mk2r32e ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -800,13 +820,13 @@ ROM_START( mk2r32e ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l32e", 0x00000, 0x80000, CRC(43f773a6) SHA1(a97b75bac2793f99738abcbd4054f2b860aff574) ) /* Revision 3.2 Euro */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "uj12.l32e", 0x00000, 0x80000, CRC(43f773a6) SHA1(a97b75bac2793f99738abcbd4054f2b860aff574) ) // Revision 3.2 Euro ROM_LOAD16_BYTE( "ug12.l32e", 0x00001, 0x80000, CRC(dcde9619) SHA1(72b39bd68eff5938cd87d3388074172a07bda816) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -825,7 +845,7 @@ ROM_END ROM_START( mk2r31e ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -838,13 +858,13 @@ ROM_START( mk2r31e ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "uj12.l31e", 0x00000, 0x80000, CRC(f64306d1) SHA1(b1fb8d59400a411498a56a740a7b35e4687ecebd) ) /* Revision 3.1 Euro */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "uj12.l31e", 0x00000, 0x80000, CRC(f64306d1) SHA1(b1fb8d59400a411498a56a740a7b35e4687ecebd) ) // Revision 3.1 Euro ROM_LOAD16_BYTE( "ug12.l31e", 0x00001, 0x80000, CRC(4adeae7e) SHA1(4c9e5c7df3f86cc5c97c7fb70d4acca71d65cab5) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -863,7 +883,7 @@ ROM_END ROM_START( mk2r30 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -876,13 +896,13 @@ ROM_START( mk2r30 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l3_mortal_kombat_ii_game_rom_uj12.uj12.l30", 0x00000, 0x80000, CRC(93440895) SHA1(e81735db939cd12b3836c7b9507a087e6899cdbd) ) /* Revision 3.0 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l3_mortal_kombat_ii_game_rom_uj12.uj12.l30", 0x00000, 0x80000, CRC(93440895) SHA1(e81735db939cd12b3836c7b9507a087e6899cdbd) ) // Revision 3.0 ROM_LOAD16_BYTE( "l3_mortal_kombat_ii_game_rom_ug12.ug12.l30", 0x00001, 0x80000, CRC(6153c2d8) SHA1(7b12eecc830f770a9c605a7e8376c8e719c33678) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -901,7 +921,7 @@ ROM_END ROM_START( mk2r21 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -914,13 +934,13 @@ ROM_START( mk2r21 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l2.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(d6a35699) SHA1(17feee7886108d6f946bf04669479d35c2edac76) ) /* Revision 2.1 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l2.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(d6a35699) SHA1(17feee7886108d6f946bf04669479d35c2edac76) ) // Revision 2.1 ROM_LOAD16_BYTE( "l2.1_mortal_kombat_ii_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(aeb703ff) SHA1(e94cd9e6feb45e3de85661ca12452aff6e14d3ae) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -939,7 +959,7 @@ ROM_END ROM_START( mk2r20 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -952,13 +972,13 @@ ROM_START( mk2r20 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l2_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(72071550) SHA1(af0fb357e423eb054d32a1b2b216fb18437939ed) ) /* Revision 2.0 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l2_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(72071550) SHA1(af0fb357e423eb054d32a1b2b216fb18437939ed) ) // Revision 2.0 ROM_LOAD16_BYTE( "l2_mortal_kombat_ii_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(86c3ce65) SHA1(09d4dd6905911d8febe516f018e445657e929959) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -977,7 +997,7 @@ ROM_END ROM_START( mk2r14 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -990,13 +1010,13 @@ ROM_START( mk2r14 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l1.4_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(6d43bc6d) SHA1(578ea9c60fa94689d6ae583b86769cd56d8db311) ) /* Revision 1.4 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l1.4_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(6d43bc6d) SHA1(578ea9c60fa94689d6ae583b86769cd56d8db311) ) // Revision 1.4 ROM_LOAD16_BYTE( "l1.4_mortal_kombat_ii_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(42b0da21) SHA1(94ef25b04c35b4c26b692c2c3c5f68ba747bef49) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -1014,7 +1034,7 @@ ROM_START( mk2r14 ) ROM_END ROM_START( mk2r11 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -1027,13 +1047,13 @@ ROM_START( mk2r11 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "l1.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(01daff19) SHA1(8b14bf823ecb60c391688c106a52f141f1d291b5) ) /* Revision 1.1 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "l1.1_mortal_kombat_ii_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(01daff19) SHA1(8b14bf823ecb60c391688c106a52f141f1d291b5) ) // Revision 1.1 ROM_LOAD16_BYTE( "l1.1_mortal_kombat_ii_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(54042eb7) SHA1(cda2f940b9c74989450611e6319e7cdadc05c627) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -1051,7 +1071,7 @@ ROM_START( mk2r11 ) ROM_END ROM_START( mk2r42 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -1064,13 +1084,13 @@ ROM_START( mk2r42 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "mk242j12.bin", 0x00000, 0x80000, CRC(c7fb1525) SHA1(350be1a6f6da3a6b42764cfceae196696482def2) ) ROM_LOAD16_BYTE( "mk242g12.bin", 0x00001, 0x80000, CRC(443d0e0a) SHA1(20e69c266cda59be92d7cd6423f6e03ad65226eb) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -1089,7 +1109,7 @@ ROM_END ROM_START( mk2r91 ) - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -1102,13 +1122,13 @@ ROM_START( mk2r91 ) ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "uj12.l91", 0x00000, 0x80000, CRC(41953903) SHA1(f72f92beb32e724d37e5f951b24539902dc16a9f) ) ROM_LOAD16_BYTE( "ug12.l91", 0x00001, 0x80000, CRC(c07f745a) SHA1(049a18bc162274c897cae695032f32c851e57330) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -1127,7 +1147,7 @@ ROM_END ROM_START( mk2chal ) // Known as the Challenger Hack because the version number has been replaced with "CHALLENGER.." in the Test Menu - ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u2.u2", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) ) ROM_RELOAD( 0x100000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u3.u3", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) ) @@ -1140,13 +1160,13 @@ ROM_START( mk2chal ) // Known as the Challenger Hack because the version number ROM_RELOAD( 0x900000, 0x80000 ) ROM_LOAD16_BYTE( "l1_mortal_kombat_ii_sound_rom_u7.u7", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) ) ROM_RELOAD( 0xb00000, 0x80000 ) - /* su8 and su9 are unpopulated */ + // su8 and su9 are unpopulated - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "immortal_kombat_ii_j-12.uj12", 0x00000, 0x80000, CRC(2d5c04e6) SHA1(85947876319c86bdcdeccda99ae1ddbcfb212484) ) // labeled IMMORTAL KOMBAT II J-12 ROM_LOAD16_BYTE( "immortal_kombat_ii_g-12.ug12", 0x00001, 0x80000, CRC(3e7a4bad) SHA1(9a8ad99e09badcea7f2bcf80a649c96a883a0463) ) // labeled IMMORTAL KOMBAT II G-12 - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug14.ug14", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_uj14.uj14", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_ii_game_rom_ug19.ug19", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) ) @@ -1240,19 +1260,19 @@ NOTE: The current sound ROMs match the L1 checksums listed above. Midway would c */ ROM_START( nbajam ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l2_nba_jam_u3_sound_rom.u3", 0x010000, 0x20000, CRC(3a3ea480) SHA1(d12a45cba5c35f046b176661d7877fa4fd0e6c13) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_u12_sound_rom.u12", 0x000000, 0x80000, CRC(b94847f1) SHA1(e7efa0a379bfa91fe4ffb75f07a5dfbfde9a96b4) ) // may be labeled as L2 revision ROM_LOAD( "l1_nba_jam_u13_sound_rom.u13", 0x080000, 0x80000, CRC(b6fe24bd) SHA1(f70f75b5570a2b368ebc74d2a7d264c618940430) ) // may be labeled as L2 revision - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l3_nba_jam_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(b93e271c) SHA1(b0e9f055376a4a4cd1115a81f71c933903c251b1) ) ROM_LOAD16_BYTE( "l3_nba_jam_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(407d3390) SHA1(a319bc890d94310e44fe2ec98bfc95665a662701) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1276,19 +1296,19 @@ ROM_END ROM_START( nbajamr2 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l2_nba_jam_u3_sound_rom.u3", 0x010000, 0x20000, CRC(3a3ea480) SHA1(d12a45cba5c35f046b176661d7877fa4fd0e6c13) ) // sound program updated 2-10-93 ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_u12_sound_rom.u12", 0x000000, 0x80000, CRC(b94847f1) SHA1(e7efa0a379bfa91fe4ffb75f07a5dfbfde9a96b4) ) // may be labeled as L2 revision ROM_LOAD( "l1_nba_jam_u13_sound_rom.u13", 0x080000, 0x80000, CRC(b6fe24bd) SHA1(f70f75b5570a2b368ebc74d2a7d264c618940430) ) // may be labeled as L2 revision - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l2_nba_jam_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(0fe80b36) SHA1(fe6b21dc9b393b25c511b2914b568fa92301d749) ) ROM_LOAD16_BYTE( "l2_nba_jam_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(5d106315) SHA1(e2cddd9ed6771e77711e3a4f25fe2d07712d954e) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1312,19 +1332,19 @@ ROM_END ROM_START( nbajamr1 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l2_nba_jam_u3_sound_rom.u3", 0x010000, 0x20000, CRC(3a3ea480) SHA1(d12a45cba5c35f046b176661d7877fa4fd0e6c13) ) // missing undumped L1 ROM - should be dated 2/1/93 ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_u12_sound_rom.u12", 0x000000, 0x80000, CRC(b94847f1) SHA1(e7efa0a379bfa91fe4ffb75f07a5dfbfde9a96b4) ) ROM_LOAD( "l1_nba_jam_u13_sound_rom.u13", 0x080000, 0x80000, CRC(b6fe24bd) SHA1(f70f75b5570a2b368ebc74d2a7d264c618940430) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1_nba_jam_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(4db672ec) SHA1(bb329c552473179f617d3bd038f47fb69d060b55) ) ROM_LOAD16_BYTE( "l1_nba_jam_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(ed1df3f7) SHA1(36b0c47758a205719dbef169f0af3e761f557b99) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1348,21 +1368,21 @@ ROM_END ROM_START( nbajamp2 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "p1_nba_jam_u3_sound_rom.u3", 0x010000, 0x20000, CRC(3d13633c) SHA1(b9597c352f56d67e5fdc958319285bbed0fcfbea) ) // all sound ROMs labeled as P1 ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "p1_nba_jam_u12_sound_rom.u12", 0x000000, 0x80000, CRC(009aad42) SHA1(6cdef52ca565919626475a9ef5f264c55b899ea6) ) ROM_LOAD( "p1_nba_jam_u13_sound_rom.u13", 0x080000, 0x80000, CRC(248800c2) SHA1(c6d7cd7841d751ee188c7bfd1ebbed380a18116e) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "p2_nba_jam_game_rom_uj12.uj12", 0x00000, 0x40000, CRC(4ebdf669) SHA1(8ab0d6084ed39ea7872aa5749148500ab1f1f692) ) // program ROMs labeled as P2 ROM_RELOAD( 0x80000, 0x40000 ) ROM_LOAD16_BYTE( "p2_nba_jam_game_rom_ug12.ug12", 0x00001, 0x40000, CRC(8d6098b6) SHA1(ca2e9be3ae77b379e8aa83b5ef7fda9fdaa3903c) ) ROM_RELOAD( 0x80001, 0x40000 ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(39e16e0b) SHA1(9cd5b4b74d5bdf89a348d37a235df7988f91a133) ) // all graphics ROMs labeled as P1 ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(a9ef8b67) SHA1(4d7faf6c0d4fdf98d33c9a01221e15cd5bbdaa88) ) ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a88b961c) SHA1(28d087acedeba67413bcc3fd26a872459fa27161) ) @@ -1386,21 +1406,21 @@ ROM_END ROM_START( nbajamp1 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "p1_nba_jam_u3_sound_rom.u3", 0x010000, 0x20000, CRC(3d13633c) SHA1(b9597c352f56d67e5fdc958319285bbed0fcfbea) ) // all sound ROMs labeled as P1 ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "p1_nba_jam_u12_sound_rom.u12", 0x000000, 0x80000, CRC(009aad42) SHA1(6cdef52ca565919626475a9ef5f264c55b899ea6) ) ROM_LOAD( "p1_nba_jam_u13_sound_rom.u13", 0x080000, 0x80000, CRC(248800c2) SHA1(c6d7cd7841d751ee188c7bfd1ebbed380a18116e) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "p1_nba_jam_game_rom_uj12.uj12", 0x00000, 0x40000, CRC(c0faf310) SHA1(f37d796ab8b06861853fe24a3b4ccfb27a3832b5) ) // program ROMs labeled as P1 ROM_RELOAD( 0x80000, 0x40000 ) ROM_LOAD16_BYTE( "p1_nba_jam_game_rom_ug12.ug12", 0x00001, 0x40000, CRC(5ee68e03) SHA1(eec97375e3ad9b1aa5d2a6793289fa0c002d1343) ) ROM_RELOAD( 0x80001, 0x40000 ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(39e16e0b) SHA1(9cd5b4b74d5bdf89a348d37a235df7988f91a133) ) // all graphics ROMs labeled as P1 ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(a9ef8b67) SHA1(4d7faf6c0d4fdf98d33c9a01221e15cd5bbdaa88) ) ROM_LOAD32_BYTE( "p1_nba_jam_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a88b961c) SHA1(28d087acedeba67413bcc3fd26a872459fa27161) ) @@ -1424,19 +1444,19 @@ ROM_END ROM_START( nbajamte ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(d7c21bc4) SHA1(e05f0299b955500df6a08b1c0b24b932a9cdfa6a) ) // sldh - rev 4.0 3/23/94 ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(7ad49229) SHA1(e9ceedb0e620809d8a4d42087d806aa296a4cd59) ) // sldh - rev 4.0 3/23/94 - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1460,19 +1480,19 @@ ROM_END ROM_START( nbajamte4 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(f94074f8) SHA1(0d669a38f33b000ec12352ae15ebdd7849b6ad50) ) // sldh - rev 4.0 3/03/94 ROM_LOAD16_BYTE( "l4_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(2c55890b) SHA1(839492d50474a54a434090a5f06548963773aec7) ) // sldh - rev 4.0 3/03/94 - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1496,19 +1516,19 @@ ROM_END ROM_START( nbajamte3 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l3_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(8fdf77b4) SHA1(1a8a178b19d0b8e7a5fd2ddf373a4279321440d0) ) // sldh - rev 3.0 3/04/94 ROM_LOAD16_BYTE( "l3_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(656579ed) SHA1(b038fdc814ebc8d203724fdb2f7501d40f1dc21f) ) // sldh - rev 3.0 3/04/94 - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1532,19 +1552,19 @@ ROM_END ROM_START( nbajamte3a ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l3_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(83f03079) SHA1(2aa95339edb8b50b38f0842c960ca2adee4db5dd) ) // sldh - rev 3.0 2/26/94 ROM_LOAD16_BYTE( "l3_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(121ccb3a) SHA1(c5e76f34b222f33e7af957bd57b45d30f43cb012) ) // sldh - rev 3.0 2/26/94 - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1568,19 +1588,19 @@ ROM_END ROM_START( nbajamte2 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l2.1_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(d009aa29) SHA1(2f9317d3f89488a3593637a37eea4ac68dd1067b) ) ROM_LOAD16_BYTE( "l2.1_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(6c3bfb6a) SHA1(e05cbe33661fb37a929c6a75d9e0f3469cc81d2d) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1604,19 +1624,19 @@ ROM_END ROM_START( nbajamte2a ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l2_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(eaa6fb32) SHA1(8c8c0c6ace2b98679d7fe90e1f9284bdf0e14eaf) ) ROM_LOAD16_BYTE( "l2_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(5a694d9a) SHA1(fb74e4242d9adba03f24a81451ea06e8d9b4af96) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1640,19 +1660,19 @@ ROM_END ROM_START( nbajamte1 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(a9f555ad) SHA1(34f5fc1b003ef8acbb2b38fbacd58d018d20ab1b) ) ROM_LOAD16_BYTE( "l1_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(bd4579b5) SHA1(c893cff931f1e60a1d0d29d2719f514d92fb3490) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1678,19 +1698,19 @@ ROM_END // romset contained only the program ROMs and PCB pics are available, so ideally every other one should be checked if another PCB ever shows up // not marking them as BAD_DUMP as they pass the ROM test ROM_START( nbajamtep2 ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "p2_nba_jam_tournament_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(f90f7450) SHA1(ecc2b801edd1e0529fe0e52471b7876f748cf296) ) ROM_LOAD16_BYTE( "p2_nba_jam_tournament_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(a0d9d49a) SHA1(8fac949b9707d821e35ad2f2decb67b5bab28b40) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1714,19 +1734,19 @@ ROM_END ROM_START( nbajamten ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "l1_nba_jam_tournament_u3_sound_rom.u3", 0x010000, 0x20000, CRC(d4551195) SHA1(e8908fbe4339fb8c93f7e74113dfd25dda1667ea) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "l1_nba_jam_tournament_u12_sound_rom.u12", 0x000000, 0x80000, CRC(4fac97bc) SHA1(bd88d8c3edab0e35ad9f9350bcbaa17cda61d87a) ) ROM_LOAD( "l1_nba_jam_tournament_u13_sound_rom.u13", 0x080000, 0x80000, CRC(6f27b202) SHA1(c1f0db15624d1e7102ce9fd1db49ccf86e8611d6) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "nani-uj12.bin", 0x00000, 0x80000, CRC(a2662e74) SHA1(7a6c18464446baf3d279013eb95bf862b5b3be70) ) ROM_LOAD16_BYTE( "nani-ug12.bin", 0x00001, 0x80000, CRC(40cda5b1) SHA1(2ff51f830aa86f6456c626666e221be1f7bfbfa2) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(04bb9f64) SHA1(9e1a8c37e14cb6fe67f4aa3caa9022f356f1ca64) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(b34b7af3) SHA1(0abb74d2f414bc9da0380a81beb134f3a87c1a0a) ) ROM_LOAD32_BYTE( "l1_nba_jam_tournament_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(a8f22fbb) SHA1(514208a9d6d0c8c2d7847cc02d4387eac90be659) ) @@ -1750,19 +1770,19 @@ ROM_END ROM_START( jdreddp ) - ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */ + ROM_REGION( 0x50000, "adpcm:cpu", 0 ) // sound CPU ROM_LOAD( "t1_judge_dredd_sound_rom_u3.u3", 0x010000, 0x20000, CRC(6154d108) SHA1(54328455ec22ba815de85aa3bfe6405353c64f5c) ) ROM_RELOAD( 0x030000, 0x20000 ) - ROM_REGION( 0x100000, "adpcm:oki", 0 ) /* ADPCM */ + ROM_REGION( 0x100000, "adpcm:oki", 0 ) // ADPCM ROM_LOAD( "t1_judge_dredd_sound_rom_u12.u12", 0x000000, 0x80000, CRC(ef32f202) SHA1(16aea085e63496dec259291de1a64fbeab52f039) ) ROM_LOAD( "t1_judge_dredd_sound_rom_u13.u13", 0x080000, 0x80000, CRC(3dc70473) SHA1(a3d7210301ff0579889009a075092115d9bf0600) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "t1_judge_dredd_game_rom_uj12.uj12", 0x00000, 0x80000, CRC(7e5c8d5a) SHA1(65c0e887fea01846426067adfc4cf60dce4a1e24) ) ROM_LOAD16_BYTE( "t1_judge_dredd_game_rom_ug12.ug12", 0x00001, 0x80000, CRC(a16b8a4a) SHA1(77abb31e7cb3b66c63ef7c1874d8544ae9a02667) ) - ROM_REGION( 0xc00000, "gfxrom", 0 ) + ROM_REGION( 0xc00000, "video", 0 ) ROM_LOAD32_BYTE( "t1_judge_dredd_game_rom_ug14.ug14", 0x000000, 0x80000, CRC(468484d7) SHA1(87e3b87051e3afff097333af90efa0eb4dd61a35) ) ROM_LOAD32_BYTE( "t1_judge_dredd_game_rom_uj14.uj14", 0x000001, 0x80000, CRC(fe6ec0ec) SHA1(3e3b1774e1c5cf6629fbd3aeff36cadff1adfbf9) ) ROM_LOAD32_BYTE( "t1_judge_dredd_game_rom_ug19.ug19", 0x000002, 0x80000, CRC(e076c08e) SHA1(9b52470feac66b258e62e53dfd6a6a74c1e47ac1) ) @@ -1792,36 +1812,36 @@ ROM_END * *************************************/ -GAME( 1992, mk, 0, tunit_adpcm, mk, midtunit_state, init_mktunit, ROT0, "Midway", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mkr4, mk, tunit_adpcm, mk, midtunit_state, init_mktunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1992, mktturbo, mk, tunit_adpcm, mk, midtunit_state, init_mkturbo, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, mk2, 0, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r32e, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.2, European)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r31e, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1, European)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r30, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r21, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r20, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.0)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r14, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.4)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r11, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r42, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "hack", "Mortal Kombat II (rev L4.2, hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2r91, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "hack", "Mortal Kombat II (rev L9.1, hack)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, mk2chal, mk2, tunit_dcs, mk2, midtunit_state, init_mk2, ROT0, "hack", "Mortal Kombat II Challenger (hack)", MACHINE_SUPPORTS_SAVE ) // program ROMs labeled as IMMORTAL KOMBAT II - -GAME( 1993, jdreddp, 0, tunit_adpcm, jdreddp, midtunit_state, init_jdreddp, ROT0, "Midway", "Judge Dredd (rev TA1 7/12/92, location test)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1993, nbajam, 0, tunit_adpcm, nbajam, midtunit_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 3.01 4/07/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nbajamr2, nbajam, tunit_adpcm, nbajam, midtunit_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 2.00 2/10/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nbajamr1, nbajam, tunit_adpcm, nbajam, midtunit_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 1.00 2/1/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nbajamp2, nbajam, tunit_adpcm, nbajam, midtunit_state, init_nbajam, ROT0, "Midway", "NBA Jam (proto v 2.00 1/24/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nbajamp1, nbajam, tunit_adpcm, nbajam, midtunit_state, init_nbajam, ROT0, "Midway", "NBA Jam (proto v 1.01 1/23/93)", MACHINE_SUPPORTS_SAVE ) - -GAME( 1994, nbajamte, 0, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 4.0 3/23/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte4, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 4.0 3/03/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte3, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 3.0 3/04/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte3a, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 3.0 2/26/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte2, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 2.1 2/06/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte2a, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 2.0 1/28/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1994, nbajamte1, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 1.00 1/17/94)", MACHINE_SUPPORTS_SAVE ) -GAME( 1993, nbajamtep2, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (proto 2.00 12/17/93)", MACHINE_SUPPORTS_SAVE ) -GAME( 1995, nbajamten, nbajamte, tunit_adpcm, nbajamte, midtunit_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (Nani Edition, rev 5.2 8/11/95, prototype)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mk, 0, tunit_adpcm, mk, midtunit_adpcm_state, init_mktunit, ROT0, "Midway", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mkr4, mk, tunit_adpcm, mk, midtunit_adpcm_state, init_mktunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1992, mktturbo, mk, tunit_adpcm, mk, midtunit_adpcm_state, init_mkturbo, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, mk2, 0, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r32e, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.2, European)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r31e, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1, European)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r30, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r21, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r20, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.0)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r14, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.4)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r11, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r42, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "hack", "Mortal Kombat II (rev L4.2, hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2r91, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "hack", "Mortal Kombat II (rev L9.1, hack)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, mk2chal, mk2, mk2, mk2, mk2_state, init_mk2, ROT0, "hack", "Mortal Kombat II Challenger (hack)", MACHINE_SUPPORTS_SAVE ) // program ROMs labeled as IMMORTAL KOMBAT II + +GAME( 1993, jdreddp, 0, tunit_adpcm, jdreddp, midtunit_adpcm_state, init_jdreddp, ROT0, "Midway", "Judge Dredd (rev TA1 7/12/92, location test)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1993, nbajam, 0, tunit_adpcm, nbajam, midtunit_adpcm_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 3.01 4/07/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nbajamr2, nbajam, tunit_adpcm, nbajam, midtunit_adpcm_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 2.00 2/10/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nbajamr1, nbajam, tunit_adpcm, nbajam, midtunit_adpcm_state, init_nbajam, ROT0, "Midway", "NBA Jam (rev 1.00 2/1/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nbajamp2, nbajam, tunit_adpcm, nbajam, midtunit_adpcm_state, init_nbajam, ROT0, "Midway", "NBA Jam (proto v 2.00 1/24/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nbajamp1, nbajam, tunit_adpcm, nbajam, midtunit_adpcm_state, init_nbajam, ROT0, "Midway", "NBA Jam (proto v 1.01 1/23/93)", MACHINE_SUPPORTS_SAVE ) + +GAME( 1994, nbajamte, 0, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 4.0 3/23/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte4, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 4.0 3/03/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte3, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 3.0 3/04/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte3a, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 3.0 2/26/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte2, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 2.1 2/06/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte2a, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 2.0 1/28/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1994, nbajamte1, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (rev 1.00 1/17/94)", MACHINE_SUPPORTS_SAVE ) +GAME( 1993, nbajamtep2, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (proto 2.00 12/17/93)", MACHINE_SUPPORTS_SAVE ) +GAME( 1995, nbajamten, nbajamte, tunit_adpcm, nbajamte, midtunit_adpcm_state, init_nbajamte, ROT0, "Midway", "NBA Jam Tournament Edition (Nani Edition, rev 5.2 8/11/95, prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/midway/midtunit.h b/src/mame/midway/midtunit.h index 38c1c26de6786..c7fa9153a1bf2 100644 --- a/src/mame/midway/midtunit.h +++ b/src/mame/midway/midtunit.h @@ -21,79 +21,81 @@ #include "emupal.h" -class midtunit_state : public driver_device +class midtunit_base_state : public driver_device { -public: - midtunit_state(const machine_config &mconfig, device_type type, const char *tag) : +protected: + midtunit_base_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_video(*this, "video"), - m_dcs(*this, "dcs"), m_palette(*this, "palette"), - m_gfxrom(*this, "gfxrom"), - m_cvsd_sound(*this, "cvsd"), - m_adpcm_sound(*this, "adpcm"), m_nvram(*this, "nvram") { } void tunit_core(machine_config &config); + + void machine_start() override; + + void cmos_enable_w(uint16_t data); + void cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t cmos_r(offs_t offset); + + void main_map(address_map &map); + + required_device m_maincpu; + required_device m_video; + required_device m_palette; + + required_shared_ptr m_nvram; + + // CMOS-related variables + uint8_t m_cmos_write_enable = 0; +}; + +class midtunit_adpcm_state : public midtunit_base_state +{ +public: + midtunit_adpcm_state(const machine_config &mconfig, device_type type, const char *tag) : + midtunit_base_state(mconfig, type, tag), + m_adpcm_sound(*this, "adpcm") + { } + void tunit_adpcm(machine_config &config); - void tunit_dcs(machine_config &config); void init_mktunit(); void init_mkturbo(); void init_nbajamte(); void init_nbajam(); void init_jdreddp(); - void init_mk2(); protected: + void machine_start() override; void machine_reset() override; - required_device m_maincpu; - required_device m_video; - optional_device m_dcs; - required_device m_palette; - required_memory_region m_gfxrom; - private: - optional_device m_cvsd_sound; - optional_device m_adpcm_sound; + uint16_t sound_state_r(); + uint16_t sound_r(); + void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - required_shared_ptr m_nvram; - - void midtunit_cmos_enable_w(uint16_t data); - void midtunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midtunit_cmos_r(offs_t offset); - uint16_t midtunit_sound_state_r(); - uint16_t midtunit_sound_r(); - void midtunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t mk_prot_r(offs_t offset); void mk_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t mkturbo_prot_r(); - uint16_t mk2_prot_const_r(); - uint16_t mk2_prot_r(); - uint16_t mk2_prot_shift_r(); - void mk2_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); uint16_t nbajam_prot_r(); void nbajam_prot_w(offs_t offset, uint16_t data); void jdredd_prot_w(offs_t offset, uint16_t data); uint16_t jdredd_prot_r(offs_t offset); - void register_state_saving(); - void init_tunit_generic(int sound); void init_nbajam_common(int te_protection); - /* CMOS-related variables */ - uint8_t m_cmos_write_enable = 0; + void main_adpcm_map(address_map &map); - /* sound-related variables */ - uint8_t m_chip_type = 0; + required_device m_adpcm_sound; + + // sound-related variables uint8_t m_fake_sound_state = 0; - /* protection */ + // protection uint8_t m_mk_prot_index = 0; - uint16_t m_mk2_prot_data = 0; std::unique_ptr m_hidden_ram; const uint32_t *m_nbajam_prot_table = nullptr; @@ -103,8 +105,40 @@ class midtunit_state : public driver_device const uint8_t *m_jdredd_prot_table = nullptr; uint8_t m_jdredd_prot_index = 0; uint8_t m_jdredd_prot_max = 0; +}; - void main_map(address_map &map); +class mk2_state : public midtunit_base_state +{ +public: + mk2_state(const machine_config &mconfig, device_type type, const char *tag) : + midtunit_base_state(mconfig, type, tag), + m_dcs(*this, "dcs") + { } + + void mk2(machine_config &config); + + void init_mk2(); + +protected: + void machine_start() override; + void machine_reset() override; + +private: + uint16_t dcs_state_r(); + uint16_t dcs_r(); + void dcs_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + + uint16_t mk2_prot_const_r(); + uint16_t mk2_prot_r(); + uint16_t mk2_prot_shift_r(); + void mk2_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + + void mk2_map(address_map &map); + + required_device m_dcs; + + // protection + uint16_t m_mk2_prot_data = 0; }; #endif // MAME_MIDWAY_MIDTUNIT_H diff --git a/src/mame/midway/midtunit_m.cpp b/src/mame/midway/midtunit_m.cpp index 92dece3b60a31..1211d4c0cf3c9 100644 --- a/src/mame/midway/midtunit_m.cpp +++ b/src/mame/midway/midtunit_m.cpp @@ -8,15 +8,24 @@ **************************************************************************/ #include "emu.h" -#include "cpu/tms34010/tms34010.h" -#include "cpu/m6809/m6809.h" #include "midtunit.h" +#include "cpu/m6809/m6809.h" +#include "cpu/tms34010/tms34010.h" + -/* constant definitions */ -#define SOUND_ADPCM 1 -#define SOUND_ADPCM_LARGE 2 -#define SOUND_DCS 3 +#define LOG_PROT (1U << 1) +#define LOG_CMOS (1U << 2) +#define LOG_SOUND (1U << 3) + +#define LOG_ALL (LOG_PROT | LOG_CMOS | LOG_SOUND) + +#define VERBOSE (0) +#include "logmacro.h" + +#define LOGPROT(...) LOGMASKED(LOG_PROT, __VA_ARGS__) +#define LOGCMOS(...) LOGMASKED(LOG_CMOS, __VA_ARGS__) +#define LOGSOUND(...) LOGMASKED(LOG_SOUND, __VA_ARGS__) /************************************* @@ -25,18 +34,33 @@ * *************************************/ -void midtunit_state::register_state_saving() +void midtunit_base_state::machine_start() { + // register for state saving save_item(NAME(m_cmos_write_enable)); +} + +void midtunit_adpcm_state::machine_start() +{ + midtunit_base_state::machine_start(); + + // register for state saving save_item(NAME(m_fake_sound_state)); save_item(NAME(m_mk_prot_index)); - save_item(NAME(m_mk2_prot_data)); save_item(NAME(m_nbajam_prot_queue)); save_item(NAME(m_nbajam_prot_index)); save_item(NAME(m_jdredd_prot_index)); save_item(NAME(m_jdredd_prot_max)); } +void mk2_state::machine_start() +{ + midtunit_base_state::machine_start(); + + // register for state saving + save_item(NAME(m_mk2_prot_data)); +} + /************************************* @@ -45,28 +69,28 @@ void midtunit_state::register_state_saving() * *************************************/ -void midtunit_state::midtunit_cmos_enable_w(uint16_t data) +void midtunit_base_state::cmos_enable_w(uint16_t data) { m_cmos_write_enable = 1; } -void midtunit_state::midtunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midtunit_base_state::cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - if (1)/*m_cmos_write_enable*/ + if (1)// m_cmos_write_enable { COMBINE_DATA(m_nvram+offset); m_cmos_write_enable = 0; } else { - logerror("%08X:Unexpected CMOS W @ %05X\n", m_maincpu->pc(), offset); + LOGCMOS("%08X:Unexpected CMOS W @ %05X\n", m_maincpu->pc(), offset); popmessage("Bad CMOS write"); } } -uint16_t midtunit_state::midtunit_cmos_r(offs_t offset) +uint16_t midtunit_base_state::cmos_r(offs_t offset) { return m_nvram[offset]; } @@ -90,28 +114,34 @@ static const uint8_t mk_prot_values[] = 0xff }; -uint16_t midtunit_state::mk_prot_r(offs_t offset) +uint16_t midtunit_adpcm_state::mk_prot_r(offs_t offset) { - logerror("%s:Protection R @ %05X = %04X\n", machine().describe_context(), offset, mk_prot_values[m_mk_prot_index] << 9); + if (!machine().side_effects_disabled()) + LOGPROT("%s:Protection R @ %05X = %04X\n", machine().describe_context(), offset, mk_prot_values[m_mk_prot_index] << 9); - /* just in case */ + // just in case if (m_mk_prot_index >= sizeof(mk_prot_values)) { - logerror("%s:Unexpected protection R @ %05X\n", machine().describe_context(), offset); + if (!machine().side_effects_disabled()) + LOGPROT("%s:Unexpected protection R @ %05X\n", machine().describe_context(), offset); m_mk_prot_index = 0; } - return mk_prot_values[m_mk_prot_index++] << 9; + uint16_t const result = mk_prot_values[m_mk_prot_index] << 9; + if (!machine().side_effects_disabled()) + m_mk_prot_index++; + + return result; } -void midtunit_state::mk_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midtunit_adpcm_state::mk_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (ACCESSING_BITS_8_15) { - int first_val = (data >> 9) & 0x3f; + int const first_val = (data >> 9) & 0x3f; int i; - /* find the desired first value and stop then */ + // find the desired first value and stop then for (i = 0; i < sizeof(mk_prot_values); i++) if (mk_prot_values[i] == first_val) { @@ -119,14 +149,14 @@ void midtunit_state::mk_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) break; } - /* just in case */ + // just in case if (i == sizeof(mk_prot_values)) { - logerror("%s:Unhandled protection W @ %05X = %04X\n", machine().describe_context(), offset, data); + LOGPROT("%s:Unhandled protection W @ %05X = %04X\n", machine().describe_context(), offset, data); m_mk_prot_index = 0; } - logerror("%s:Protection W @ %05X = %04X\n", machine().describe_context(), offset, data); + LOGPROT("%s:Protection W @ %05X = %04X\n", machine().describe_context(), offset, data); } } @@ -138,10 +168,10 @@ void midtunit_state::mk_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) * *************************************/ -uint16_t midtunit_state::mkturbo_prot_r() +uint16_t midtunit_adpcm_state::mkturbo_prot_r() { - /* the security GAL overlays a counter of some sort at 0xfffff400 in ROM &space. - * A startup protection check expects to read back two different values in succession */ + // the security GAL overlays a counter of some sort at 0xfffff400 in ROM &space. + // A startup protection check expects to read back two different values in succession return machine().rand(); } @@ -153,22 +183,22 @@ uint16_t midtunit_state::mkturbo_prot_r() * *************************************/ -uint16_t midtunit_state::mk2_prot_const_r() +uint16_t mk2_state::mk2_prot_const_r() { return 2; } -uint16_t midtunit_state::mk2_prot_r() +uint16_t mk2_state::mk2_prot_r() { return m_mk2_prot_data; } -uint16_t midtunit_state::mk2_prot_shift_r() +uint16_t mk2_state::mk2_prot_shift_r() { return m_mk2_prot_data >> 1; } -void midtunit_state::mk2_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void mk2_state::mk2_prot_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_mk2_prot_data); } @@ -221,18 +251,21 @@ static const uint32_t nbajamte_prot_values[128] = 0x381c2e17, 0x393c3e3f, 0x3a3d1e0f, 0x3b1d0e27, 0x3c3e1f2f, 0x3d1e0f07, 0x3e1f2f37, 0x3f3f3f1f }; -uint16_t midtunit_state::nbajam_prot_r() +uint16_t midtunit_adpcm_state::nbajam_prot_r() { - int result = m_nbajam_prot_queue[m_nbajam_prot_index]; - if (m_nbajam_prot_index < 4) - m_nbajam_prot_index++; + uint16_t const result = m_nbajam_prot_queue[m_nbajam_prot_index]; + if (!machine().side_effects_disabled()) + { + if (m_nbajam_prot_index < 4) + m_nbajam_prot_index++; + } return result; } -void midtunit_state::nbajam_prot_w(offs_t offset, uint16_t data) +void midtunit_adpcm_state::nbajam_prot_w(offs_t offset, uint16_t data) { - int table_index = (offset >> 6) & 0x7f; - uint32_t protval = m_nbajam_prot_table[table_index]; + int const table_index = (offset >> 6) & 0x7f; + uint32_t const protval = m_nbajam_prot_table[table_index]; m_nbajam_prot_queue[0] = data; m_nbajam_prot_queue[1] = ((protval >> 24) & 0xff) << 9; @@ -292,9 +325,9 @@ static const uint8_t jdredd_prot_values_80020[] = 0x39,0x33,0x00,0x00,0x00,0x00,0x00,0x00 }; -void midtunit_state::jdredd_prot_w(offs_t offset, uint16_t data) +void midtunit_adpcm_state::jdredd_prot_w(offs_t offset, uint16_t data) { - logerror("%s:jdredd_prot_w(%04X,%04X)\n", machine().describe_context(), offset*16, data); + LOGPROT("%s:jdredd_prot_w(%04X,%04X)\n", machine().describe_context(), offset*16, data); switch (offset) { @@ -302,69 +335,56 @@ void midtunit_state::jdredd_prot_w(offs_t offset, uint16_t data) m_jdredd_prot_index = 0; m_jdredd_prot_table = jdredd_prot_values_10740; m_jdredd_prot_max = sizeof(jdredd_prot_values_10740); - logerror("-- reset prot table 10740\n"); + LOGPROT("-- reset prot table 10740\n"); break; case 0x1324: m_jdredd_prot_index = 0; m_jdredd_prot_table = jdredd_prot_values_13240; m_jdredd_prot_max = sizeof(jdredd_prot_values_13240); - logerror("-- reset prot table 13240\n"); + LOGPROT("-- reset prot table 13240\n"); break; case 0x7654: m_jdredd_prot_index = 0; m_jdredd_prot_table = jdredd_prot_values_76540; m_jdredd_prot_max = sizeof(jdredd_prot_values_76540); - logerror("-- reset prot table 76540\n"); + LOGPROT("-- reset prot table 76540\n"); break; case 0x7776: m_jdredd_prot_index = 0; m_jdredd_prot_table = jdredd_prot_values_77760; m_jdredd_prot_max = sizeof(jdredd_prot_values_77760); - logerror("-- reset prot table 77760\n"); + LOGPROT("-- reset prot table 77760\n"); break; case 0x8002: m_jdredd_prot_index = 0; m_jdredd_prot_table = jdredd_prot_values_80020; m_jdredd_prot_max = sizeof(jdredd_prot_values_80020); - logerror("-- reset prot table 80020\n"); + LOGPROT("-- reset prot table 80020\n"); break; } } -uint16_t midtunit_state::jdredd_prot_r(offs_t offset) +uint16_t midtunit_adpcm_state::jdredd_prot_r(offs_t offset) { uint16_t result = 0xffff; if (m_jdredd_prot_table && m_jdredd_prot_index < m_jdredd_prot_max) - result = m_jdredd_prot_table[m_jdredd_prot_index++] << 9; + { + result = m_jdredd_prot_table[m_jdredd_prot_index] << 9; + if (!machine().side_effects_disabled()) + m_jdredd_prot_index++; + } - logerror("%s:jdredd_prot_r(%04X) = %04X\n", machine().describe_context(), offset*16, result); + if (!machine().side_effects_disabled()) + LOGPROT("%s:jdredd_prot_r(%04X) = %04X\n", machine().describe_context(), offset*16, result); return result; } - -/************************************* - * - * Generic driver init - * - *************************************/ - -void midtunit_state::init_tunit_generic(int sound) -{ - /* register for state saving */ - register_state_saving(); - - /* load sound ROMs and set up sound handlers */ - m_chip_type = sound; -} - - - /************************************* * * T-unit init (ADPCM) @@ -373,86 +393,78 @@ void midtunit_state::init_tunit_generic(int sound) * *************************************/ -void midtunit_state::init_mktunit() +void midtunit_adpcm_state::init_mktunit() { - /* common init */ - init_tunit_generic(SOUND_ADPCM); - - /* protection */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b00000, 0x1b6ffff, read16sm_delegate(*this, FUNC(midtunit_state::mk_prot_r))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b00000, 0x1b6ffff, write16s_delegate(*this, FUNC(midtunit_state::mk_prot_w))); + // protection + m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b00000, 0x1b6ffff, read16sm_delegate(*this, FUNC(midtunit_adpcm_state::mk_prot_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b00000, 0x1b6ffff, write16s_delegate(*this, FUNC(midtunit_adpcm_state::mk_prot_w))); m_hidden_ram = std::make_unique(43); save_pointer(NAME(m_hidden_ram), 43); - /* sound chip protection (hidden RAM) */ + // sound chip protection (hidden RAM) m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfb9c, 0xfbc6, m_hidden_ram.get()); } -void midtunit_state::init_mkturbo() +void midtunit_adpcm_state::init_mkturbo() { - /* protection */ - m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16smo_delegate(*this, FUNC(midtunit_state::mkturbo_prot_r))); + // protection + m_maincpu->space(AS_PROGRAM).install_read_handler(0xfffff400, 0xfffff40f, read16smo_delegate(*this, FUNC(midtunit_adpcm_state::mkturbo_prot_r))); init_mktunit(); } -void midtunit_state::init_nbajam_common(int te_protection) +void midtunit_adpcm_state::init_nbajam_common(int te_protection) { - /* common init */ - init_tunit_generic(SOUND_ADPCM_LARGE); - /* protection */ + // protection if (!te_protection) { m_nbajam_prot_table = nbajam_prot_values; - m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b14020, 0x1b2503f, read16smo_delegate(*this, FUNC(midtunit_state::nbajam_prot_r))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b14020, 0x1b2503f, write16sm_delegate(*this, FUNC(midtunit_state::nbajam_prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b14020, 0x1b2503f, read16smo_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b14020, 0x1b2503f, write16sm_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_w))); } else { m_nbajam_prot_table = nbajamte_prot_values; - m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b15f40, 0x1b37f5f, read16smo_delegate(*this, FUNC(midtunit_state::nbajam_prot_r))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b15f40, 0x1b37f5f, write16sm_delegate(*this, FUNC(midtunit_state::nbajam_prot_w))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b95f40, 0x1bb7f5f, read16smo_delegate(*this, FUNC(midtunit_state::nbajam_prot_r))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b95f40, 0x1bb7f5f, write16sm_delegate(*this, FUNC(midtunit_state::nbajam_prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b15f40, 0x1b37f5f, read16smo_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b15f40, 0x1b37f5f, write16sm_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x1b95f40, 0x1bb7f5f, read16smo_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_r))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x1b95f40, 0x1bb7f5f, write16sm_delegate(*this, FUNC(midtunit_adpcm_state::nbajam_prot_w))); } m_hidden_ram = std::make_unique(43); save_pointer(NAME(m_hidden_ram), 43); - /* sound chip protection (hidden RAM) */ + // sound chip protection (hidden RAM) if (!te_protection) m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfbaa, 0xfbd4, m_hidden_ram.get()); else m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfbec, 0xfc16, m_hidden_ram.get()); } -void midtunit_state::init_nbajam() +void midtunit_adpcm_state::init_nbajam() { init_nbajam_common(0); } -void midtunit_state::init_nbajamte() +void midtunit_adpcm_state::init_nbajamte() { init_nbajam_common(1); } -void midtunit_state::init_jdreddp() +void midtunit_adpcm_state::init_jdreddp() { - /* common init */ - init_tunit_generic(SOUND_ADPCM_LARGE); - - /* looks like the watchdog needs to be disabled */ + // looks like the watchdog needs to be disabled m_maincpu->space(AS_PROGRAM).nop_write(0x01d81060, 0x01d8107f); - /* protection */ - m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16sm_delegate(*this, FUNC(midtunit_state::jdredd_prot_r)), write16sm_delegate(*this, FUNC(midtunit_state::jdredd_prot_w))); + // protection + m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1b00000, 0x1bfffff, read16sm_delegate(*this, FUNC(midtunit_adpcm_state::jdredd_prot_r)), write16sm_delegate(*this, FUNC(midtunit_adpcm_state::jdredd_prot_w))); m_hidden_ram = std::make_unique(43); save_pointer(NAME(m_hidden_ram), 43); - /* sound chip protection (hidden RAM) */ + // sound chip protection (hidden RAM) m_adpcm_sound->get_cpu()->space(AS_PROGRAM).install_ram(0xfbcf, 0xfbf9, m_hidden_ram.get()); } @@ -466,20 +478,16 @@ void midtunit_state::init_jdreddp() * *************************************/ -void midtunit_state::init_mk2() +void mk2_state::init_mk2() { - /* common init */ - init_tunit_generic(SOUND_DCS); - m_video->set_gfx_rom_large(true); - - /* protection */ - m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16s_delegate(*this, FUNC(midtunit_state::mk2_prot_w))); - m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16s_delegate(*this, FUNC(midtunit_state::mk2_prot_w))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16smo_delegate(*this, FUNC(midtunit_state::mk2_prot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16smo_delegate(*this, FUNC(midtunit_state::mk2_prot_shift_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16smo_delegate(*this, FUNC(midtunit_state::mk2_prot_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16smo_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r))); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16smo_delegate(*this, FUNC(midtunit_state::mk2_prot_const_r))); + // protection + m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f20c60, 0x00f20c7f, write16s_delegate(*this, FUNC(mk2_state::mk2_prot_w))); + m_maincpu->space(AS_PROGRAM).install_write_handler(0x00f42820, 0x00f4283f, write16s_delegate(*this, FUNC(mk2_state::mk2_prot_w))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a190e0, 0x01a190ff, read16smo_delegate(*this, FUNC(mk2_state::mk2_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a191c0, 0x01a191df, read16smo_delegate(*this, FUNC(mk2_state::mk2_prot_shift_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x01a3d0c0, 0x01a3d0ff, read16smo_delegate(*this, FUNC(mk2_state::mk2_prot_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x01d9d1e0, 0x01d9d1ff, read16smo_delegate(*this, FUNC(mk2_state::mk2_prot_const_r))); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x01def920, 0x01def93f, read16smo_delegate(*this, FUNC(mk2_state::mk2_prot_const_r))); } @@ -490,22 +498,22 @@ void midtunit_state::init_mk2() * *************************************/ -void midtunit_state::machine_reset() +void midtunit_adpcm_state::machine_reset() { - /* reset sound */ - switch (m_chip_type) - { - case SOUND_ADPCM: - case SOUND_ADPCM_LARGE: - m_adpcm_sound->reset_write(1); - m_adpcm_sound->reset_write(0); - break; + midtunit_base_state::machine_reset(); - case SOUND_DCS: - m_dcs->reset_w(0); - m_dcs->reset_w(1); - break; - } + // reset sound + m_adpcm_sound->reset_write(1); + m_adpcm_sound->reset_write(0); +} + +void mk2_state::machine_reset() +{ + midtunit_base_state::machine_reset(); + + // reset sound + m_dcs->reset_w(0); + m_dcs->reset_w(1); } @@ -516,59 +524,76 @@ void midtunit_state::machine_reset() * *************************************/ -uint16_t midtunit_state::midtunit_sound_state_r() +uint16_t midtunit_adpcm_state::sound_state_r() { -/* logerror("%s:Sound status read\n", machine().describe_context());*/ - - if (m_chip_type == SOUND_DCS) - return m_dcs->control_r() >> 4; +// LOGSOUND("%s:Sound status read\n", machine().describe_context()); if (m_fake_sound_state) { - m_fake_sound_state--; + if (!machine().side_effects_disabled()) + m_fake_sound_state--; return 0; } return ~0; } -uint16_t midtunit_state::midtunit_sound_r() +uint16_t midtunit_adpcm_state::sound_r() { - logerror("%08X:Sound data read\n", m_maincpu->pc()); - - if (m_chip_type == SOUND_DCS) - return m_dcs->data_r() & 0xff; + if (!machine().side_effects_disabled()) + LOGSOUND("%08X:Sound data read\n", m_maincpu->pc()); return ~0; } -void midtunit_state::midtunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midtunit_adpcm_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - /* check for out-of-bounds accesses */ + // check for out-of-bounds accesses if (!offset) { - logerror("%08X:Unexpected write to sound (lo) = %04X\n", m_maincpu->pc(), data); + LOGSOUND("%08X:Unexpected write to sound (lo) = %04X\n", m_maincpu->pc(), data); return; } - /* call through based on the sound type */ + // call through based on the sound type if (ACCESSING_BITS_0_7 && ACCESSING_BITS_8_15) - switch (m_chip_type) - { - case SOUND_ADPCM: - case SOUND_ADPCM_LARGE: - m_adpcm_sound->reset_write(~data & 0x100); - m_adpcm_sound->write(data & 0xff); + { + m_adpcm_sound->reset_write(~data & 0x100); + m_adpcm_sound->write(data & 0xff); - /* the games seem to check for $82 loops, so this should be just barely enough */ - m_fake_sound_state = 128; - break; + // the games seem to check for $82 loops, so this should be just barely enough + m_fake_sound_state = 128; + } +} - case SOUND_DCS: - logerror("%08X:Sound write = %04X\n", m_maincpu->pc(), data); - m_dcs->reset_w(data & 0x100); - m_dcs->data_w(data & 0xff); - /* the games seem to check for $82 loops, so this should be just barely enough */ - m_fake_sound_state = 128; - break; - } +uint16_t mk2_state::dcs_state_r() +{ +// LOGSOUND("%s:Sound status read\n", machine().describe_context()); + + return m_dcs->control_r() >> 4; +} + +uint16_t mk2_state::dcs_r() +{ + if (!machine().side_effects_disabled()) + LOGSOUND("%08X:Sound data read\n", m_maincpu->pc()); + + return m_dcs->data_r() & 0xff; +} + +void mk2_state::dcs_w(offs_t offset, uint16_t data, uint16_t mem_mask) +{ + // check for out-of-bounds accesses + if (!offset) + { + LOGSOUND("%08X:Unexpected write to sound (lo) = %04X\n", m_maincpu->pc(), data); + return; + } + + // call through based on the sound type + if (ACCESSING_BITS_0_7 && ACCESSING_BITS_8_15) + { + LOGSOUND("%08X:Sound write = %04X\n", m_maincpu->pc(), data); + m_dcs->reset_w(data & 0x100); + m_dcs->data_w(data & 0xff); + } } diff --git a/src/mame/midway/midtunit_v.cpp b/src/mame/midway/midtunit_v.cpp index 591132649cda3..aac74efe2ae63 100644 --- a/src/mame/midway/midtunit_v.cpp +++ b/src/mame/midway/midtunit_v.cpp @@ -23,22 +23,40 @@ #include // Used by JSON logging #include // Used by JSON logging +#include + DEFINE_DEVICE_TYPE(MIDTUNIT_VIDEO, midtunit_video_device, "tunitvid", "Midway T-Unit Video") DEFINE_DEVICE_TYPE(MIDWUNIT_VIDEO, midwunit_video_device, "wunitvid", "Midway W-Unit Video") DEFINE_DEVICE_TYPE(MIDXUNIT_VIDEO, midxunit_video_device, "xunitvid", "Midway X-Unit Video") -/* compile-time options */ -#define LOG_DMA 0 /* DMAs are logged if the 'L' key is pressed */ +// compile-time options +#define LOG_DMA 0 // DMAs are logged if the 'L' key is pressed + +#define LOG_CTRL (1U << 1) +#define LOG_DMACTRL (1U << 2) + +#define LOG_ALL (LOG_CTRL | LOG_DMACTRL) + +#define VERBOSE (0) +#include "logmacro.h" + +#define LOGCTRL(...) LOGMASKED(LOG_CTRL, __VA_ARGS__) +#define LOGDMACTRL(...) LOGMASKED(LOG_DMACTRL, __VA_ARGS__) midtunit_video_device::midtunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) - , m_maincpu(*this, finder_base::DUMMY_TAG) , m_palette(*this, finder_base::DUMMY_TAG) - , m_gfxrom(*this, finder_base::DUMMY_TAG) + , m_gfxrom(*this, DEVICE_SELF) + , m_midtunit_control(0) + , m_gfx_rom_large(false) + , m_gfxbank_offset{0x000000, 0x400000} + , m_videobank_select(0) #if DEBUG_MIDTUNIT_BLITTER , m_debug_palette(*this, "debugpalette") #endif + , m_dma_irq_cb(*this) { + std::fill(std::begin(m_dma_register), std::end(m_dma_register), 0); } midtunit_video_device::midtunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) @@ -49,10 +67,11 @@ midtunit_video_device::midtunit_video_device(const machine_config &mconfig, cons midwunit_video_device::midwunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : midtunit_video_device(mconfig, type, tag, owner, clock) { + m_gfx_rom_large = true; } midwunit_video_device::midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : midtunit_video_device(mconfig, MIDWUNIT_VIDEO, tag, owner, clock) + : midwunit_video_device(mconfig, MIDWUNIT_VIDEO, tag, owner, clock) { } @@ -171,7 +190,7 @@ void midtunit_video_device::device_start() { debug_init(); - /* allocate memory */ + // allocate memory m_local_videoram = std::make_unique(0x100000/2); #if DEBUG_MIDTUNIT_BLITTER @@ -183,15 +202,11 @@ void midtunit_video_device::device_start() m_dma_timer = timer_alloc(FUNC(midtunit_video_device::dma_done), this); - /* reset all the globals */ - m_gfxbank_offset[0] = 0x000000; - m_gfxbank_offset[1] = 0x400000; - - memset(m_dma_register, 0, sizeof(m_dma_register)); + // reset all the globals memset(&m_dma_state, 0, sizeof(dma_state)); - m_dma_state.gfxrom = m_gfxrom->base(); + m_dma_state.gfxrom = &m_gfxrom[0]; - /* register for state saving */ + // register for state saving save_item(NAME(m_midtunit_control)); save_item(NAME(m_gfxbank_offset)); save_pointer(NAME(m_local_videoram), 0x100000/sizeof(m_local_videoram[0])); @@ -202,20 +217,11 @@ void midtunit_video_device::device_start() INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_noskip_scale, false, true); INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_skip_noscale, true, false); INIT_TEMPLATED_DMA_DRAW_GROUP(m_dma_draw_noskip_noscale, false, false); - - m_gfx_rom_large = false; -} - -void midwunit_video_device::device_start() -{ - midtunit_video_device::device_start(); - m_gfx_rom_large = true; } void midxunit_video_device::device_start() { - midtunit_video_device::device_start(); - m_gfx_rom_large = true; + midwunit_video_device::device_start(); m_videobank_select = 1; } @@ -229,7 +235,7 @@ void midxunit_video_device::device_start() uint16_t midtunit_video_device::midtunit_gfxrom_r(offs_t offset) { - uint8_t *base = m_gfxrom->base() + m_gfxbank_offset[(offset >> 21) & 1]; + uint8_t const *const base = &m_gfxrom[m_gfxbank_offset[(offset >> 21) & 1]]; offset = (offset & 0x01fffff) * 2; return base[offset] | (base[offset + 1] << 8); } @@ -237,7 +243,7 @@ uint16_t midtunit_video_device::midtunit_gfxrom_r(offs_t offset) uint16_t midwunit_video_device::midwunit_gfxrom_r(offs_t offset) { - uint8_t *base = m_gfxrom->base() + m_gfxbank_offset[0]; + uint8_t const *const base = &m_gfxrom[m_gfxbank_offset[0]]; offset *= 2; return base[offset] | (base[offset + 1] << 8); } @@ -346,17 +352,17 @@ void midtunit_video_device::midtunit_control_w(offs_t offset, uint16_t data, uin other important bits: bit 2 (0x0004) is toggled periodically */ - logerror("T-unit control = %04X\n", data); + LOGCTRL("T-unit control = %04X\n", data); COMBINE_DATA(&m_midtunit_control); - /* gfx bank select is bit 7 */ + // gfx bank select is bit 7 if (!(m_midtunit_control & 0x0080) || !m_gfx_rom_large) m_gfxbank_offset[0] = 0x000000; else m_gfxbank_offset[0] = 0x800000; - /* video bank select is bit 5 */ + // video bank select is bit 5 m_videobank_select = (m_midtunit_control >> 5) & 1; } @@ -367,14 +373,14 @@ void midwunit_video_device::midwunit_control_w(offs_t offset, uint16_t data, uin other important bits: bit 2 (0x0004) is toggled periodically */ - logerror("Wolf-unit control = %04X\n", data); + LOGCTRL("Wolf-unit control = %04X\n", data); COMBINE_DATA(&m_midtunit_control); - /* gfx bank select is bits 8-9 */ + // gfx bank select is bits 8-9 m_gfxbank_offset[0] = 0x800000 * ((m_midtunit_control >> 8) & 3); - /* video bank select is unknown */ + // video bank select is unknown m_videobank_select = (m_midtunit_control >> 11) & 1; } @@ -425,21 +431,21 @@ uint16_t midxunit_video_device::midxunit_paletteram_r(offs_t offset) template void midtunit_video_device::dma_draw() { - int height = m_dma_state.height << 8; - uint8_t *base = m_dma_state.gfxrom; + int const height = m_dma_state.height << 8; + uint8_t const *const base = m_dma_state.gfxrom; uint32_t offset = m_dma_state.offset; uint16_t pal = m_dma_state.palette; uint16_t color = pal | m_dma_state.color; int sy = m_dma_state.ypos; int iy = 0; int ty; - int mask = (1 << BitsPerPixel) - 1; - int xstep = Scale ? m_dma_state.xstep : 0x100; + int const mask = (1 << BitsPerPixel) - 1; + int const xstep = Scale ? m_dma_state.xstep : 0x100; - /* loop over the height */ + // loop over the height while (iy < height) { - int startskip = m_dma_state.startskip << 8; + int const startskip = m_dma_state.startskip << 8; [[maybe_unused]] int endskip = m_dma_state.endskip << 8; int width = m_dma_state.width << 8; int sx = m_dma_state.xpos; @@ -449,13 +455,13 @@ void midtunit_video_device::dma_draw() int pre, post; uint16_t *d; - /* handle skipping */ + // handle skipping if (Skip) { - uint8_t value = EXTRACTGEN(0xff); + uint8_t const value = EXTRACTGEN(0xff); o += 8; - /* adjust for preskip */ + // adjust for preskip pre = (value & 0x0f) << (m_dma_state.preskip + 8); tx = pre / xstep; if (XFlip) @@ -464,17 +470,17 @@ void midtunit_video_device::dma_draw() sx = (sx + tx) & XPOSMASK; ix += tx * xstep; - /* adjust for postskip */ + // adjust for postskip post = ((value >> 4) & 0x0f) << (m_dma_state.postskip + 8); width -= post; endskip -= post; } - /* handle Y clipping */ + // handle Y clipping if (sy < m_dma_state.topclip || sy > m_dma_state.botclip) goto clipy; - /* handle start skip */ + // handle start skip if (ix < startskip) { tx = ((startskip - ix) / xstep) * xstep; @@ -482,24 +488,24 @@ void midtunit_video_device::dma_draw() o += (tx >> 8) * BitsPerPixel; } - /* handle end skip */ + // handle end skip if ((width >> 8) > m_dma_state.width - m_dma_state.endskip) width = (m_dma_state.width - m_dma_state.endskip) << 8; - /* determine destination pointer */ + // determine destination pointer #if DEBUG_MIDTUNIT_BLITTER d = m_doing_debug_dma ? &m_debug_videoram[sy * 512] : &m_local_videoram[sy * 512]; #else d = &m_local_videoram[sy * 512]; #endif - /* loop until we draw the entire width */ + // loop until we draw the entire width while (ix < width) { - /* only process if not clipped */ + // only process if not clipped if (sx >= m_dma_state.leftclip && sx <= m_dma_state.rightclip) { - /* special case similar handling of zero/non-zero */ + // special case similar handling of zero/non-zero if (Zero == NonZero) { if (Zero == PIXEL_COLOR) @@ -508,12 +514,12 @@ void midtunit_video_device::dma_draw() d[sx] = (EXTRACTGEN(mask)) | pal; } - /* otherwise, read the pixel and look */ + // otherwise, read the pixel and look else { int pixel = (EXTRACTGEN(mask)); - /* non-zero pixel case */ + // non-zero pixel case if (pixel) { if (NonZero == PIXEL_COLOR) @@ -522,7 +528,7 @@ void midtunit_video_device::dma_draw() d[sx] = pixel | pal; } - /* zero pixel case */ + // zero pixel case else { if (Zero == PIXEL_COLOR) @@ -533,13 +539,13 @@ void midtunit_video_device::dma_draw() } } - /* update pointers */ + // update pointers if (XFlip) sx = (sx - 1) & XPOSMASK; else sx = (sx + 1) & XPOSMASK; - /* advance to the next pixel */ + // advance to the next pixel if (!Scale) { ix += 0x100; @@ -555,7 +561,7 @@ void midtunit_video_device::dma_draw() } clipy: - /* advance to the next row */ + // advance to the next row if (m_dma_state.yflip) sy = (sy - 1) & YPOSMASK; else @@ -591,7 +597,7 @@ void midtunit_video_device::dma_draw() if (width > 0) o += width * BitsPerPixel; while (ty--) { - uint8_t value = EXTRACTGEN(0xff); + uint8_t const value = EXTRACTGEN(0xff); o += 8; pre = (value & 0x0f) << m_dma_state.preskip; post = ((value >> 4) & 0x0f) << m_dma_state.postskip; @@ -618,8 +624,8 @@ DEFINE_TEMPLATED_DMA_DRAW_GROUP(false, false); TIMER_CALLBACK_MEMBER(midtunit_video_device::dma_done) { - m_dma_register[DMA_COMMAND] &= ~0x8000; /* tell the cpu we're done */ - m_maincpu->set_input_line(0, ASSERT_LINE); + m_dma_register[DMA_COMMAND] &= ~0x8000; // tell the cpu we're done + m_dma_irq_cb(ASSERT_LINE); } @@ -630,11 +636,11 @@ TIMER_CALLBACK_MEMBER(midtunit_video_device::dma_done) * *************************************/ -uint16_t midtunit_video_device::midtunit_dma_r(offs_t offset) +uint16_t midtunit_video_device::dma_r(offs_t offset) { - /* rmpgwt sometimes reads register 0, expecting it to return the */ - /* current DMA status; thus we map register 0 to register 1 */ - /* openice does it as well */ + // rmpgwt sometimes reads register 0, expecting it to return the + // current DMA status; thus we map register 0 to register 1 + // openice does it as well if (offset == 0) offset = 1; return m_dma_register[offset]; @@ -687,36 +693,36 @@ uint16_t midtunit_video_device::midtunit_dma_r(offs_t offset) * | ----------2----- | select top/bottom or left/right for reg 12/13 */ -void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midtunit_video_device::dma_w(offs_t offset, uint16_t data, uint16_t mem_mask) { static const uint8_t register_map[2][16] = { { 0,1,2,3,4,5,6,7,8,9,10,11,16,17,14,15 }, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 } }; - int regbank = (m_dma_register[DMA_CONFIG] >> 5) & 1; + int const regbank = (m_dma_register[DMA_CONFIG] >> 5) & 1; int pixels = 0; - /* blend with the current register contents */ + // blend with the current register contents int regnum = register_map[regbank][offset]; COMBINE_DATA(&m_dma_register[regnum]); - /* only writes to DMA_COMMAND actually cause actions */ + // only writes to DMA_COMMAND actually cause actions if (regnum != DMA_COMMAND) return; - /* high bit triggers action */ - int command = m_dma_register[DMA_COMMAND]; - m_maincpu->set_input_line(0, CLEAR_LINE); + // high bit triggers action + int const command = m_dma_register[DMA_COMMAND]; + m_dma_irq_cb(CLEAR_LINE); if (!(command & 0x8000)) return; auto profile = g_profiler.start(PROFILER_USER1); - /* determine bpp */ - int bpp = (command >> 12) & 7; + // determine bpp + int const bpp = (command >> 12) & 7; - /* fill in the basic data */ + // fill in the basic data m_dma_state.xpos = m_dma_register[DMA_XSTART] & XPOSMASK; m_dma_state.ypos = m_dma_register[DMA_YSTART] & YPOSMASK; m_dma_state.width = m_dma_register[DMA_WIDTH] & 0x3ff; @@ -724,27 +730,27 @@ void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_ m_dma_state.palette = m_dma_register[DMA_PALETTE] & 0x7f00; m_dma_state.color = m_dma_register[DMA_COLOR] & 0xff; - /* fill in the rev 2 data */ + // fill in the rev 2 data m_dma_state.yflip = (command & 0x20) >> 5; m_dma_state.preskip = (command >> 8) & 3; m_dma_state.postskip = (command >> 10) & 3; m_dma_state.xstep = m_dma_register[DMA_SCALE_X] ? m_dma_register[DMA_SCALE_X] : 0x100; m_dma_state.ystep = m_dma_register[DMA_SCALE_Y] ? m_dma_register[DMA_SCALE_Y] : 0x100; - /* clip the clippers */ + // clip the clippers m_dma_state.topclip = m_dma_register[DMA_TOPCLIP] & 0x1ff; m_dma_state.botclip = m_dma_register[DMA_BOTCLIP] & 0x1ff; m_dma_state.leftclip = m_dma_register[DMA_LEFTCLIP] & 0x3ff; m_dma_state.rightclip = m_dma_register[DMA_RIGHTCLIP] & 0x3ff; - /* determine the offset */ + // determine the offset uint32_t gfxoffset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16); - /* special case: drawing mode C doesn't need to know about any pixel data */ + // special case: drawing mode C doesn't need to know about any pixel data if ((command & 0x0f) == 0x0c) gfxoffset = 0; - /* determine the location */ + // determine the location if (!m_gfx_rom_large && gfxoffset >= 0x2000000) gfxoffset -= 0x2000000; if (gfxoffset >= 0xf8000000) @@ -753,7 +759,7 @@ void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_ m_dma_state.offset = gfxoffset; else { - logerror("DMA source out of range: %08X\n", gfxoffset); + LOGDMACTRL("DMA source out of range: %08X\n", gfxoffset); goto skipdma; } @@ -774,11 +780,11 @@ void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_ } } - /* there seems to be two types of behavior for the DMA chip */ - /* for MK1 and MK2, the upper byte of the LRSKIP is the */ - /* starting skip value, and the lower byte is the ending */ - /* skip value; for the NBA Jam, Hangtime, and Open Ice, the */ - /* full word seems to be the starting skip value. */ + // there seems to be two types of behavior for the DMA chip + // for MK1 and MK2, the upper byte of the LRSKIP is the + // starting skip value, and the lower byte is the ending + // skip value; for the NBA Jam, Hangtime, and Open Ice, the + // full word seems to be the starting skip value. if (command & 0x40) { m_dma_state.startskip = m_dma_register[DMA_LRSKIP] & 0xff; @@ -802,7 +808,7 @@ void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_ } } - /* then draw */ + // then draw if (m_dma_state.xstep == 0x100 && m_dma_state.ystep == 0x100) { if (command & 0x80) @@ -825,7 +831,7 @@ void midtunit_video_device::midtunit_dma_w(offs_t offset, uint16_t data, uint16_ pixels = 0; } - /* signal we're done */ + // signal we're done skipdma: m_dma_timer->adjust(attotime::from_nsec(41 * pixels)); } @@ -844,7 +850,7 @@ TMS340X0_SCANLINE_IND16_CB_MEMBER(midtunit_video_device::scanline_update) uint16_t *const dest = &bitmap.pix(scanline); int coladdr = params->coladdr << 1; - /* copy the non-blanked portions of this scanline */ + // copy the non-blanked portions of this scanline for (int x = params->heblnk; x < params->hsblnk; x++) dest[x] = src[coladdr++ & 0x1ff] & 0x7fff; } @@ -855,14 +861,14 @@ TMS340X0_SCANLINE_IND16_CB_MEMBER(midxunit_video_device::scanline_update) uint16_t const *const src = &m_local_videoram[fulladdr & 0x3fe00]; uint16_t *const dest = &bitmap.pix(scanline); - /* copy the non-blanked portions of this scanline */ + // copy the non-blanked portions of this scanline for (int x = params->heblnk; x < params->hsblnk; x++) dest[x] = src[fulladdr++ & 0x1ff] & 0x7fff; } void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) { - const uint32_t raw_offset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16); + uint32_t const raw_offset = m_dma_register[DMA_OFFSETLO] | (m_dma_register[DMA_OFFSETHI] << 16); if (m_logged_rom[raw_offset >> 6] & (1ULL << (raw_offset & 0x3f))) return; @@ -903,16 +909,16 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) m_log_bitmap.allocate(m_dma_state.width, m_dma_state.height); m_log_bitmap.fill(0); - uint8_t *base = m_dma_state.gfxrom; + uint8_t const *const base = m_dma_state.gfxrom; uint32_t offset = m_dma_state.offset; - uint16_t pal = m_dma_state.palette; - uint16_t color = pal | m_dma_state.color; - int mask = (1 << bpp) - 1; + uint16_t const pal = m_dma_state.palette; + uint16_t const color = pal | m_dma_state.color; + int const mask = (1 << bpp) - 1; - /* loop over the height */ + // loop over the height for (int y = 0; y < m_dma_state.height; y++) { - int startskip = m_dma_state.startskip; + int const startskip = m_dma_state.startskip; [[maybe_unused]] int endskip = m_dma_state.endskip; int width = m_dma_state.width; int ix = 0; @@ -920,24 +926,24 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) uint32_t o = offset; int pre = 0, post = 0; - /* handle skipping */ + // handle skipping if (Skip) { - uint8_t value = EXTRACTGEN(0xff); + uint8_t const value = EXTRACTGEN(0xff); o += 8; - /* adjust for preskip */ + // adjust for preskip pre = (value & 0x0f) << m_dma_state.preskip; tx = pre; ix += tx; - /* adjust for postskip */ + // adjust for postskip post = ((value >> 4) & 0x0f) << m_dma_state.postskip; width -= post; endskip -= post; } - /* handle start skip */ + // handle start skip if (ix < startskip) { tx = (startskip - ix); @@ -945,18 +951,18 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) o += tx * bpp; } - /* handle end skip */ + // handle end skip if (width > m_dma_state.width - m_dma_state.endskip) width = m_dma_state.width - m_dma_state.endskip; bitmap_rgb32::pixel_t *d = &m_log_bitmap.pix(y, ix); - /* determine destination pointer */ + // determine destination pointer - /* loop until we draw the entire width */ + // loop until we draw the entire width while (ix < width) { - /* special case similar handling of zero/non-zero */ + // special case similar handling of zero/non-zero if (Zero == NonZero) { if (Zero == PIXEL_COLOR) @@ -965,12 +971,12 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) *d = m_palette->palette()->entry_list_raw()[(EXTRACTGEN(mask)) | pal]; } - /* otherwise, read the pixel and look */ + // otherwise, read the pixel and look else { - int pixel = (EXTRACTGEN(mask)); + int const pixel = (EXTRACTGEN(mask)); - /* non-zero pixel case */ + // non-zero pixel case if (pixel) { if (NonZero == PIXEL_COLOR) @@ -979,7 +985,7 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) *d = m_palette->palette()->entry_list_raw()[pixel | pal]; } - /* zero pixel case */ + // zero pixel case else { if (Zero == PIXEL_COLOR) @@ -989,13 +995,13 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) } } - /* advance to the next pixel */ + // advance to the next pixel ix++; d++; o += bpp; } - /* advance to the next row */ + // advance to the next row width = m_dma_state.width; if (Skip) { diff --git a/src/mame/midway/midtunit_v.h b/src/mame/midway/midtunit_v.h index 1030fad9b0872..67f3e63fafebe 100644 --- a/src/mame/midway/midtunit_v.h +++ b/src/mame/midway/midtunit_v.h @@ -22,17 +22,19 @@ class midtunit_video_device : public device_t { public: // construction/destruction - template - midtunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag, U &&palette_tag, V &&gfxrom_tag) + template + midtunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&palette_tag) : midtunit_video_device(mconfig, tag, owner, (uint32_t)0) { - m_maincpu.set_tag(std::forward(cpu_tag)); - m_palette.set_tag(std::forward(palette_tag)); - m_gfxrom.set_tag(std::forward(gfxrom_tag)); + m_palette.set_tag(std::forward(palette_tag)); } midtunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + // configuration + auto dma_irq_cb() { return m_dma_irq_cb.bind(); } + void set_gfx_rom_large(bool gfx_rom_large) { m_gfx_rom_large = gfx_rom_large; } + TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg); TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg); TMS340X0_SCANLINE_IND16_CB_MEMBER(scanline_update); @@ -45,13 +47,11 @@ class midtunit_video_device : public device_t uint16_t midtunit_vram_data_r(offs_t offset); uint16_t midtunit_vram_color_r(offs_t offset); - uint16_t midtunit_dma_r(offs_t offset); - void midtunit_dma_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t dma_r(offs_t offset); + void dma_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void midtunit_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void set_gfx_rom_large(bool gfx_rom_large) { m_gfx_rom_large = gfx_rom_large; } - enum op_type_t { PIXEL_SKIP = 0, @@ -67,13 +67,12 @@ class midtunit_video_device : public device_t TIMER_CALLBACK_MEMBER(dma_done); - required_device m_maincpu; required_device m_palette; - required_memory_region m_gfxrom; + required_region_ptr m_gfxrom; emu_timer *m_dma_timer; - /* constants for the DMA chip */ + // constants for the DMA chip static constexpr uint32_t XPOSMASK = 0x3ff; static constexpr uint32_t YPOSMASK = 0x1ff; @@ -102,50 +101,52 @@ class midtunit_video_device : public device_t DMA_SCALE_Y, DMA_TOPCLIP, DMA_BOTCLIP, - DMA_UNKNOWN_E, /* MK1/2 never write here; NBA only writes 0 */ + DMA_UNKNOWN_E, // MK1/2 never write here; NBA only writes 0 DMA_CONFIG, - DMA_LEFTCLIP, /* pseudo-register */ - DMA_RIGHTCLIP /* pseudo-register */ + DMA_LEFTCLIP, // pseudo-register + DMA_RIGHTCLIP // pseudo-register }; - /* graphics-related variables */ + // graphics-related variables uint16_t m_midtunit_control; bool m_gfx_rom_large; - /* videoram-related variables */ + // videoram-related variables uint32_t m_gfxbank_offset[2]; std::unique_ptr m_local_videoram; uint8_t m_videobank_select; - /* DMA-related variables */ + // DMA-related variables uint16_t m_dma_register[18]; struct dma_state { uint8_t * gfxrom; - uint32_t offset; /* source offset, in bits */ - int32_t rowbits; /* source bits to skip each row */ - int32_t xpos; /* x position, clipped */ - int32_t ypos; /* y position, clipped */ - int32_t width; /* horizontal pixel count */ - int32_t height; /* vertical pixel count */ - uint16_t palette; /* palette base */ - uint16_t color; /* current foreground color with palette */ - - uint8_t yflip; /* yflip? */ - uint8_t preskip; /* preskip scale */ - uint8_t postskip; /* postskip scale */ - int32_t topclip; /* top clipping scanline */ - int32_t botclip; /* bottom clipping scanline */ - int32_t leftclip; /* left clipping column */ - int32_t rightclip; /* right clipping column */ - int32_t startskip; /* pixels to skip at start */ - int32_t endskip; /* pixels to skip at end */ - uint16_t xstep; /* 8.8 fixed number scale x factor */ - uint16_t ystep; /* 8.8 fixed number scale y factor */ + uint32_t offset; // source offset, in bits + int32_t rowbits; // source bits to skip each row + int32_t xpos; // x position, clipped + int32_t ypos; // y position, clipped + int32_t width; // horizontal pixel count + int32_t height; // vertical pixel count + uint16_t palette; // palette base + uint16_t color; // current foreground color with palette + + uint8_t yflip; // yflip? + uint8_t preskip; // preskip scale + uint8_t postskip; // postskip scale + int32_t topclip; // top clipping scanline + int32_t botclip; // bottom clipping scanline + int32_t leftclip; // left clipping column + int32_t rightclip; // right clipping column + int32_t startskip; // pixels to skip at start + int32_t endskip; // pixels to skip at end + uint16_t xstep; // 8.8 fixed number scale x factor + uint16_t ystep; // 8.8 fixed number scale y factor }; dma_state m_dma_state; + devcb_write_line m_dma_irq_cb; + #if DEBUG_MIDTUNIT_BLITTER virtual void device_reset() override; virtual void device_add_mconfig(machine_config &config) override; @@ -182,13 +183,11 @@ class midwunit_video_device : public midtunit_video_device { public: // construction/destruction - template - midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag, U &&palette_tag, V &&gfxrom_tag) + template + midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&palette_tag) : midwunit_video_device(mconfig, tag, owner, (uint32_t)0) { - m_maincpu.set_tag(std::forward(cpu_tag)); - m_palette.set_tag(std::forward(palette_tag)); - m_gfxrom.set_tag(std::forward(gfxrom_tag)); + m_palette.set_tag(std::forward(palette_tag)); } midwunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); @@ -200,7 +199,6 @@ class midwunit_video_device : public midtunit_video_device protected: midwunit_video_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock = 0); - virtual void device_start() override; #if DEBUG_MIDTUNIT_BLITTER virtual void device_add_mconfig(machine_config &config) override; #endif @@ -210,13 +208,11 @@ class midxunit_video_device : public midwunit_video_device { public: // construction/destruction - template - midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag, U &&palette_tag, V &&gfxrom_tag) + template + midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&palette_tag) : midwunit_video_device(mconfig, tag, owner, (uint32_t)0) { - m_maincpu.set_tag(std::forward(cpu_tag)); - m_palette.set_tag(std::forward(palette_tag)); - m_gfxrom.set_tag(std::forward(gfxrom_tag)); + m_palette.set_tag(std::forward(palette_tag)); } midxunit_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); diff --git a/src/mame/midway/midwunit.cpp b/src/mame/midway/midwunit.cpp index 93e60ac4cb0a2..53f8a726532b0 100644 --- a/src/mame/midway/midwunit.cpp +++ b/src/mame/midway/midwunit.cpp @@ -98,14 +98,11 @@ PCB Layout #include "midwunit.h" #include "cpu/tms34010/tms34010.h" -#include "cpu/adsp2100/adsp2100.h" #include "machine/nvram.h" #include "screen.h" #include "speaker.h" -#define PIXEL_CLOCK (8000000) - /************************************* * @@ -116,14 +113,14 @@ PCB Layout void midwunit_state::main_map(address_map &map) { map(0x00000000, 0x003fffff).rw(m_video, FUNC(midwunit_video_device::midtunit_vram_r), FUNC(midwunit_video_device::midtunit_vram_w)); - map(0x01000000, 0x013fffff).ram().share("mainram"); - map(0x01400000, 0x0145ffff).rw(FUNC(midwunit_state::midwunit_cmos_r), FUNC(midwunit_state::midwunit_cmos_w)).share("nvram"); - map(0x01480000, 0x014fffff).w(FUNC(midwunit_state::midwunit_cmos_enable_w)); - map(0x01600000, 0x0160001f).rw(FUNC(midwunit_state::midwunit_security_r), FUNC(midwunit_state::midwunit_security_w)); - map(0x01680000, 0x0168001f).rw(FUNC(midwunit_state::midwunit_sound_r), FUNC(midwunit_state::midwunit_sound_w)); - map(0x01800000, 0x0187ffff).rw(FUNC(midwunit_state::midwunit_io_r), FUNC(midwunit_state::midwunit_io_w)); + map(0x01000000, 0x013fffff).ram().share(m_mainram); + map(0x01400000, 0x0145ffff).rw(FUNC(midwunit_state::cmos_r), FUNC(midwunit_state::cmos_w)).share(m_nvram); + map(0x01480000, 0x014fffff).w(FUNC(midwunit_state::cmos_enable_w)); + map(0x01600000, 0x0160001f).rw(FUNC(midwunit_state::security_r), FUNC(midwunit_state::security_w)); + map(0x01680000, 0x0168001f).rw(FUNC(midwunit_state::sound_r), FUNC(midwunit_state::sound_w)); + map(0x01800000, 0x0187ffff).rw(FUNC(midwunit_state::io_r), FUNC(midwunit_state::io_w)); map(0x01880000, 0x018fffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); - map(0x01a00000, 0x01a000ff).mirror(0x00080000).rw(m_video, FUNC(midwunit_video_device::midtunit_dma_r), FUNC(midwunit_video_device::midtunit_dma_w)); + map(0x01a00000, 0x01a000ff).mirror(0x00080000).rw(m_video, FUNC(midwunit_video_device::dma_r), FUNC(midwunit_video_device::dma_w)); map(0x01b00000, 0x01b0001f).rw(m_video, FUNC(midwunit_video_device::midwunit_control_r), FUNC(midwunit_video_device::midwunit_control_w)); map(0x02000000, 0x06ffffff).r(m_video, FUNC(midwunit_video_device::midwunit_gfxrom_r)); map(0xff800000, 0xffffffff).rom().region("maincpu", 0); @@ -625,30 +622,33 @@ INPUT_PORTS_END void midwunit_state::wunit(machine_config &config) { - MIDWUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); + constexpr XTAL PIXEL_CLOCK = 8_MHz_XTAL; + + MIDWUNIT_VIDEO(config, m_video, m_palette); + m_video->dma_irq_cb().set_inputline(m_maincpu, 0); - TMS34010(config, m_maincpu, 50000000); + TMS34010(config, m_maincpu, 50_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &midwunit_state::main_map); - m_maincpu->set_halt_on_reset(false); /* halt on reset */ - m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ - m_maincpu->set_pixels_per_clock(1); /* pixels per clock */ - m_maincpu->set_scanline_ind16_callback("video", FUNC(midtunit_video_device::scanline_update)); /* scanline updater (indexed16) */ - m_maincpu->set_shiftreg_in_callback("video", FUNC(midtunit_video_device::to_shiftreg)); /* write to shiftreg function */ - m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ + m_maincpu->set_halt_on_reset(false); // halt on reset + m_maincpu->set_pixel_clock(PIXEL_CLOCK); // pixel clock + m_maincpu->set_pixels_per_clock(1); // pixels per clock + m_maincpu->set_scanline_ind16_callback(m_video, FUNC(midtunit_video_device::scanline_update)); // scanline updater (indexed16) + m_maincpu->set_shiftreg_in_callback(m_video, FUNC(midtunit_video_device::to_shiftreg)); // write to shiftreg function + m_maincpu->set_shiftreg_out_callback(m_video, FUNC(midtunit_video_device::from_shiftreg)); // read from shiftreg function m_maincpu->set_screen("screen"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - /* video hardware */ - PALETTE(config, "palette").set_format(palette_device::xRGB_555, 32768); + // video hardware + PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 32768); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); // from TMS340 registers screen.set_raw(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274); - screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); + screen.set_screen_update(m_maincpu, FUNC(tms34010_device::tms340x0_ind16)); screen.set_palette(m_palette); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); DCS_AUDIO_8K(config, m_dcs, 0); @@ -712,18 +712,18 @@ A83E 4/6/95 MORTAL KOMBAT III U117 AM.0 7F0B 4/6/95 MORTAL KOMBAT III U114 AM.3 */ ROM_START( mk3 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u2_music_spch.u2", 0x000000, 0x100000, CRC(5273436f) SHA1(e1735842a0159eafe79d878d44e3828df9bfa5bb) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "mk321u54.bin", 0x00000, 0x80000, CRC(9e344401) SHA1(5760b355f0a5c27c9746f33abfdedf4302f1af38) ) ROM_LOAD16_BYTE( "mk321u63.bin", 0x00001, 0x80000, CRC(64d34776) SHA1(d8f09e1e946dc13fec5e9f83fdaf61d4076ba9ea) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -751,18 +751,18 @@ ROM_END ROM_START( mk3r20 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u2_music_spch.u2", 0x000000, 0x100000, CRC(5273436f) SHA1(e1735842a0159eafe79d878d44e3828df9bfa5bb) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "mk320u54.bin", 0x00000, 0x80000, CRC(453da302) SHA1(d9a4814e7abb49ac0eb306ad05adcceac68df6a5) ) ROM_LOAD16_BYTE( "mk320u63.bin", 0x00001, 0x80000, CRC(f8dc0600) SHA1(6eb689d92619c751252155b40af119ad47e94cfa) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -790,18 +790,18 @@ ROM_END ROM_START( mk3r10 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u2_music_spch.u2", 0x000000, 0x100000, CRC(5273436f) SHA1(e1735842a0159eafe79d878d44e3828df9bfa5bb) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "mk310u54.bin", 0x00000, 0x80000, CRC(41829228) SHA1(5686b50a08b528d41b28ef578cfb171da9905c45) ) ROM_LOAD16_BYTE( "mk310u63.bin", 0x00001, 0x80000, CRC(b074e1e8) SHA1(fe1a6f622614b1ebd8edc3edeec442d39ba2924c) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -829,18 +829,18 @@ ROM_END ROM_START( mk3p40 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u2_music_spch.u2", 0x000000, 0x100000, CRC(5273436f) SHA1(e1735842a0159eafe79d878d44e3828df9bfa5bb) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "mk3p40.u54", 0x00000, 0x80000, CRC(4dfb0748) SHA1(8c628a51642c940de8abb795be36123e4008ce15) ) ROM_LOAD16_BYTE( "mk3p40.u63", 0x00001, 0x80000, CRC(f25a8083) SHA1(ff11462d23d9e16f6ee0d77bf85caa996df32618) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -868,21 +868,21 @@ ROM_END ROM_START( umk3 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) /* verified labeled as L2.0 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) // verified labeled as L2.0 ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.2_mortal_kombat_3_u54_ultimate.u54", 0x00000, 0x80000, CRC(712b4db6) SHA1(7015a55f3d745c6aeb8630903e2d5cd9554b2766) ) ROM_LOAD16_BYTE( "l1.2_mortal_kombat_3_u63_ultimate.u63", 0x00001, 0x80000, CRC(6d301faf) SHA1(18a8e29cc3e8ce5cc0e10f8386d43e7f44fd7b75) ) - ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */ + ROM_REGION( 0x1009, "serial_security:pic", 0 ) // security PIC (provides game ID code and serial number) ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -897,12 +897,12 @@ ROM_START( umk3 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) /* PCB pictures show EPROMs labeled as: */ - ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) /* L2.0 MORTAL KOMBAT 3 Uxxx ULTIMATE */ - ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) /* currently unverified if these are the same as for v1.0 & v1.1 UMK3 */ + ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // PCB pictures show EPROMs labeled as: + ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) // L2.0 MORTAL KOMBAT 3 Uxxx ULTIMATE + ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) // currently unverified if these are the same as for v1.0 & v1.1 UMK3 ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - /* sockets U114 through U117 are left empty for this version */ + // sockets U114 through U117 are left empty for this version ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) @@ -912,21 +912,21 @@ ROM_END ROM_START( umk3r11 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) /* verified labeled as L2.0 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) // verified labeled as L2.0 ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.1_mortal_kombat_3_u54_ultimate.u54", 0x00000, 0x80000, CRC(8bb27659) SHA1(a3ffe3d8f21c261b36c7510d620d691a8bbf665b) ) ROM_LOAD16_BYTE( "l1.1_mortal_kombat_3_u63_ultimate.u63", 0x00001, 0x80000, CRC(ea731783) SHA1(2915626090650c4b5adf5b26e736c3ec91ce81a6) ) - ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */ + ROM_REGION( 0x1009, "serial_security:pic", 0 ) // security PIC (provides game ID code and serial number) ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -941,12 +941,12 @@ ROM_START( umk3r11 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) /* Both v1.0 & v1.1 have been found with mask roms */ + ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u120_video_image.u120", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u119_video_image.u119", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u118_video_image.u118", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - /* sockets U114 through U117 are left empty for this version */ + // sockets U114 through U117 are left empty for this version ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u113_video_image.u113", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u112_video_image.u112", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) @@ -956,21 +956,21 @@ ROM_END ROM_START( umk3r10 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "l1.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) /* verified labeled as L1.0 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "l1.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) ) // verified labeled as L1.0 ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) ) ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.0_mortal_kombat_3_u54_ultimate.u54", 0x00000, 0x80000, CRC(dfd735da) SHA1(bcb6d80dbde407d0042ec2f225b2f98740a79203) ) ROM_LOAD16_BYTE( "l1.0_mortal_kombat_3_u63_ultimate.u63", 0x00001, 0x80000, CRC(2dff0c83) SHA1(8942ffa3addf134085ea8d77d56e82593312e7a5) ) - ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */ + ROM_REGION( 0x1009, "serial_security:pic", 0 ) // security PIC (provides game ID code and serial number) ROM_LOAD( "463_mk3_ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) /* all GAME ROMs here are also known to be labeled as P1.0 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) ) // all GAME ROMs here are also known to be labeled as P1.0 ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) ) @@ -985,12 +985,12 @@ ROM_START( umk3r10 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) /* Both v1.0 & v1.1 have been found with mask roms */ + ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u120_video_image.u120", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u119_video_image.u119", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u118_video_image.u118", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) - /* sockets U114 through U117 are left empty for this version */ + // sockets U114 through U117 are left empty for this version ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u113_video_image.u113", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u112_video_image.u112", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) ) @@ -1000,85 +1000,85 @@ ROM_END ROM_START( openice ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "open_ice_l1.2.u2", 0x000000, 0x100000, CRC(8adb5aab) SHA1(4c25bc051c90947f3366f83ac5ca8dc78e26b8a4) ) /* This one labeled as L1.2 */ - ROM_LOAD16_BYTE( "open_ice_l1.u3", 0x200000, 0x100000, CRC(11c61ad6) SHA1(324621d6b486399b6d5ede1fed39d4e448cdeb32) ) /* This one labeled as L1 */ - ROM_LOAD16_BYTE( "open_ice_l1.u4", 0x400000, 0x100000, CRC(04279290) SHA1(daf1e57137ae1c3434194054e69809bfe3ed1fc3) ) /* This one labeled as L1 */ - ROM_LOAD16_BYTE( "open_ice_l1.u5", 0x600000, 0x100000, CRC(e90ad61f) SHA1(59eeabcae7e0e70cdb4472cde64b8a28b07ede98) ) /* This one labeled as L1 */ - - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "open_ice_l1.21.u54", 0x00000, 0x80000, CRC(e4225284) SHA1(d5e267cf35826c106bb0a800363849ed4d489e56) ) /* Labeled as L1.21 */ - ROM_LOAD16_BYTE( "open_ice_l1.21.u63", 0x00001, 0x80000, CRC(97d308a3) SHA1(0a517fab77bc2277884587c7e29e392bb360d27b) ) /* Labeled as L1.21 */ - - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "open_ice_l1.2.u133", 0x0000000, 0x100000, CRC(8a81605c) SHA1(cf397b8da242566b21579b90528857ccd2f93141) ) /* These 4 are labeled as L1.2 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "open_ice_l1.2.u2", 0x000000, 0x100000, CRC(8adb5aab) SHA1(4c25bc051c90947f3366f83ac5ca8dc78e26b8a4) ) // This one labeled as L1.2 + ROM_LOAD16_BYTE( "open_ice_l1.u3", 0x200000, 0x100000, CRC(11c61ad6) SHA1(324621d6b486399b6d5ede1fed39d4e448cdeb32) ) // This one labeled as L1 + ROM_LOAD16_BYTE( "open_ice_l1.u4", 0x400000, 0x100000, CRC(04279290) SHA1(daf1e57137ae1c3434194054e69809bfe3ed1fc3) ) // This one labeled as L1 + ROM_LOAD16_BYTE( "open_ice_l1.u5", 0x600000, 0x100000, CRC(e90ad61f) SHA1(59eeabcae7e0e70cdb4472cde64b8a28b07ede98) ) // This one labeled as L1 + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "open_ice_l1.21.u54", 0x00000, 0x80000, CRC(e4225284) SHA1(d5e267cf35826c106bb0a800363849ed4d489e56) ) // Labeled as L1.21 + ROM_LOAD16_BYTE( "open_ice_l1.21.u63", 0x00001, 0x80000, CRC(97d308a3) SHA1(0a517fab77bc2277884587c7e29e392bb360d27b) ) // Labeled as L1.21 + + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "open_ice_l1.2.u133", 0x0000000, 0x100000, CRC(8a81605c) SHA1(cf397b8da242566b21579b90528857ccd2f93141) ) // These 4 are labeled as L1.2 ROM_LOAD32_BYTE( "open_ice_l1.2.u132", 0x0000001, 0x100000, CRC(cfdd6702) SHA1(0198d2cc2de93a8aa345ba0af8d92713d798be8a) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u131", 0x0000002, 0x100000, CRC(cc428eb7) SHA1(ff2403077453f24bd1b176f57b17649b1b64bccf) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u130", 0x0000003, 0x100000, CRC(74c2d50c) SHA1(7880a28b003aa44878384efcb72b98833383f67e) ) - ROM_LOAD32_BYTE( "open_ice_l1.2.u129", 0x0400000, 0x100000, CRC(9e2ff012) SHA1(35160ab239f0d8efcb2dc67dee4bd8d204226e3d) ) /* These 4 are labeled as L1.2 */ + ROM_LOAD32_BYTE( "open_ice_l1.2.u129", 0x0400000, 0x100000, CRC(9e2ff012) SHA1(35160ab239f0d8efcb2dc67dee4bd8d204226e3d) ) // These 4 are labeled as L1.2 ROM_LOAD32_BYTE( "open_ice_l1.2.u128", 0x0400001, 0x100000, CRC(35d2e610) SHA1(c4bd18f44592299f120344ecaf1464a8b31d80c8) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u127", 0x0400002, 0x100000, CRC(bcbf19fe) SHA1(e28f0238ef020b75b10318e5c3dd4c5472b3638a) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u126", 0x0400003, 0x100000, CRC(8e3106ae) SHA1(58d1fd097e23578195d28671f22cfa3ed161c0f5) ) - ROM_LOAD32_BYTE( "open_ice_l1.u125", 0x0800000, 0x100000, CRC(a7b54550) SHA1(83e3627c4e84466ec10023b0e2259ad86b791fd7) ) /* Yes, these 4 are labeled as L1, NOT L1.2 */ + ROM_LOAD32_BYTE( "open_ice_l1.u125", 0x0800000, 0x100000, CRC(a7b54550) SHA1(83e3627c4e84466ec10023b0e2259ad86b791fd7) ) // Yes, these 4 are labeled as L1, NOT L1.2 ROM_LOAD32_BYTE( "open_ice_l1.u124", 0x0800001, 0x100000, CRC(7c02cb50) SHA1(92d24bcfd66396c52c823b816118eed39c4ef9cd) ) ROM_LOAD32_BYTE( "open_ice_l1.u123", 0x0800002, 0x100000, CRC(d543bd9d) SHA1(a9ff8589fe185ea058b549c2ed4e71f6c50e9638) ) ROM_LOAD32_BYTE( "open_ice_l1.u122", 0x0800003, 0x100000, CRC(3744d291) SHA1(e4484f377a66c4c64b015ef461419d956b6e23e4) ) - ROM_LOAD32_BYTE( "open_ice_l1.2.u121", 0x0c00000, 0x100000, CRC(acd2f7c7) SHA1(82d6f09e63a825b118c36d668427011cd8892eaa) ) /* These 4 are labeled as L1.2 */ + ROM_LOAD32_BYTE( "open_ice_l1.2.u121", 0x0c00000, 0x100000, CRC(acd2f7c7) SHA1(82d6f09e63a825b118c36d668427011cd8892eaa) ) // These 4 are labeled as L1.2 ROM_LOAD32_BYTE( "open_ice_l1.2.u120", 0x0c00001, 0x100000, CRC(4295686a) SHA1(2522e57335bb8cca6d76942d2fd62560f88e37a6) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u119", 0x0c00002, 0x100000, CRC(948b9b27) SHA1(62d031410f491d557e27ba055d3db9d36d5a153c) ) ROM_LOAD32_BYTE( "open_ice_l1.2.u118", 0x0c00003, 0x100000, CRC(9eaaf93e) SHA1(56bd881df5282f659ac68ace960a3b085c13dd9d) ) ROM_END -ROM_START( openicea ) /* PCB had alternate ROM labels showing the dates & checksums */ - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "open_ice_l1.2.u2", 0x000000, 0x100000, CRC(8adb5aab) SHA1(4c25bc051c90947f3366f83ac5ca8dc78e26b8a4) ) /* U2 OPEN ICE HOCKEY R1.2 10/10/95 1900 */ - ROM_LOAD16_BYTE( "open_ice_l1.u3", 0x200000, 0x100000, CRC(11c61ad6) SHA1(324621d6b486399b6d5ede1fed39d4e448cdeb32) ) /* U3 OPEN ICE HOCKEY 9/1/95 4D00 */ - ROM_LOAD16_BYTE( "open_ice_l1.u4", 0x400000, 0x100000, CRC(04279290) SHA1(daf1e57137ae1c3434194054e69809bfe3ed1fc3) ) /* U4 OPEN ICE HOCKEY 9/1/95 4700 */ - ROM_LOAD16_BYTE( "open_ice_l1.u5", 0x600000, 0x100000, CRC(e90ad61f) SHA1(59eeabcae7e0e70cdb4472cde64b8a28b07ede98) ) /* U5 OPEN ICE HOCKEY 9/1/95 C200 */ - - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "open_ice_781c_r1.2a.u54", 0x00000, 0x80000, CRC(63296053) SHA1(9f6fcb1f95a09165c211b569001563b56d06876c) ) /* hand written as 781C R1.21 - game reports as Revision 1.2A */ - ROM_LOAD16_BYTE( "open_ice_6937_r1.2a.u63", 0x00001, 0x80000, CRC(04441034) SHA1(d0af6305749a26adddb17aabb512e0347fcac767) ) /* hand written as 6937 R1.21 - game reports as Revision 1.2A */ - - ROM_REGION( 0x2000000, "gfxrom", 0 ) /* label for U133 is likely for v1.1 with different data for that bank of 4 roms dated 9/14/95 */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u133", 0x0000000, 0x100000, CRC(8a81605c) SHA1(cf397b8da242566b21579b90528857ccd2f93141) ) /* 2M.0 U133 OPEN ICE HOCKEY 9/14/95 EE39 - however, this should be: 2M.0 U133 OPEN ICE HOCKEY 10/17/95 04E5 - Same as parent */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u132", 0x0000001, 0x100000, CRC(cfdd6702) SHA1(0198d2cc2de93a8aa345ba0af8d92713d798be8a) ) /* 2M.1 U132 OPEN ICE HOCKEY 10/17/95 595E */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u131", 0x0000002, 0x100000, CRC(cc428eb7) SHA1(ff2403077453f24bd1b176f57b17649b1b64bccf) ) /* 2M.2 U131 OPEN ICE HOCKEY 10/17/95 B2BF */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u130", 0x0000003, 0x100000, CRC(74c2d50c) SHA1(7880a28b003aa44878384efcb72b98833383f67e) ) /* 2M.3 U130 OPEN ICE HOCKEY 10/17/95 D784 */ - - ROM_LOAD32_BYTE( "open_ice_l1.2.u129", 0x0400000, 0x100000, CRC(9e2ff012) SHA1(35160ab239f0d8efcb2dc67dee4bd8d204226e3d) ) /* 4M.0 U129 OPEN ICE HOCKEY 9/14/95 97E0 */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u128", 0x0400001, 0x100000, CRC(35d2e610) SHA1(c4bd18f44592299f120344ecaf1464a8b31d80c8) ) /* 4M.1 U128 OPEN ICE HOCKEY 9/14/95 96FC */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u127", 0x0400002, 0x100000, CRC(bcbf19fe) SHA1(e28f0238ef020b75b10318e5c3dd4c5472b3638a) ) /* 4M.2 U127 OPEN ICE HOCKEY 9/14/95 6A67 */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u126", 0x0400003, 0x100000, CRC(8e3106ae) SHA1(58d1fd097e23578195d28671f22cfa3ed161c0f5) ) /* 4M.3 U126 OPEN ICE HOCKEY 9/14/95 E92F */ - - ROM_LOAD32_BYTE( "open_ice_l1.u125", 0x0800000, 0x100000, CRC(a7b54550) SHA1(83e3627c4e84466ec10023b0e2259ad86b791fd7) ) /* 6M.0 U125 OPEN ICE HOCKEY 7/11/95 23F8 */ - ROM_LOAD32_BYTE( "open_ice_l1.u124", 0x0800001, 0x100000, CRC(7c02cb50) SHA1(92d24bcfd66396c52c823b816118eed39c4ef9cd) ) /* 6M.1 U124 OPEN ICE HOCKEY 7/11/95 A90C */ - ROM_LOAD32_BYTE( "open_ice_l1.u123", 0x0800002, 0x100000, CRC(d543bd9d) SHA1(a9ff8589fe185ea058b549c2ed4e71f6c50e9638) ) /* 6M.2 U123 OPEN ICE HOCKEY 7/11/95 EA1C */ - ROM_LOAD32_BYTE( "open_ice_l1.u122", 0x0800003, 0x100000, CRC(3744d291) SHA1(e4484f377a66c4c64b015ef461419d956b6e23e4) ) /* 6M.3 U122 OPEN ICE HOCKEY 7/11/95 AA6B */ - - ROM_LOAD32_BYTE( "open_ice_l1.2.u121", 0x0c00000, 0x100000, CRC(acd2f7c7) SHA1(82d6f09e63a825b118c36d668427011cd8892eaa) ) /* 8M.0 U121 OPEN ICE HOCKEY 9/14/95 0A39 */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u120", 0x0c00001, 0x100000, CRC(4295686a) SHA1(2522e57335bb8cca6d76942d2fd62560f88e37a6) ) /* 8M.1 U120 OPEN ICE HOCKEY 9/14/95 64AD */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u119", 0x0c00002, 0x100000, CRC(948b9b27) SHA1(62d031410f491d557e27ba055d3db9d36d5a153c) ) /* 8M.2 U119 OPEN ICE HOCKEY 9/14/95 3446 */ - ROM_LOAD32_BYTE( "open_ice_l1.2.u118", 0x0c00003, 0x100000, CRC(9eaaf93e) SHA1(56bd881df5282f659ac68ace960a3b085c13dd9d) ) /* 8M.3 U118 OPEN ICE HOCKEY 9/14/95 3FD9 */ +ROM_START( openicea ) // PCB had alternate ROM labels showing the dates & checksums + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "open_ice_l1.2.u2", 0x000000, 0x100000, CRC(8adb5aab) SHA1(4c25bc051c90947f3366f83ac5ca8dc78e26b8a4) ) // U2 OPEN ICE HOCKEY R1.2 10/10/95 1900 + ROM_LOAD16_BYTE( "open_ice_l1.u3", 0x200000, 0x100000, CRC(11c61ad6) SHA1(324621d6b486399b6d5ede1fed39d4e448cdeb32) ) // U3 OPEN ICE HOCKEY 9/1/95 4D00 + ROM_LOAD16_BYTE( "open_ice_l1.u4", 0x400000, 0x100000, CRC(04279290) SHA1(daf1e57137ae1c3434194054e69809bfe3ed1fc3) ) // U4 OPEN ICE HOCKEY 9/1/95 4700 + ROM_LOAD16_BYTE( "open_ice_l1.u5", 0x600000, 0x100000, CRC(e90ad61f) SHA1(59eeabcae7e0e70cdb4472cde64b8a28b07ede98) ) // U5 OPEN ICE HOCKEY 9/1/95 C200 + + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "open_ice_781c_r1.2a.u54", 0x00000, 0x80000, CRC(63296053) SHA1(9f6fcb1f95a09165c211b569001563b56d06876c) ) // hand written as 781C R1.21 - game reports as Revision 1.2A + ROM_LOAD16_BYTE( "open_ice_6937_r1.2a.u63", 0x00001, 0x80000, CRC(04441034) SHA1(d0af6305749a26adddb17aabb512e0347fcac767) ) // hand written as 6937 R1.21 - game reports as Revision 1.2A + + ROM_REGION( 0x2000000, "video", 0 ) // label for U133 is likely for v1.1 with different data for that bank of 4 roms dated 9/14/95 + ROM_LOAD32_BYTE( "open_ice_l1.2.u133", 0x0000000, 0x100000, CRC(8a81605c) SHA1(cf397b8da242566b21579b90528857ccd2f93141) ) // 2M.0 U133 OPEN ICE HOCKEY 9/14/95 EE39 - however, this should be: 2M.0 U133 OPEN ICE HOCKEY 10/17/95 04E5 - Same as parent + ROM_LOAD32_BYTE( "open_ice_l1.2.u132", 0x0000001, 0x100000, CRC(cfdd6702) SHA1(0198d2cc2de93a8aa345ba0af8d92713d798be8a) ) // 2M.1 U132 OPEN ICE HOCKEY 10/17/95 595E + ROM_LOAD32_BYTE( "open_ice_l1.2.u131", 0x0000002, 0x100000, CRC(cc428eb7) SHA1(ff2403077453f24bd1b176f57b17649b1b64bccf) ) // 2M.2 U131 OPEN ICE HOCKEY 10/17/95 B2BF + ROM_LOAD32_BYTE( "open_ice_l1.2.u130", 0x0000003, 0x100000, CRC(74c2d50c) SHA1(7880a28b003aa44878384efcb72b98833383f67e) ) // 2M.3 U130 OPEN ICE HOCKEY 10/17/95 D784 + + ROM_LOAD32_BYTE( "open_ice_l1.2.u129", 0x0400000, 0x100000, CRC(9e2ff012) SHA1(35160ab239f0d8efcb2dc67dee4bd8d204226e3d) ) // 4M.0 U129 OPEN ICE HOCKEY 9/14/95 97E0 + ROM_LOAD32_BYTE( "open_ice_l1.2.u128", 0x0400001, 0x100000, CRC(35d2e610) SHA1(c4bd18f44592299f120344ecaf1464a8b31d80c8) ) // 4M.1 U128 OPEN ICE HOCKEY 9/14/95 96FC + ROM_LOAD32_BYTE( "open_ice_l1.2.u127", 0x0400002, 0x100000, CRC(bcbf19fe) SHA1(e28f0238ef020b75b10318e5c3dd4c5472b3638a) ) // 4M.2 U127 OPEN ICE HOCKEY 9/14/95 6A67 + ROM_LOAD32_BYTE( "open_ice_l1.2.u126", 0x0400003, 0x100000, CRC(8e3106ae) SHA1(58d1fd097e23578195d28671f22cfa3ed161c0f5) ) // 4M.3 U126 OPEN ICE HOCKEY 9/14/95 E92F + + ROM_LOAD32_BYTE( "open_ice_l1.u125", 0x0800000, 0x100000, CRC(a7b54550) SHA1(83e3627c4e84466ec10023b0e2259ad86b791fd7) ) // 6M.0 U125 OPEN ICE HOCKEY 7/11/95 23F8 + ROM_LOAD32_BYTE( "open_ice_l1.u124", 0x0800001, 0x100000, CRC(7c02cb50) SHA1(92d24bcfd66396c52c823b816118eed39c4ef9cd) ) // 6M.1 U124 OPEN ICE HOCKEY 7/11/95 A90C + ROM_LOAD32_BYTE( "open_ice_l1.u123", 0x0800002, 0x100000, CRC(d543bd9d) SHA1(a9ff8589fe185ea058b549c2ed4e71f6c50e9638) ) // 6M.2 U123 OPEN ICE HOCKEY 7/11/95 EA1C + ROM_LOAD32_BYTE( "open_ice_l1.u122", 0x0800003, 0x100000, CRC(3744d291) SHA1(e4484f377a66c4c64b015ef461419d956b6e23e4) ) // 6M.3 U122 OPEN ICE HOCKEY 7/11/95 AA6B + + ROM_LOAD32_BYTE( "open_ice_l1.2.u121", 0x0c00000, 0x100000, CRC(acd2f7c7) SHA1(82d6f09e63a825b118c36d668427011cd8892eaa) ) // 8M.0 U121 OPEN ICE HOCKEY 9/14/95 0A39 + ROM_LOAD32_BYTE( "open_ice_l1.2.u120", 0x0c00001, 0x100000, CRC(4295686a) SHA1(2522e57335bb8cca6d76942d2fd62560f88e37a6) ) // 8M.1 U120 OPEN ICE HOCKEY 9/14/95 64AD + ROM_LOAD32_BYTE( "open_ice_l1.2.u119", 0x0c00002, 0x100000, CRC(948b9b27) SHA1(62d031410f491d557e27ba055d3db9d36d5a153c) ) // 8M.2 U119 OPEN ICE HOCKEY 9/14/95 3446 + ROM_LOAD32_BYTE( "open_ice_l1.2.u118", 0x0c00003, 0x100000, CRC(9eaaf93e) SHA1(56bd881df5282f659ac68ace960a3b085c13dd9d) ) // 8M.3 U118 OPEN ICE HOCKEY 9/14/95 3FD9 ROM_END ROM_START( nbahangt ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.3_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(fd9ccca2) SHA1(fc38d2440dd0712d7d5e2d2cca9635efd63a3d85) ) ROM_LOAD16_BYTE( "l1.3_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(57de886f) SHA1(7cc127c7db7a68ea716914f7ddbbaf1356937f97) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1109,17 +1109,17 @@ ROM_END ROM_START( nbahangtm13 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "m1.3_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(3ee3a9f4) SHA1(e5c2ab23f03af5aa493fcc3250f6e9bf38040793) ) ROM_LOAD16_BYTE( "m1.3_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(42e6aeca) SHA1(468ad4095ea54be77e59def04b78fd5fed0616e5) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1150,17 +1150,17 @@ ROM_END ROM_START( nbahangtl12 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.2_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(c90dc3cd) SHA1(62d74e3f9ca290c2cdf0fdc7dbcd7f4004454d46) ) ROM_LOAD16_BYTE( "l1.2_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(1883c461) SHA1(6e72b4d55041cc8d50f2591013b75dd75aa8a9dd) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1191,17 +1191,17 @@ ROM_END ROM_START( nbahangtm12 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "m1.2_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(3be47f64) SHA1(71b54037b89c11c031c1db0e3112ae08f7f28e8c) ) ROM_LOAD16_BYTE( "m1.2_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(ba4344ae) SHA1(86557a21411c18136ac4383cc7e0da78b6f01235) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1232,17 +1232,17 @@ ROM_END ROM_START( nbahangtl11 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.1_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(c2875d98) SHA1(3f88f6f5c15ae03bedda39f71a1deaf549a55516) ) ROM_LOAD16_BYTE( "l1.1_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(6f4728c3) SHA1(c059f4aa72cc5c3edc41e72428b3ebba97cc9417) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1273,17 +1273,17 @@ ROM_END ROM_START( nbahangtm11 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Labeled: L1.0 NBA HANGTIME U 2 MUSIC/SPCH ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "m1.1_nba_hangtime_u_54_game_rom.u54", 0x00000, 0x80000, CRC(113b37f4) SHA1(61fac820a6f6bf9ca74a52d7d4f718e08fc58a36) ) ROM_LOAD16_BYTE( "m1.1_nba_hangtime_u_63_game_rom.u63", 0x00001, 0x80000, CRC(beaa3e92) SHA1(86b2c8278f200fea3df3f4b9e5ceea37cb0e6191) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1323,17 +1323,17 @@ There are known "M" versions (EX: MAX HANGTIME - VER M1.0 11/08/96 ), but it's n those and a standard "L" version. In fact the ROM labels specifically state they are "L" Version ROMs */ ROM_START( nbamht ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Uses NBA Hangtime MUSIC/SPCH ROMs - verified correct ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.03_maximum_hangtime_u54_l_version.u54", 0x00000, 0x80000, CRC(21b0d9e1) SHA1(34fa928bdb222fba1fec2a9f37b853f77922250f) ) // Labeled: L1.03 Maximum Hangtime U54 "L" Version ROM_LOAD16_BYTE( "l1.03_maximum_hangtime_u63_l_version.u63", 0x00001, 0x80000, CRC(c6fdbb97) SHA1(e6cf0c6a94441befdde40b620a182877c11582a5) ) // Labeled: L1.03 Maximum Hangtime U63 "L" Version - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) // Uses NBA Hangtime IMAGE ROMs - verified correct ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1364,17 +1364,17 @@ ROM_END ROM_START( nbamhtl10 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Uses NBA Hangtime MUSIC/SPCH ROMs - verified correct ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l1.0_maximum_hangtime_u54_l_version.u54", 0x00000, 0x80000, CRC(dfb6b3ae) SHA1(1dc59a2d89bf9764a47cebf71b9657c6ae7ce959) ) // Labeled: L1.0 Maximum Hangtime U54 "L" Version ROM_LOAD16_BYTE( "l1.0_maximum_hangtime_u63_l_version.u63", 0x00001, 0x80000, CRC(78da472c) SHA1(b4573ff19dc0d8a99f1bceace872e4999d53317a) ) // Labeled: L1.0 Maximum Hangtime U63 "L" Version - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) // Uses NBA Hangtime IMAGE ROMs - verified correct ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1405,17 +1405,17 @@ ROM_END ROM_START( nbamhtm10 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Uses NBA Hangtime MUSIC/SPCH ROMs - verified correct ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "m1.0_maximum_hangtime_u54_m_version.u54", 0x00000, 0x80000, CRC(e4e665d5) SHA1(8111536e041f69ec35284bf3cae40a85a48d7331) ) // Labeled: L1.0 Maximum Hangtime U54 "M" Version ROM_LOAD16_BYTE( "m1.0_maximum_hangtime_u63_m_version.u63", 0x00001, 0x80000, CRC(51cfda55) SHA1(e8c8326fd57af9916a7fb8159b1d0901f30fd331) ) // Labeled: L1.0 Maximum Hangtime U63 "M" Version - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) // Uses NBA Hangtime IMAGE ROMs - verified correct ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1446,17 +1446,17 @@ ROM_END ROM_START( nbamhtp ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_2_music_spch.u2", 0x000000, 0x100000, CRC(3f0b0d0a) SHA1(e3b8a264686ce7359d86e4926237d8cf17612991) ) // Uses NBA Hangtime MUSIC/SPCH ROMs - verified correct ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_3_music_spch.u3", 0x200000, 0x100000, CRC(ec1db988) SHA1(1cf06d0b75f20ded7db648070e85c056043765bb) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_4_music_spch.u4", 0x400000, 0x100000, CRC(c7f847a3) SHA1(c50175dffa3563ccd5792c59a6b44523f4014544) ) ROM_LOAD16_BYTE( "l1.0_nba_hangtime_u_5_music_spch.u5", 0x600000, 0x100000, CRC(ef19316a) SHA1(d41ae87ab45630a37c73684de42f7f6e0ed8f13b) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "l0.9_maximum_hangtime_u54_l_version.u54", 0x00000, 0x80000, CRC(0fbed60e) SHA1(a017d498a901c1608ffecfe0fb2ec82c7a23f4ea) ) ROM_LOAD16_BYTE( "l0.9_maximum_hangtime_u63_l_version.u63", 0x00001, 0x80000, CRC(a064645a) SHA1(43dba6f64ef1d940f1d1b1764addf40359fcdb51) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_133_image_rom.u133", 0x0000000, 0x100000, CRC(3163feed) SHA1(eb7f128de306933929a0933e36e57760459cb0a1) ) // Uses NBA Hangtime IMAGE ROMs - verified correct ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_132_image_rom.u132", 0x0000001, 0x100000, CRC(428eaf44) SHA1(2897efef4ab1653870b5bebb2762ea85549da03a) ) ROM_LOAD32_BYTE( "l1.0_nba_hangtime_u_131_image_rom.u131", 0x0000002, 0x100000, CRC(5f7c5111) SHA1(14337f50b7b98254b54250af00f8a4a46bd7ee8d) ) @@ -1487,20 +1487,20 @@ ROM_END ROM_START( rmpgwt ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u2_sound.u2", 0x000000, 0x100000, CRC(0e82f83d) SHA1(215eebb6c229ef9ad0fcbcbc6e4e07300c05654f) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u3_sound.u3", 0x200000, 0x100000, CRC(3ff54d15) SHA1(827805602091313ec68ea1bccf667bd3b3fc6b8b) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u4_sound.u4", 0x400000, 0x100000, CRC(5c7f5656) SHA1(6c9d692bad539fec8b5aa0bfb56de3ef3719c68a) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u5_sound.u5", 0x600000, 0x100000, CRC(fd9aaf24) SHA1(d60dc076e72618c99ecac9d081d8c49d337b90c7) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "1.3_rampage_world_u54_game.u54", 0x00000, 0x80000, CRC(2a8f6e1e) SHA1(7a87ad37fa1d1228c4cdd4704ff0aee42e9c86cb) ) ROM_LOAD16_BYTE( "1.3_rampage_world_u63_game.u63", 0x00001, 0x80000, CRC(403ae41e) SHA1(c08d9352efe63849f5d10c1bd1efe2b9dd7382e0) ) - ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */ + ROM_REGION( 0x1009, "serial_security:pic", 0 ) // security PIC (provides game ID code and serial number) ROM_LOAD( "465_rampage_wt.u64", 0x0000, 0x1009, CRC(5c14d850) SHA1(f57aef8350e477252bff1fa0f930c1b5d0ceb03f) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u133_image.u133", 0x0000000, 0x100000, CRC(5b5ac449) SHA1(1c01dde9a9dbd9f4a6cd30aea9f6410cab13c2c9) ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u132_image.u132", 0x0000001, 0x100000, CRC(7b3f09c6) SHA1(477658481ee96d5ce462d5e198d80faff4d4352c) ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u131_image.u131", 0x0000002, 0x100000, CRC(fdecf12e) SHA1(bcbd29009dabed484e2357dc75c38c7d7bade251) ) @@ -1524,20 +1524,20 @@ ROM_END ROM_START( rmpgwt11 ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u2_sound.u2", 0x000000, 0x100000, CRC(0e82f83d) SHA1(215eebb6c229ef9ad0fcbcbc6e4e07300c05654f) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u3_sound.u3", 0x200000, 0x100000, CRC(3ff54d15) SHA1(827805602091313ec68ea1bccf667bd3b3fc6b8b) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u4_sound.u4", 0x400000, 0x100000, CRC(5c7f5656) SHA1(6c9d692bad539fec8b5aa0bfb56de3ef3719c68a) ) ROM_LOAD16_BYTE( "1.0_rampage_world_tour_u5_sound.u5", 0x600000, 0x100000, CRC(fd9aaf24) SHA1(d60dc076e72618c99ecac9d081d8c49d337b90c7) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code ROM_LOAD16_BYTE( "1.1_rampage_world_u54_game.u54", 0x00000, 0x80000, CRC(3aa514eb) SHA1(4ed8db55f257da6d872586d0f9f0cdf1c30e0d22) ) ROM_LOAD16_BYTE( "1.1_rampage_world_u63_game.u63", 0x00001, 0x80000, CRC(031c908f) SHA1(531669b13c33921ff199be1e841dd337c86fec50) ) - ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */ + ROM_REGION( 0x1009, "serial_security:pic", 0 ) // security PIC (provides game ID code and serial number) ROM_LOAD( "465_rampage_wt.u64", 0x0000, 0x1009, CRC(5c14d850) SHA1(f57aef8350e477252bff1fa0f930c1b5d0ceb03f) ) - ROM_REGION( 0x2000000, "gfxrom", 0 ) + ROM_REGION( 0x2000000, "video", 0 ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u133_image.u133", 0x0000000, 0x100000, CRC(5b5ac449) SHA1(1c01dde9a9dbd9f4a6cd30aea9f6410cab13c2c9) ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u132_image.u132", 0x0000001, 0x100000, CRC(7b3f09c6) SHA1(477658481ee96d5ce462d5e198d80faff4d4352c) ) ROM_LOAD32_BYTE( "1.0_rampage_world_tour_u131_image.u131", 0x0000002, 0x100000, CRC(fdecf12e) SHA1(bcbd29009dabed484e2357dc75c38c7d7bade251) ) @@ -1592,18 +1592,18 @@ U63 WRESTLEMANIA Rev1.3 8/9/95 9EFE 8M.3 U118 WRESTLEMANIA REV1.0 6/5/95 E4F1 */ ROM_START( wwfmania ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) /* These 4 are labeled as L1 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) // These 4 are labeled as L1 ROM_LOAD16_BYTE( "wwf_music-spch_l1.u3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.30.u54", 0x00000, 0x80000, CRC(eeb7bf58) SHA1(d93df59aed1672ab38af231d909d9df1a8e30f44) ) /* Labeled as L1.30 */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.30.u63", 0x00001, 0x80000, CRC(09759529) SHA1(cf548ff199428a93b9bc5f4fc1347c4a3cbdf106) ) /* Labeled as L1.30 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "wwf_game_rom_l1.30.u54", 0x00000, 0x80000, CRC(eeb7bf58) SHA1(d93df59aed1672ab38af231d909d9df1a8e30f44) ) // Labeled as L1.30 + ROM_LOAD16_BYTE( "wwf_game_rom_l1.30.u63", 0x00001, 0x80000, CRC(09759529) SHA1(cf548ff199428a93b9bc5f4fc1347c4a3cbdf106) ) // Labeled as L1.30 - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) /* All graphics roms labeled as L1 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) // All graphics roms labeled as L1 ROM_LOAD32_BYTE( "wwf_image_rom_l1.u132", 0x0000001, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u131", 0x0000002, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u130", 0x0000003, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) @@ -1626,18 +1626,18 @@ ROM_END ROM_START( wwfmaniab ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) /* These 4 are labeled as L1 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) // These 4 are labeled as L1 ROM_LOAD16_BYTE( "wwf_music-spch_l1.u3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.20.u54", 0x00000, 0x80000, CRC(1b2dce48) SHA1(f70b6c5b56f9fc15cedfd8e0a95f983f3ea6dbb7) ) /* Labeled as L1.20 */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.20.u63", 0x00001, 0x80000, CRC(1262f0bb) SHA1(e97a5939f10532f7815d08b1a7d63a7554d47d4f) ) /* Labeled as L1.20 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "wwf_game_rom_l1.20.u54", 0x00000, 0x80000, CRC(1b2dce48) SHA1(f70b6c5b56f9fc15cedfd8e0a95f983f3ea6dbb7) ) // Labeled as L1.20 + ROM_LOAD16_BYTE( "wwf_game_rom_l1.20.u63", 0x00001, 0x80000, CRC(1262f0bb) SHA1(e97a5939f10532f7815d08b1a7d63a7554d47d4f) ) // Labeled as L1.20 - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) /* All graphics roms labeled as L1 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) // All graphics roms labeled as L1 ROM_LOAD32_BYTE( "wwf_image_rom_l1.u132", 0x0000001, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u131", 0x0000002, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u130", 0x0000003, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) @@ -1660,18 +1660,18 @@ ROM_END ROM_START( wwfmaniac ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) /* These 4 are labeled as L1 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) // These 4 are labeled as L1 ROM_LOAD16_BYTE( "wwf_music-spch_l1.u3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.10.u54", 0x00000, 0x80000, CRC(ae1a3195) SHA1(89ce1e3dc46b4da2d723b61e868889d05f7d5162) ) /* Labeled as L1.10, test menu shows REV 1.1 */ - ROM_LOAD16_BYTE( "wwf_game_rom_l1.10.u63", 0x00001, 0x80000, CRC(d809eb60) SHA1(9531009fb6e245548ab52ac1cbb6c736d6357cb5) ) /* Labeled as L1.10, test menu shows REV 1.1 */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "wwf_game_rom_l1.10.u54", 0x00000, 0x80000, CRC(ae1a3195) SHA1(89ce1e3dc46b4da2d723b61e868889d05f7d5162) ) // Labeled as L1.10, test menu shows REV 1.1 + ROM_LOAD16_BYTE( "wwf_game_rom_l1.10.u63", 0x00001, 0x80000, CRC(d809eb60) SHA1(9531009fb6e245548ab52ac1cbb6c736d6357cb5) ) // Labeled as L1.10, test menu shows REV 1.1 - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) /* All graphics roms labeled as L1 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) // All graphics roms labeled as L1 ROM_LOAD32_BYTE( "wwf_image_rom_l1.u132", 0x0000001, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u131", 0x0000002, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u130", 0x0000003, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) @@ -1694,18 +1694,18 @@ ROM_END ROM_START( wwfmaniap ) - ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) /* sound data */ - ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) /* These 4 are labeled as L1 */ + ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF ) // sound data + ROM_LOAD16_BYTE( "wwf_music-spch_l1.u2", 0x000000, 0x100000, CRC(a9acb250) SHA1(c1a7773ffdb86dc2c1c90c220482ed6330fcbb55) ) // These 4 are labeled as L1 ROM_LOAD16_BYTE( "wwf_music-spch_l1.u3", 0x200000, 0x100000, CRC(9442b6c9) SHA1(1f887c05ab9ca99078be584d7e9e6c59c8ec1818) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u4", 0x400000, 0x100000, CRC(cee78fac) SHA1(c37d3b4aef47dc80d864497b3013f03220d45482) ) ROM_LOAD16_BYTE( "wwf_music-spch_l1.u5", 0x600000, 0x100000, CRC(5b31fd40) SHA1(35dcf19b223029e17616357d29dd04bbfeb83491) ) - ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */ - ROM_LOAD16_BYTE( "wwf_game_rom_p2.01.u54", 0x00000, 0x80000, CRC(a3d0b6d1) SHA1(974e0d40e3852b4c3233098079ded95110cca62e) ) /* missing labels */ - ROM_LOAD16_BYTE( "wwf_game_rom_p2.01.u63", 0x00001, 0x80000, CRC(22b80ae4) SHA1(4e160df9caf43fcf43ce002af4c88c2a324c4d86) ) /* missing labels */ + ROM_REGION16_LE( 0x100000, "maincpu", 0 ) // 34010 code + ROM_LOAD16_BYTE( "wwf_game_rom_p2.01.u54", 0x00000, 0x80000, CRC(a3d0b6d1) SHA1(974e0d40e3852b4c3233098079ded95110cca62e) ) // missing labels + ROM_LOAD16_BYTE( "wwf_game_rom_p2.01.u63", 0x00001, 0x80000, CRC(22b80ae4) SHA1(4e160df9caf43fcf43ce002af4c88c2a324c4d86) ) // missing labels - ROM_REGION( 0x2000000, "gfxrom", 0 ) - ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) /* All graphics roms labeled as L1 */ + ROM_REGION( 0x2000000, "video", 0 ) + ROM_LOAD32_BYTE( "wwf_image_rom_l1.u133", 0x0000000, 0x100000, CRC(5e1b1e3d) SHA1(55f54e4b0dc775058699b1c0abdd7241ffca0e76) ) // All graphics roms labeled as L1 ROM_LOAD32_BYTE( "wwf_image_rom_l1.u132", 0x0000001, 0x100000, CRC(5943b3b2) SHA1(8ba0b20e7993769736c961d0fda97b2850d1446b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u131", 0x0000002, 0x100000, CRC(0815db22) SHA1(ebd6a8c4f0e8d979af7f173b3f139d91e4857f6b) ) ROM_LOAD32_BYTE( "wwf_image_rom_l1.u130", 0x0000003, 0x100000, CRC(9ee9a145) SHA1(caeb8506e1414e8c58e3031d4a2e0619ef3922b7) ) diff --git a/src/mame/midway/midwunit.h b/src/mame/midway/midwunit.h index 9b1e2b986e27f..ed35c26f0ebcf 100644 --- a/src/mame/midway/midwunit.h +++ b/src/mame/midway/midwunit.h @@ -28,7 +28,6 @@ class midwunit_state : public driver_device , m_video(*this, "video") , m_dcs(*this, "dcs") , m_palette(*this, "palette") - , m_gfxrom(*this, "gfxrom") , m_midway_serial_pic(*this, "serial_security_sim") , m_midway_serial_pic_emu(*this, "serial_security") , m_nvram(*this, "nvram") @@ -55,16 +54,16 @@ class midwunit_state : public driver_device virtual void machine_reset() override; private: - void midwunit_cmos_enable_w(uint16_t data); - void midwunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midwunit_cmos_r(offs_t offset); - void midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midwunit_io_r(offs_t offset); - uint16_t midwunit_security_r(); - void midwunit_security_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - uint16_t midwunit_sound_r(); - uint16_t midwunit_sound_state_r(); - void midwunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void cmos_enable_w(uint16_t data); + void cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t cmos_r(offs_t offset); + void io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t io_r(offs_t offset); + uint16_t security_r(); + void security_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint16_t sound_r(); + uint16_t sound_state_r(); + void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void umk3_palette_hack_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void wwfmania_io_0_w(uint16_t data); @@ -75,7 +74,6 @@ class midwunit_state : public driver_device required_device m_video; required_device m_dcs; required_device m_palette; - required_memory_region m_gfxrom; optional_device m_midway_serial_pic; optional_device m_midway_serial_pic_emu; diff --git a/src/mame/midway/midwunit_m.cpp b/src/mame/midway/midwunit_m.cpp index 37f094cbb1cb8..e0f7964b40f32 100644 --- a/src/mame/midway/midwunit_m.cpp +++ b/src/mame/midway/midwunit_m.cpp @@ -23,13 +23,13 @@ * *************************************/ -void midwunit_state::midwunit_cmos_enable_w(uint16_t data) +void midwunit_state::cmos_enable_w(uint16_t data) { m_cmos_write_enable = 1; } -void midwunit_state::midwunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midwunit_state::cmos_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (m_cmos_write_enable) { @@ -45,7 +45,7 @@ void midwunit_state::midwunit_cmos_w(offs_t offset, uint16_t data, uint16_t mem_ -uint16_t midwunit_state::midwunit_cmos_r(offs_t offset) +uint16_t midwunit_state::cmos_r(offs_t offset) { return m_nvram[offset]; } @@ -58,14 +58,14 @@ uint16_t midwunit_state::midwunit_cmos_r(offs_t offset) * *************************************/ -void midwunit_state::midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midwunit_state::io_w(offs_t offset, uint16_t data, uint16_t mem_mask) { // apply I/O shuffling offset = m_ioshuffle[offset % 16]; offset %= 8; - int oldword = m_iodata[offset]; - int newword = oldword; + uint16_t const oldword = m_iodata[offset]; + uint16_t newword = oldword; COMBINE_DATA(&newword); switch (offset) @@ -73,18 +73,18 @@ void midwunit_state::midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_ma case 1: LOGMASKED(LOG_IO, "%s: Control W @ %05X = %04X\n", machine().describe_context(), offset, data); - /* bit 4 reset sound CPU */ + // bit 4 reset sound CPU m_dcs->reset_w(~newword & 0x10); - /* bit 5 (active low) reset security chip */ + // bit 5 (active low) reset security chip if (m_midway_serial_pic) m_midway_serial_pic->reset_w(newword & 0x20); if (m_midway_serial_pic_emu) m_midway_serial_pic_emu->reset_w(newword & 0x20); break; case 3: - /* watchdog reset */ - /* MK3 resets with this enabled */ -/* watchdog_reset_w(0,0);*/ + // watchdog reset + // MK3 resets with this enabled + // watchdog_reset_w(0,0); break; default: @@ -102,9 +102,9 @@ void midwunit_state::midwunit_io_w(offs_t offset, uint16_t data, uint16_t mem_ma * *************************************/ -uint16_t midwunit_state::midwunit_io_r(offs_t offset) +uint16_t midwunit_state::io_r(offs_t offset) { - /* apply I/O shuffling */ + // apply I/O shuffling offset = m_ioshuffle[offset % 16]; switch (offset) @@ -121,10 +121,11 @@ uint16_t midwunit_state::midwunit_io_r(offs_t offset) if (m_midway_serial_pic) picret = m_midway_serial_pic->status_r(); if (m_midway_serial_pic_emu) picret = m_midway_serial_pic_emu->status_r(); - return (picret << 12) | midwunit_sound_state_r(); + return (picret << 12) | sound_state_r(); } default: - LOGMASKED(LOG_IO | LOG_UNKNOWN, "%s: Unknown I/O read from %d\n", machine().describe_context(), offset); + if (!machine().side_effects_disabled()) + LOGMASKED(LOG_IO | LOG_UNKNOWN, "%s: Unknown I/O read from %d\n", machine().describe_context(), offset); break; } return ~0; @@ -183,12 +184,12 @@ void midwunit_state::umk3_palette_hack_w(offs_t offset, uint16_t data, uint16_t */ COMBINE_DATA(&m_umk3_palette[offset]); m_maincpu->adjust_icount(-100); -/* printf("in=%04X%04X out=%04X%04X\n", m_umk3_palette[3], m_umk3_palette[2], m_umk3_palette[1], m_umk3_palette[0]); */ +// printf("in=%04X%04X out=%04X%04X\n", m_umk3_palette[3], m_umk3_palette[2], m_umk3_palette[1], m_umk3_palette[0]); } void midwunit_state::init_mk3_common() { - /* serial prefixes 439, 528 */ + // serial prefixes 439, 528 //midway_serial_pic_init(machine(), 528); } @@ -226,7 +227,7 @@ void midwunit_state::init_umk3r11() void midwunit_state::init_openice() { - /* serial prefixes 438, 528 */ + // serial prefixes 438, 528 //midway_serial_pic_init(machine(), 528); } @@ -235,7 +236,7 @@ void midwunit_state::init_openice() void midwunit_state::init_nbahangt() { - /* serial prefixes 459, 470, 528 */ + // serial prefixes 459, 470, 528 //midway_serial_pic_init(machine(), 528); } @@ -245,11 +246,11 @@ void midwunit_state::init_nbahangt() // note: other game's PCBs probably shuffle I/O addresses too, but only WWF game code use/require this. void midwunit_state::wwfmania_io_0_w(uint16_t data) { - /* start with the originals */ + // start with the originals for (int i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; - /* based on the data written, shuffle */ + // based on the data written, shuffle switch (data) { case 0: @@ -292,10 +293,10 @@ void midwunit_state::wwfmania_io_0_w(uint16_t data) void midwunit_state::init_wwfmania() { - /* enable I/O shuffling */ + // enable I/O shuffling m_maincpu->space(AS_PROGRAM).install_write_handler(0x01800000, 0x0180000f, write16smo_delegate(*this, FUNC(midwunit_state::wwfmania_io_0_w))); - /* serial prefixes 430, 528 */ + // serial prefixes 430, 528 //midway_serial_pic_init(machine(), 528); } @@ -304,7 +305,7 @@ void midwunit_state::init_wwfmania() void midwunit_state::init_rmpgwt() { - /* serial prefixes 465, 528 */ + // serial prefixes 465, 528 //midway_serial_pic_init(machine(), 528); } @@ -317,11 +318,11 @@ void midwunit_state::init_rmpgwt() void midwunit_state::machine_reset() { - /* reset sound */ + // reset sound m_dcs->reset_w(0); m_dcs->reset_w(1); - /* reset I/O shuffling */ + // reset I/O shuffling for (int i = 0; i < 16; i++) m_ioshuffle[i] = i % 8; } @@ -334,7 +335,7 @@ void midwunit_state::machine_reset() * *************************************/ -uint16_t midwunit_state::midwunit_security_r() +uint16_t midwunit_state::security_r() { uint16_t picret = 0; if (m_midway_serial_pic) picret = m_midway_serial_pic->read(); @@ -343,7 +344,7 @@ uint16_t midwunit_state::midwunit_security_r() } -void midwunit_state::midwunit_security_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midwunit_state::security_w(offs_t offset, uint16_t data, uint16_t mem_mask) { if (offset == 0 && ACCESSING_BITS_0_7) { @@ -360,30 +361,31 @@ void midwunit_state::midwunit_security_w(offs_t offset, uint16_t data, uint16_t * *************************************/ -uint16_t midwunit_state::midwunit_sound_r() +uint16_t midwunit_state::sound_r() { - LOGMASKED(LOG_SOUND, "%s: Sound read\n", machine().describe_context()); + if (!machine().side_effects_disabled()) + LOGMASKED(LOG_SOUND, "%s: Sound read\n", machine().describe_context()); return m_dcs->data_r() & 0xff; } -uint16_t midwunit_state::midwunit_sound_state_r() +uint16_t midwunit_state::sound_state_r() { return m_dcs->control_r(); } -void midwunit_state::midwunit_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midwunit_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - /* check for out-of-bounds accesses */ + // check for out-of-bounds accesses if (offset) { LOGMASKED(LOG_SOUND | LOG_UNKNOWN, "%s: Unexpected write to sound (hi) = %04X\n", machine().describe_context(), data); return; } - /* call through based on the sound type */ + // call through based on the sound type if (ACCESSING_BITS_0_7) { LOGMASKED(LOG_SOUND, "%s: Sound write = %04X\n", machine().describe_context(), data); diff --git a/src/mame/midway/midxunit.cpp b/src/mame/midway/midxunit.cpp index 8a22cf77db178..6a73150f36262 100644 --- a/src/mame/midway/midxunit.cpp +++ b/src/mame/midway/midxunit.cpp @@ -112,7 +112,6 @@ ________________________________________________________________ #include "emu.h" #include "midxunit.h" -#include "cpu/adsp2100/adsp2100.h" #include "cpu/tms34010/tms34010.h" #include "machine/adc0844.h" @@ -120,9 +119,6 @@ ________________________________________________________________ #include "speaker.h" -#define PIXEL_CLOCK (8000000) - - /************************************* * @@ -135,19 +131,19 @@ void midxunit_state::main_map(address_map &map) map(0x00000000, 0x003fffff).rw(m_video, FUNC(midxunit_video_device::midtunit_vram_data_r), FUNC(midxunit_video_device::midtunit_vram_data_w)); map(0x00800000, 0x00bfffff).rw(m_video, FUNC(midxunit_video_device::midtunit_vram_color_r), FUNC(midxunit_video_device::midtunit_vram_color_w)); map(0x20000000, 0x20ffffff).ram(); - map(0x40800000, 0x4fffffff).w(FUNC(midxunit_state::midxunit_unknown_w)); - map(0x60400000, 0x6040001f).rw(FUNC(midxunit_state::midxunit_status_r), FUNC(midxunit_state::midxunit_security_clock_w)); + map(0x40800000, 0x4fffffff).w(FUNC(midxunit_state::unknown_w)); + map(0x60400000, 0x6040001f).rw(FUNC(midxunit_state::status_r), FUNC(midxunit_state::security_clock_w)); map(0x60c00000, 0x60c0001f).portr("IN0"); map(0x60c00020, 0x60c0003f).portr("IN1"); map(0x60c00040, 0x60c0005f).portr("IN2"); map(0x60c00060, 0x60c0007f).portr("DSW"); - map(0x60c00080, 0x60c000df).w(FUNC(midxunit_state::midxunit_io_w)); - map(0x60c000e0, 0x60c000ff).rw(FUNC(midxunit_state::midxunit_security_r), FUNC(midxunit_state::midxunit_security_w)); + map(0x60c00080, 0x60c000df).w(FUNC(midxunit_state::io_w)); + map(0x60c000e0, 0x60c000ff).rw(FUNC(midxunit_state::security_r), FUNC(midxunit_state::security_w)); map(0x80800000, 0x8080001f).rw("adc", FUNC(adc0848_device::read), FUNC(adc0848_device::write)).umask32(0x000000ff); - map(0x80c00000, 0x80c000ff).rw(FUNC(midxunit_state::midxunit_uart_r), FUNC(midxunit_state::midxunit_uart_w)).umask32(0x000000ff); - map(0xa0440000, 0xa047ffff).rw(FUNC(midxunit_state::midxunit_cmos_r), FUNC(midxunit_state::midxunit_cmos_w)).umask32(0x000000ff); + map(0x80c00000, 0x80c000ff).rw(FUNC(midxunit_state::uart_r), FUNC(midxunit_state::uart_w)).umask32(0x000000ff); + map(0xa0440000, 0xa047ffff).rw(FUNC(midxunit_state::cmos_r), FUNC(midxunit_state::cmos_w)).umask32(0x000000ff); map(0xa0800000, 0xa08fffff).rw(m_video, FUNC(midxunit_video_device::midxunit_paletteram_r), FUNC(midxunit_video_device::midxunit_paletteram_w)).share("palette"); - map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(FUNC(midxunit_state::midxunit_dma_r), FUNC(midxunit_state::midxunit_dma_w)); + map(0xc0800000, 0xc08000ff).mirror(0x00400000).rw(FUNC(midxunit_state::dma_r), FUNC(midxunit_state::dma_w)); map(0xf8000000, 0xfeffffff).r(m_video, FUNC(midxunit_video_device::midwunit_gfxrom_r)); map(0xff000000, 0xffffffff).rom().region("maincpu", 0); } @@ -181,7 +177,7 @@ static INPUT_PORTS_START( revx ) PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_START1 ) - PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_TILT ) /* Slam Switch */ + PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_TILT ) // Slam Switch PORT_SERVICE_NO_TOGGLE(0x00000010, IP_ACTIVE_LOW) PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_START2 ) PORT_BIT( 0x00000040, IP_ACTIVE_LOW, IPT_SERVICE1 ) @@ -191,9 +187,9 @@ static INPUT_PORTS_START( revx ) PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_VOLUME_UP ) - PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_INTERLOCK ) /* coin door */ + PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_INTERLOCK ) // coin door PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_BILL1 ) /* bill validator */ + PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_BILL1 ) // bill validator PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_START("DSW") @@ -269,27 +265,30 @@ INPUT_PORTS_END void midxunit_state::midxunit(machine_config &config) { - MIDXUNIT_VIDEO(config, m_video, m_maincpu, m_palette, m_gfxrom); + constexpr XTAL PIXEL_CLOCK = 8_MHz_XTAL; + + MIDXUNIT_VIDEO(config, m_video, m_palette); + m_video->dma_irq_cb().set_inputline(m_maincpu, 0); - /* basic machine hardware */ - TMS34020(config, m_maincpu, 40000000); + // basic machine hardware + TMS34020(config, m_maincpu, 40_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &midxunit_state::main_map); - m_maincpu->set_halt_on_reset(false); /* halt on reset */ - m_maincpu->set_pixel_clock(PIXEL_CLOCK); /* pixel clock */ - m_maincpu->set_pixels_per_clock(1); /* pixels per clock */ - m_maincpu->set_scanline_ind16_callback("video", FUNC(midxunit_video_device::scanline_update)); /* scanline updater (indexed16) */ - m_maincpu->set_shiftreg_in_callback("video", FUNC(midxunit_video_device::to_shiftreg)); /* write to shiftreg function */ - m_maincpu->set_shiftreg_out_callback("video", FUNC(midtunit_video_device::from_shiftreg)); /* read from shiftreg function */ + m_maincpu->set_halt_on_reset(false); // halt on reset + m_maincpu->set_pixel_clock(PIXEL_CLOCK); // pixel clock + m_maincpu->set_pixels_per_clock(1); // pixels per clock + m_maincpu->set_scanline_ind16_callback(m_video, FUNC(midxunit_video_device::scanline_update)); // scanline updater (indexed16) + m_maincpu->set_shiftreg_in_callback(m_video, FUNC(midxunit_video_device::to_shiftreg)); // write to shiftreg function + m_maincpu->set_shiftreg_out_callback(m_video, FUNC(midtunit_video_device::from_shiftreg)); // read from shiftreg function m_maincpu->set_screen("screen"); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - /* video hardware */ - PALETTE(config, "palette").set_format(palette_device::xRGB_555, 32768); + // video hardware + PALETTE(config, m_palette).set_format(palette_device::xRGB_555, 32768); screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); screen.set_raw(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274); - screen.set_screen_update("maincpu", FUNC(tms34010_device::tms340x0_ind16)); + screen.set_screen_update(m_maincpu, FUNC(tms34010_device::tms340x0_ind16)); screen.set_palette(m_palette); PIC16C57(config, m_pic, 625000); // need to be verified @@ -308,7 +307,7 @@ void midxunit_state::midxunit(machine_config &config) adc.ch5_callback().set_ioport("AN4"); adc.ch6_callback().set_ioport("AN5"); - /* sound hardware */ + // sound hardware SPEAKER(config, "mono").front_center(); DCS_AUDIO_2K_UART(config, m_dcs, 0); @@ -344,7 +343,7 @@ ROM_START( revx ) ROM_REGION( 0x2000, "pic", 0 ) ROM_LOAD( "419_revolution-x_u444.u444", 0x0000000, 0x2000, BAD_DUMP CRC(517e0110) SHA1(cd603c66794ff426dd2994fc1a0c0c8e6bbd864b) ) // manually restored - ROM_REGION( 0x1000000, "gfxrom", 0 ) + ROM_REGION( 0x1000000, "video", 0 ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u120.u120", 0x0000000, 0x80000, CRC(523af1f0) SHA1(a67c0fd757e860fc1c1236945952a295b4d5df5a) ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u121.u121", 0x0000001, 0x80000, CRC(78201d93) SHA1(fb0b8f887eec433f7624f387d7fb6f633ea30d7c) ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u122.u122", 0x0000002, 0x80000, CRC(2cf36144) SHA1(22ed0eefa2c7c836811fac5f717c3f38254eabc2) ) @@ -411,7 +410,7 @@ ROM_START( revxp5 ) ROM_REGION( 0x2000, "pic", 0 ) ROM_LOAD( "419_revolution-x_u444.u444", 0x0000000, 0x2000, BAD_DUMP CRC(517e0110) SHA1(cd603c66794ff426dd2994fc1a0c0c8e6bbd864b) ) // manually restored - ROM_REGION( 0x1000000, "gfxrom", 0 ) + ROM_REGION( 0x1000000, "video", 0 ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u120.u120", 0x0000000, 0x80000, CRC(523af1f0) SHA1(a67c0fd757e860fc1c1236945952a295b4d5df5a) ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u121.u121", 0x0000001, 0x80000, CRC(78201d93) SHA1(fb0b8f887eec433f7624f387d7fb6f633ea30d7c) ) ROM_LOAD32_BYTE( "p5_revolution_x_game_rom_u122.u122", 0x0000002, 0x80000, CRC(2cf36144) SHA1(22ed0eefa2c7c836811fac5f717c3f38254eabc2) ) diff --git a/src/mame/midway/midxunit.h b/src/mame/midway/midxunit.h index 35d1bd19a5774..fb88b009768d1 100644 --- a/src/mame/midway/midxunit.h +++ b/src/mame/midway/midxunit.h @@ -30,7 +30,6 @@ class midxunit_state : public driver_device , m_video(*this, "video") , m_dcs(*this, "dcs") , m_palette(*this, "palette") - , m_gfxrom(*this, "gfxrom") , m_nvram(*this, "nvram") , m_pic(*this, "pic") , m_gun_recoil(*this, "Player%u_Gun_Recoil", 1U) @@ -44,20 +43,20 @@ class midxunit_state : public driver_device virtual void machine_reset() override; private: - uint8_t midxunit_cmos_r(offs_t offset); - void midxunit_cmos_w(offs_t offset, uint8_t data); - void midxunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void midxunit_unknown_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + uint8_t cmos_r(offs_t offset); + void cmos_w(offs_t offset, uint8_t data); + void io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); + void unknown_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); void adc_int_w(int state); - uint32_t midxunit_status_r(); - uint8_t midxunit_uart_r(offs_t offset); - void midxunit_uart_w(offs_t offset, uint8_t data); - uint32_t midxunit_security_r(); - void midxunit_security_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - void midxunit_security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - void midxunit_dcs_output_full(int state); - uint32_t midxunit_dma_r(offs_t offset, uint32_t mem_mask = ~0); - void midxunit_dma_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + uint32_t status_r(); + uint8_t uart_r(offs_t offset); + void uart_w(offs_t offset, uint8_t data); + uint32_t security_r(); + void security_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); + void dcs_output_full(int state); + uint32_t dma_r(offs_t offset, uint32_t mem_mask = ~0); + void dma_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); void main_map(address_map &map); @@ -65,7 +64,6 @@ class midxunit_state : public driver_device required_device m_video; required_device m_dcs; required_device m_palette; - required_memory_region m_gfxrom; required_device m_nvram; required_device m_pic; diff --git a/src/mame/midway/midxunit_m.cpp b/src/mame/midway/midxunit_m.cpp index 1bd54a55ba1d8..6b2507592d281 100644 --- a/src/mame/midway/midxunit_m.cpp +++ b/src/mame/midway/midxunit_m.cpp @@ -24,12 +24,12 @@ * *************************************/ -uint8_t midxunit_state::midxunit_cmos_r(offs_t offset) +uint8_t midxunit_state::cmos_r(offs_t offset) { return m_nvram_data[offset]; } -void midxunit_state::midxunit_cmos_w(offs_t offset, uint8_t data) +void midxunit_state::cmos_w(offs_t offset, uint8_t data) { m_nvram_data[offset] = data; } @@ -41,19 +41,17 @@ void midxunit_state::midxunit_cmos_w(offs_t offset, uint8_t data) * *************************************/ -void midxunit_state::midxunit_io_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::io_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - int oldword, newword; - offset = (offset / 2) % 8; - oldword = m_iodata[offset]; - newword = oldword; + uint16_t const oldword = m_iodata[offset]; + uint16_t newword = oldword; COMBINE_DATA(&newword); switch (offset) { case 2: - /* watchdog reset */ + // watchdog reset // watchdog_reset_w(0,0); break; @@ -75,15 +73,15 @@ void midxunit_state::midxunit_io_w(offs_t offset, uint16_t data, uint16_t mem_ma } -void midxunit_state::midxunit_unknown_w(offs_t offset, uint16_t data, uint16_t mem_mask) +void midxunit_state::unknown_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - int offs = offset / 0x40000; + int const offs = offset / 0x40000; if (offs == 1 && ACCESSING_BITS_0_7) m_dcs->reset_w(~data & 2); if (ACCESSING_BITS_0_7 && offset % 0x40000 == 0) - LOGMASKED(LOG_UNKNOWN, "%s: midxunit_unknown_w @ %d = %02X\n", machine().describe_context(), offs, data & 0xff); + LOGMASKED(LOG_UNKNOWN, "%s: unknown_w @ %d = %02X\n", machine().describe_context(), offs, data & 0xff); } @@ -100,9 +98,9 @@ void midxunit_state::adc_int_w(int state) * *************************************/ -uint32_t midxunit_state::midxunit_status_r() +uint32_t midxunit_state::status_r() { - /* low bit indicates whether the ADC is done reading the current input */ + // low bit indicates whether the ADC is done reading the current input return (m_pic_status << 1) | (m_adc_int ? 1 : 0); } @@ -114,32 +112,32 @@ uint32_t midxunit_state::midxunit_status_r() * *************************************/ -void midxunit_state::midxunit_dcs_output_full(int state) +void midxunit_state::dcs_output_full(int state) { - /* only signal if not in loopback state */ + // only signal if not in loopback state if (m_uart[1] != 0x66) m_maincpu->set_input_line(1, state ? ASSERT_LINE : CLEAR_LINE); } -uint8_t midxunit_state::midxunit_uart_r(offs_t offset) +uint8_t midxunit_state::uart_r(offs_t offset) { uint8_t result = 0; - /* switch off the offset */ + // switch off the offset switch (offset) { - case 0: /* register 0 must return 0x13 in order to pass the self test */ + case 0: // register 0 must return 0x13 in order to pass the self test result = 0x13; break; - case 1: /* register 1 contains the status */ + case 1: // register 1 contains the status - /* loopback case: data always ready, and always ok to send */ + // loopback case: data always ready, and always ok to send if (m_uart[1] == 0x66) result |= 5; - /* non-loopback case: bit 0 means data ready, bit 2 means ok to send */ + // non-loopback case: bit 0 means data ready, bit 2 means ok to send else { int temp = m_dcs->control_r(); @@ -149,28 +147,29 @@ uint8_t midxunit_state::midxunit_uart_r(offs_t offset) } break; - case 3: /* register 3 contains the data read */ + case 3: // register 3 contains the data read - /* loopback case: feed back last data wrtten */ + // loopback case: feed back last data wrtten if (m_uart[1] == 0x66) result = m_uart[3]; - /* non-loopback case: read from the DCS system */ + // non-loopback case: read from the DCS system else { - LOGMASKED(LOG_SOUND, "%08X:Sound read\n", m_maincpu->pc()); + if (!machine().side_effects_disabled()) + LOGMASKED(LOG_SOUND, "%08X:Sound read\n", m_maincpu->pc()); result = m_dcs->data_r(); } break; - case 5: /* register 5 seems to be like 3, but with in/out swapped */ + case 5: // register 5 seems to be like 3, but with in/out swapped - /* loopback case: data always ready, and always ok to send */ + // loopback case: data always ready, and always ok to send if (m_uart[1] == 0x66) result |= 5; - /* non-loopback case: bit 0 means data ready, bit 2 means ok to send */ + // non-loopback case: bit 0 means data ready, bit 2 means ok to send else { int temp = m_dcs->control_r(); @@ -180,37 +179,38 @@ uint8_t midxunit_state::midxunit_uart_r(offs_t offset) } break; - default: /* everyone else reads themselves */ + default: // everyone else reads themselves result = m_uart[offset]; break; } - LOGMASKED(LOG_UART, "%s: UART R @ %X = %02X\n", machine().describe_context(), offset, result); + if (!machine().side_effects_disabled()) + LOGMASKED(LOG_UART, "%s: UART R @ %X = %02X\n", machine().describe_context(), offset, result); return result; } -void midxunit_state::midxunit_uart_w(offs_t offset, uint8_t data) +void midxunit_state::uart_w(offs_t offset, uint8_t data) { - /* switch off the offset */ + // switch off the offset switch (offset) { - case 3: /* register 3 contains the data to be sent */ + case 3: // register 3 contains the data to be sent - /* loopback case: don't feed through */ + // loopback case: don't feed through if (m_uart[1] == 0x66) m_uart[3] = data; - /* non-loopback case: send to the DCS system */ + // non-loopback case: send to the DCS system else m_dcs->data_w(data); break; - case 5: /* register 5 write seems to reset things */ + case 5: // register 5 write seems to reset things m_dcs->data_r(); break; - default: /* everyone else just stores themselves */ + default: // everyone else just stores themselves m_uart[offset] = data; break; } @@ -258,7 +258,7 @@ void midxunit_state::machine_start() void midxunit_state::machine_reset() { - /* reset sound */ + // reset sound m_dcs->reset_w(0); m_dcs->reset_w(1); @@ -267,7 +267,7 @@ void midxunit_state::machine_reset() m_pic_clk = 0; m_pic_status = 0; - m_dcs->set_io_callbacks(write_line_delegate(*this, FUNC(midxunit_state::midxunit_dcs_output_full)), write_line_delegate(*this)); + m_dcs->set_io_callbacks(write_line_delegate(*this, FUNC(midxunit_state::dcs_output_full)), write_line_delegate(*this)); } @@ -278,19 +278,19 @@ void midxunit_state::machine_reset() * *************************************/ -uint32_t midxunit_state::midxunit_security_r() +uint32_t midxunit_state::security_r() { return m_pic_data; } -void midxunit_state::midxunit_security_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void midxunit_state::security_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_0_7) m_pic_command = data & 0x0f; } -void midxunit_state::midxunit_security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void midxunit_state::security_clock_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_0_7) m_pic_clk = BIT(data, 1); @@ -304,23 +304,23 @@ void midxunit_state::midxunit_security_clock_w(offs_t offset, uint32_t data, uin * *************************************/ -uint32_t midxunit_state::midxunit_dma_r(offs_t offset, uint32_t mem_mask) +uint32_t midxunit_state::dma_r(offs_t offset, uint32_t mem_mask) { uint32_t result = 0; if (ACCESSING_BITS_16_31) - result |= m_video->midtunit_dma_r(offset * 2); + result |= m_video->dma_r(offset * 2); if (ACCESSING_BITS_0_15) - result |= uint32_t(m_video->midtunit_dma_r(offset * 2 + 1)) << 16; + result |= uint32_t(m_video->dma_r(offset * 2 + 1)) << 16; return result; } -void midxunit_state::midxunit_dma_w(offs_t offset, uint32_t data, uint32_t mem_mask) +void midxunit_state::dma_w(offs_t offset, uint32_t data, uint32_t mem_mask) { if (ACCESSING_BITS_16_31) - m_video->midtunit_dma_w(offset * 2, data & 0xffff); + m_video->dma_w(offset * 2, data & 0xffff); if (ACCESSING_BITS_0_15) - m_video->midtunit_dma_w(offset * 2 + 1, data >> 16); + m_video->dma_w(offset * 2 + 1, data >> 16); } From 01b97e2222c31223996efdf4e7b042410e985957 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 21 Apr 2024 04:11:53 +1000 Subject: [PATCH 05/46] srcclean and cleanup: * makefile: srcclean batches of twenty files - improves performance when process creation or filesystem walk is expensive. * midway/midtunit.cpp: Removed a few unnecessary lines. --- makefile | 10 +++++----- src/devices/bus/ti99/peb/bwg.cpp | 4 ++-- src/devices/bus/ti99/peb/myarcfdc.cpp | 4 ++-- src/devices/bus/ti99/peb/ti_fdc.cpp | 8 ++++---- src/devices/sound/swx00.cpp | 4 ++-- src/mame/funworld/4roses.cpp | 8 ++++---- src/mame/itech/itech32.cpp | 22 +++++++++++----------- src/mame/konami/konamim2.cpp | 4 ++-- src/mame/midway/midtunit.cpp | 9 ++++----- src/mame/midway/midtunit_v.cpp | 6 +++--- src/mame/midway/midwunit.cpp | 6 +++--- src/mame/midway/midyunit.h | 2 +- src/mame/midway/midyunit_m.cpp | 2 +- src/mame/misc/calomega.cpp | 2 +- src/mame/namco/namcops2.cpp | 2 +- src/mame/pacman/pacman.cpp | 4 ++-- 16 files changed, 48 insertions(+), 49 deletions(-) diff --git a/makefile b/makefile index 3a886bbf6bbfd..f50500fbc5d3b 100644 --- a/makefile +++ b/makefile @@ -1638,11 +1638,11 @@ ifeq (posix,$(SHELLTYPE)) -name \*.mm -o \ -name \*.lay -o \ -name \*.lst \ - \) -exec ./srcclean {} \; >&2 - $(SILENT) find hash \( -name \*.hsi -o -name \*.xml \) -exec ./srcclean {} \; >&2 - $(SILENT) find bgfx \( -name \*.json \) -exec ./srcclean {} \; >&2 - $(SILENT) find plugins \( -name \*.lua -o -name \*.json \) -exec ./srcclean {} \; >&2 - $(SILENT) find scripts \( -name \*.lua \) -exec ./srcclean {} \; >&2 + \) -print0 | xargs -0 -n 20 ./srcclean >&2 + $(SILENT) find hash \( -name \*.hsi -o -name \*.xml \) -print0 | xargs -0 -n 20 ./srcclean >&2 + $(SILENT) find bgfx \( -name \*.json \) -print0 | xargs -0 -n 20 ./srcclean >&2 + $(SILENT) find plugins \( -name \*.lua -o -name \*.json \) -print0 | xargs -0 -n 20 ./srcclean >&2 + $(SILENT) find scripts \( -name \*.lua \) -print0 | xargs -0 -n 20 ./srcclean >&2 else $(shell for /r src %%i in (*.c, *.cpp, *.h, *.hpp, *.hxx, *.ipp, *.mm, *.lay, *.lst) do srcclean %%i >&2 ) $(shell for /r hash %%i in (*.hsi, *.xml) do srcclean %%i >&2 ) diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp index 3f6d21a293b16..25472b0ed12c0 100644 --- a/src/devices/bus/ti99/peb/bwg.cpp +++ b/src/devices/bus/ti99/peb/bwg.cpp @@ -503,7 +503,7 @@ void snug_bwg_device::motorona_w(int state) // Set all motors for (auto & elem : m_floppy) - if (elem->get_device() != nullptr) + if (elem->get_device() != nullptr) elem->get_device()->mon_w((state==ASSERT_LINE)? 0 : 1); // The motor-on line also connects to the wait state logic @@ -543,7 +543,7 @@ void snug_bwg_device::device_reset() m_address = 0; m_WDsel = false; m_WDsel0 = false; - + for (auto &flop : m_floppy) { if (flop->get_device() != nullptr) diff --git a/src/devices/bus/ti99/peb/myarcfdc.cpp b/src/devices/bus/ti99/peb/myarcfdc.cpp index 6d96c9587c12d..de8d98962dbde 100644 --- a/src/devices/bus/ti99/peb/myarcfdc.cpp +++ b/src/devices/bus/ti99/peb/myarcfdc.cpp @@ -364,14 +364,14 @@ void myarc_fdc_device::device_reset() else LOGMASKED(LOG_CONFIG, "Connector %d has no floppy attached\n", flop->basetag()); } - + if (ioport("CONTROLLER")->read()==0) m_wdc = m_wd1770; else m_wdc = m_wd1772; m_dec_high = (ioport("AMADECODE")->read()!=0); - + m_pal->set_board(this); } diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp index 2bb69dfbca6b3..3daeb24d41fb5 100644 --- a/src/devices/bus/ti99/peb/ti_fdc.cpp +++ b/src/devices/bus/ti99/peb/ti_fdc.cpp @@ -256,7 +256,7 @@ void ti_fdc_device::dvena_w(int state) // Set all motors for (auto & elem : m_floppy) - if (elem->get_device() != nullptr) + if (elem->get_device() != nullptr) elem->get_device()->mon_w((state==ASSERT_LINE)? 0 : 1); // The motor-on line also connects to the wait state logic @@ -326,7 +326,7 @@ void ti_fdc_device::select_drive(int n, int state) { LOGMASKED(LOG_WARN, "Warning: DSK%d selected while DSK%d not yet unselected\n", n, m_sel_floppy); } - + if (m_floppy[n-1]->get_device() != nullptr) { m_sel_floppy = n; @@ -360,7 +360,7 @@ void ti_fdc_device::device_reset() m_selected = false; m_inDsrArea = false; m_WDsel = false; - + for (auto &flop : m_floppy) { if (flop->get_device() != nullptr) @@ -368,7 +368,7 @@ void ti_fdc_device::device_reset() else LOGMASKED(LOG_CONFIG, "Connector %d has no floppy attached\n", flop->basetag()); } - + m_sel_floppy = 0; } diff --git a/src/devices/sound/swx00.cpp b/src/devices/sound/swx00.cpp index 5ce1ee79d579f..26800471268d5 100644 --- a/src/devices/sound/swx00.cpp +++ b/src/devices/sound/swx00.cpp @@ -565,7 +565,7 @@ void swx00_sound_device::sound_stream_update(sound_stream &stream, std::vector> 2)*3; switch(spos & 3) { @@ -601,7 +601,7 @@ void swx00_sound_device::sound_stream_update(sound_stream &stream, std::vector> 1); if(spos & 1) { diff --git a/src/mame/funworld/4roses.cpp b/src/mame/funworld/4roses.cpp index 9c9f0493c1152..30c368fa0c193 100644 --- a/src/mame/funworld/4roses.cpp +++ b/src/mame/funworld/4roses.cpp @@ -50,8 +50,8 @@ - The color palettes are stored in a normal ROM. - - The code initializes a couple of inexistent PIAs 6821 that handle the I/O, so surely - these are emulated/simulated. However, set Rugby has both physical PIAs in the PCB. + - The code initializes a couple of inexistent PIAs 6821 that handle the I/O, so surely + these are emulated/simulated. However, set Rugby has both physical PIAs in the PCB. *********************************************************************************** @@ -434,10 +434,10 @@ static const gfx_layout charlayout = 4, 8, 0x1000, -// RGN_FRAC(1,2), +// RGN_FRAC(1,2), 4, { 0, 4, 0x8000*8, 0x8000*8+4 }, -// { RGN_FRAC(0,2), RGN_FRAC(0,2) + 4, RGN_FRAC(1,2), RGN_FRAC(1,2) + 4 }, +// { RGN_FRAC(0,2), RGN_FRAC(0,2) + 4, RGN_FRAC(1,2), RGN_FRAC(1,2) + 4 }, { 3, 2, 1, 0 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 8*4*2 diff --git a/src/mame/itech/itech32.cpp b/src/mame/itech/itech32.cpp index be0f3ecd92c10..24ea102e505d7 100644 --- a/src/mame/itech/itech32.cpp +++ b/src/mame/itech/itech32.cpp @@ -3223,7 +3223,7 @@ ROM_END // There is known to exist a PCB with hand written labels shown as V1.23 -ROM_START( sftmj114 ) // Version 1.14N (Japan), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board +ROM_START( sftmj114 ) // Version 1.14N (Japan), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board ROM_REGION32_BE( CODE_SIZE, "maindata", 0 ) ROM_LOAD32_BYTE( "sfmn_prom0_v1.14.prom0", 0x00000, 0x40000, CRC(2a0c0bb7) SHA1(5722a399ed5dff55d47e096fb04a5d5b16de2f9a) ) ROM_LOAD32_BYTE( "sfmn_prom1_v1.14.prom1", 0x00001, 0x40000, CRC(088aa12c) SHA1(3c488068edea7ee726b7b837fedeeb0374a7b1ac) ) @@ -3258,7 +3258,7 @@ ROM_START( sftmj114 ) // Version 1.14N (Japan), P/N 1064 REV 1 Mainboard, P/N ROM_LOAD16_BYTE( "sfm_srom3.srom3", 0x000000, 0x080000, CRC(4f181534) SHA1(e858a33b22558665427146ec79dfba48edc20c2c) ) ROM_END -ROM_START( sftmj112 ) // Version 1.12N (Japan), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board +ROM_START( sftmj112 ) // Version 1.12N (Japan), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board ROM_REGION32_BE( CODE_SIZE, "maindata", 0 ) ROM_LOAD32_BYTE( "sfmn_prom0_v1.12.prom0", 0x00000, 0x40000, CRC(640a04a8) SHA1(adc7f5880962cbcc5f9f28e72a84070da6e2ec36) ) // CAPCOM labels ROM_LOAD32_BYTE( "sfmn_prom1_v1.12.prom1", 0x00001, 0x40000, CRC(2a27b690) SHA1(f63c3665ec030ecc2d7a10ead182941ade1c79d0) ) @@ -3293,7 +3293,7 @@ ROM_START( sftmj112 ) // Version 1.12N (Japan), P/N 1064 REV 1 Mainboard, P/N ROM_LOAD16_BYTE( "sfm_srom3.srom3", 0x000000, 0x080000, CRC(4f181534) SHA1(e858a33b22558665427146ec79dfba48edc20c2c) ) ROM_END -ROM_START( sftmk112 ) // Version 1.12K (Korea), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board +ROM_START( sftmk112 ) // Version 1.12K (Korea), P/N 1064 REV 1 Mainboard, P/N 1073 REV 0 ROM board, P/N 1066 REV 2 Sound board ROM_REGION32_BE( CODE_SIZE, "maindata", 0 ) ROM_LOAD32_BYTE( "sfmk_prom0_v1.12.prom0", 0x00000, 0x40000, CRC(1864ca77) SHA1(44702d69a5ee6a11328281943e04bd64b12b02a1) ) // CAPCOM labels ROM_LOAD32_BYTE( "sfmk_prom1_v1.12.prom1", 0x00001, 0x40000, CRC(a93c52aa) SHA1(51539e79cfe8a2826f77b09ec8beeb94c2bb0767) ) @@ -3465,7 +3465,7 @@ ROM_START( shufshot137 ) // Version 1.37 (PCB P/N 1083 Rev 2) ROM_LOAD16_BYTE( "shf_srom1.srom1", 0x200000, 0x80000, CRC(8c89948a) SHA1(1054eca5de352c17f34f31ef16297ba6177a37ba) ) ROM_END -ROM_START( shufshot135 ) // Version 1.35 (PCB P/N 1083 Rev 2) - Not offically released? - found on dev CD +ROM_START( shufshot135 ) // Version 1.35 (PCB P/N 1083 Rev 2) - Not offically released? - found on dev CD ROM_REGION32_BE( CODE_SIZE, "maindata", 0 ) ROM_LOAD32_BYTE( "shot_prom0_v1.35.prom0", 0x00000, 0x20000, CRC(1a1d510c) SHA1(b1919beee499fb4e213a987ad796742dbfbd540b) ) ROM_LOAD32_BYTE( "shot_prom1_v1.35.prom1", 0x00001, 0x20000, CRC(5d7d5017) SHA1(8330339bd45c30066650a2a6cc7e12f365c91608) ) @@ -4035,7 +4035,7 @@ ROM_START( gt97s121 ) // Version 1.21S for the 3 tier type PCB with short ROM bo ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "gtg3_srom1_nr++.srom1", 0x000000, 0x100000, CRC(44983bd7) SHA1(a6ac966ec113b079434d7f871e4ce7266206d234) ) // actually labeled "GTG3 SROM1 NR**" - ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" + ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" ROM_END ROM_START( gt97v120 ) // Version 1.20 @@ -4246,7 +4246,7 @@ ROM_START( gt98s100 ) // Version 1.00S for the 3 tier type PCB with short ROM bo ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "gtg3_srom1_nr++.srom1", 0x000000, 0x100000, CRC(44983bd7) SHA1(a6ac966ec113b079434d7f871e4ce7266206d234) ) // actually labeled "GTG3 SROM1 NR**" - ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" + ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" ROM_END ROM_START( gt98t303 ) // Version 3.03 Tournament Edition (PCB P/N 1083 Rev 2) @@ -4406,7 +4406,7 @@ ROM_START( gt99s100 ) // Version 1.00S for the 3 tier type PCB with short ROM ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "gtg3_srom1_nr++.srom1", 0x000000, 0x100000, CRC(44983bd7) SHA1(a6ac966ec113b079434d7f871e4ce7266206d234) ) // actually labeled "GTG3 SROM1 NR**" - ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" + ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" ROM_END ROM_START( gt99t400 ) // Version 4.00 Tournament Edition (PCB P/N 1083 Rev 2) @@ -4572,7 +4572,7 @@ ROM_START( gt2ks100 ) // Version 1.00S for the 3 tier type PCB with short ROM ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "gtg3_srom1_nr++.srom1", 0x000000, 0x100000, CRC(44983bd7) SHA1(a6ac966ec113b079434d7f871e4ce7266206d234) ) // actually labeled "GTG3 SROM1 NR**" - ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" + ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" ROM_END ROM_START( gt2kt500 ) // Version 5.00 Tournament Edition (PCB P/N 1083 Rev 2) @@ -4630,7 +4630,7 @@ ROM_START( gtsupreme ) // Version 5.10T ELC S (Tournament Edition, PCB P/N 1083 ROM_LOAD32_BYTE( "gt2k_grom1_3.grm1_3", 0x200003, 0x80000, CRC(59f48688) SHA1(37b2c84e487f4f3a9145bef34c573a3716b4a6a7) ) // GT99, GT2K & GT Classic all share the above listed 8 graphics ROMs and may be labeled GT99, GT2K or GTClassic - // The Euro version has different GROM2_x compared to the standard US versions. GT Supreme PCBs have been seen + // The Euro version has different GROM2_x compared to the standard US versions. GT Supreme PCBs have been seen // with GT 2K mask ROMs as well as all GROMs labeled "GT SUPREME" ROM_LOAD32_BYTE( "gt_supreme_grom2_0.grm2_0", 0x400000, 0x80000, CRC(33998a3e) SHA1(53832e37c42155eb9c774eb33b8b36fe387fa162) ) @@ -4740,7 +4740,7 @@ ROM_START( gtclasscs ) // Version 1.00S for the 3 tier type PCB with short ROM ROM_REGION16_BE( 0x400000, "ensoniq.2", ROMREGION_ERASE00 ) ROM_LOAD16_BYTE( "gtg3_srom1_nr++.srom1", 0x000000, 0x100000, CRC(44983bd7) SHA1(a6ac966ec113b079434d7f871e4ce7266206d234) ) // actually labeled "GTG3 SROM1 NR**" - ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" + ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) // actually labeled "GTG3 SROM2 NR*" ROM_END /*************************************************************************** @@ -5266,7 +5266,7 @@ GAME( 2002, gtsupreme, gt2k, tourny, gt98s, itech32_state, init_aamat, R GAME( 2001, gtclassc, 0, sftm, aama, itech32_state, init_aama, ROT0, "Incredible Technologies", "Golden Tee Classic (v1.00)" , MACHINE_SUPPORTS_SAVE ) // PIC 16C54 labeled as ITGFCL GAME( 2001, gtclasscp, gtclassc, sftm, aama, itech32_state, init_gtclasscp, ROT0, "Incredible Technologies", "Golden Tee Classic (v1.00) (alt protection)" , MACHINE_SUPPORTS_SAVE ) // PIC 16C54 labeled as ITGFCL -GAME( 2001, gtclasscs, gtclassc, sftm, s_ver, itech32_state, init_s_ver, ROT0, "Incredible Technologies", "Golden Tee Classic (v1.00S)" , MACHINE_SUPPORTS_SAVE ) // PIC 16C54 labeled as ITGFCL-M +GAME( 2001, gtclasscs, gtclassc, sftm, s_ver, itech32_state, init_s_ver, ROT0, "Incredible Technologies", "Golden Tee Classic (v1.00S)" , MACHINE_SUPPORTS_SAVE ) // PIC 16C54 labeled as ITGFCL-M GAME( 199?, shoottv, 0, shoottv, shoottv, shoottv_state, empty_init, ROT0, "Incredible Technologies", "Must Shoot TV (prototype)" , MACHINE_SUPPORTS_SAVE ) GAME( 1996, pubball, 0, pubball, pubball, itech32_state, init_pubball,ROT0, "Midway / Incredible Technologies", "Power Up Baseball (prototype)" , MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/konami/konamim2.cpp b/src/mame/konami/konamim2.cpp index 64eecd17820f5..f9097f7430330 100644 --- a/src/mame/konami/konamim2.cpp +++ b/src/mame/konami/konamim2.cpp @@ -1268,8 +1268,8 @@ ROM_START( heatof11 ) DISK_REGION( "ata:0:cr589" ) /* Ring codes found on the disc: - 703EAA02 PN.0000046809 1 + + + + + IFPI L251 - IFPI 42MO */ + 703EAA02 PN.0000046809 1 + + + + + IFPI L251 + IFPI 42MO */ DISK_IMAGE_READONLY( "703eaa02", 0, SHA1(f8a87eacfdbbd22659f39c7a72e3895f0a7697b7) ) ROM_END diff --git a/src/mame/midway/midtunit.cpp b/src/mame/midway/midtunit.cpp index bfae5563054a5..74183b6a0133a 100644 --- a/src/mame/midway/midtunit.cpp +++ b/src/mame/midway/midtunit.cpp @@ -64,16 +64,16 @@ void midtunit_base_state::main_map(address_map &map) void midtunit_adpcm_state::main_adpcm_map(address_map &map) { - midtunit_base_state::main_map(map); - map.unmap_value_high(); + main_map(map); + map(0x01d00000, 0x01d0001f).r(FUNC(midtunit_adpcm_state::sound_state_r)); map(0x01d01020, 0x01d0103f).rw(FUNC(midtunit_adpcm_state::sound_r), FUNC(midtunit_adpcm_state::sound_w)); } void mk2_state::mk2_map(address_map &map) { - midtunit_base_state::main_map(map); - map.unmap_value_high(); + main_map(map); + map(0x01d00000, 0x01d0001f).r(FUNC(mk2_state::dcs_state_r)); map(0x01d01020, 0x01d0103f).rw(FUNC(mk2_state::dcs_r), FUNC(mk2_state::dcs_w)); } @@ -610,7 +610,6 @@ void midtunit_base_state::tunit_core(machine_config &config) // basic machine hardware TMS34010(config, m_maincpu, CPU_CLOCK); - m_maincpu->set_addrmap(AS_PROGRAM, &midtunit_base_state::main_map); m_maincpu->set_halt_on_reset(false); // halt on reset m_maincpu->set_pixel_clock(PIXEL_CLOCK); // pixel clock m_maincpu->set_pixels_per_clock(2); // pixels per clock diff --git a/src/mame/midway/midtunit_v.cpp b/src/mame/midway/midtunit_v.cpp index aac74efe2ae63..0983d5bc35471 100644 --- a/src/mame/midway/midtunit_v.cpp +++ b/src/mame/midway/midtunit_v.cpp @@ -781,10 +781,10 @@ void midtunit_video_device::dma_w(offs_t offset, uint16_t data, uint16_t mem_mas } // there seems to be two types of behavior for the DMA chip - // for MK1 and MK2, the upper byte of the LRSKIP is the - // starting skip value, and the lower byte is the ending + // for MK1 and MK2, the upper byte of the LRSKIP is the + // starting skip value, and the lower byte is the ending // skip value; for the NBA Jam, Hangtime, and Open Ice, the - // full word seems to be the starting skip value. + // full word seems to be the starting skip value. if (command & 0x40) { m_dma_state.startskip = m_dma_register[DMA_LRSKIP] & 0xff; diff --git a/src/mame/midway/midwunit.cpp b/src/mame/midway/midwunit.cpp index 53f8a726532b0..79b4132ea4912 100644 --- a/src/mame/midway/midwunit.cpp +++ b/src/mame/midway/midwunit.cpp @@ -898,7 +898,7 @@ ROM_START( umk3 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // PCB pictures show EPROMs labeled as: - ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) // L2.0 MORTAL KOMBAT 3 Uxxx ULTIMATE + ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) // L2.0 MORTAL KOMBAT 3 Uxxx ULTIMATE ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) // currently unverified if these are the same as for v1.0 & v1.1 UMK3 ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) @@ -941,7 +941,7 @@ ROM_START( umk3r11 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms + ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u120_video_image.u120", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u119_video_image.u119", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u118_video_image.u118", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) @@ -985,7 +985,7 @@ ROM_START( umk3r10 ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) ) ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) ) - ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms + ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u121_video_image.u121", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) ) // Both v1.0 & v1.1 have been found with mask roms ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u120_video_image.u120", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u119_video_image.u119", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) ) ROM_LOAD32_BYTE( "mortal_kombat_iii_ultimate_u118_video_image.u118", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) ) diff --git a/src/mame/midway/midyunit.h b/src/mame/midway/midyunit.h index 897a85d5be08e..20765b9863613 100644 --- a/src/mame/midway/midyunit.h +++ b/src/mame/midway/midyunit.h @@ -177,7 +177,7 @@ class term2_state : public midyunit_state private: required_device m_adc; - + output_finder<4> m_left_flash; output_finder<4> m_right_flash; output_finder<> m_left_gun_recoil; diff --git a/src/mame/midway/midyunit_m.cpp b/src/mame/midway/midyunit_m.cpp index 298dd881378fc..785dae3704847 100644 --- a/src/mame/midway/midyunit_m.cpp +++ b/src/mame/midway/midyunit_m.cpp @@ -248,7 +248,7 @@ void midyunit_state::cvsd_protection_w(offs_t offset, uint8_t data) { // because the entire CVSD ROM is banked, we have to make sure that writes // go to the proper location (i.e., bank 0); currently bank 0 always lives - // in the 0x10000-0x17fff space, so we just need to add 0x8000 to get the + // in the 0x10000-0x17fff space, so we just need to add 0x8000 to get the // proper offset m_cvsd_protection_base[offset] = data; } diff --git a/src/mame/misc/calomega.cpp b/src/mame/misc/calomega.cpp index ba570b4092eaa..265bf736932fd 100644 --- a/src/mame/misc/calomega.cpp +++ b/src/mame/misc/calomega.cpp @@ -5733,7 +5733,7 @@ ROM_END /* CEI 906III POKER V60.04 1989 906III board - + Jumper 8,9 EPR 1-5 2764 CG's 2764 diff --git a/src/mame/namco/namcops2.cpp b/src/mame/namco/namcops2.cpp index eeb05427bda91..29a5c25cd7d41 100644 --- a/src/mame/namco/namcops2.cpp +++ b/src/mame/namco/namcops2.cpp @@ -30,7 +30,7 @@ Battle Gear 3 (Japan)........................... XX34XXX M9005793A VER.2.04J H Battle Gear 3 (Export).......................... XX34XXX M9005793A VER.2.04J HDD (20GB) NM00010 *B3900068A(?) Taito 2002 | All require Taito JVS Universal I/O board K91X0951A otherwise no boot-up; dongle selects region using same HDDs Battle Gear 3 (US).............................. ------X *? HDD (20GB) NM00010? *? Taito 2002 | 2004 Betson release; contrary to flyer, does *not* remove Honda cars (contrast sidebs2u/batlgear) Battle Gear 3 Tuned (Japan)..................... XX34XXX M9006066A VER.2.03J HDD (30GB) NM00015 *B3900074B Taito 2003 | HDD: Maxtor Fireball 3 30GB 2F030L0 -Battle Gear 3 Tuned (Export).................... XX34XXX M9006066A VER.2.03J HDD (30GB) NM00015 B3900074C Taito 2003 / +Battle Gear 3 Tuned (Export).................... XX34XXX M9006066A VER.2.03J HDD (30GB) NM00015 B3900074C Taito 2003 / Bloody Roar 3................................... 1234XXX BRT1-A CD NM00002 BRT1 Ver.A Namco/8ing/Raizing 2000 Capcom Fighting Jam/Capcom Fighting Evolution... XXXX56X JAM1 DVD0 DVD NM00018 JAM1 Ver.A Capcom 2004 Cobra The Arcade................................ XXXX56X CBR1-HA HDD (40GB) NM00021 CBR1 Ver.B Namco 2004 Requires RAYS I/O PCB and IR guns and IR sensors. HDD: Maxtor DiamondMax Plus 8 40GB 6E040L0 diff --git a/src/mame/pacman/pacman.cpp b/src/mame/pacman/pacman.cpp index f83662e27454e..74e11e3c01f2e 100644 --- a/src/mame/pacman/pacman.cpp +++ b/src/mame/pacman/pacman.cpp @@ -4799,7 +4799,7 @@ ROM_START( mspacmanhnc ) ROM_COPY( "bigeprom", 0x3000, 0x9000, 0x0800 ) // copy segment to 9000-97ff ROM_REGION( 0x2000, "gfx1", 0 ) -// ROM_COPY( "bigeprom", 0x4000, 0x0000, 0x2000 ) // copy segments to 0000-1fff, same GFX set of the GFX EPROMs +// ROM_COPY( "bigeprom", 0x4000, 0x0000, 0x2000 ) // copy segments to 0000-1fff, same GFX set of the GFX EPROMs ROM_LOAD( "5e.bin", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) ) ROM_LOAD( "5h.bin", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) ) ROM_LOAD( "5f.bin", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) ) @@ -5199,7 +5199,7 @@ ROM_END | | '-----------------------------------------------' - + The SUSILU PCB soldered below the Z80 socket, is exactly the same documented above, containing a Z80 CPU, a M27256 EPROM, a 74LS254 and an unknown DIL40 IC. From d27a148fa31310bb635a7280c0c4931d426e7ba3 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 21 Apr 2024 12:58:39 +0200 Subject: [PATCH 06/46] fidelity: be more accurate with company name --- src/mame/excalibur/igor.cpp | 22 ++++++++++---------- src/mame/fidelity/as12.cpp | 10 ++++----- src/mame/fidelity/chesster.cpp | 14 +++++++------ src/mame/fidelity/desdis.cpp | 12 +++++------ src/mame/fidelity/eag68k.cpp | 38 +++++++++++++++++----------------- src/mame/fidelity/eldorado.cpp | 2 +- src/mame/fidelity/elite.cpp | 6 +++--- src/mame/fidelity/excel.cpp | 22 ++++++++++---------- src/mame/fidelity/phantom.cpp | 4 ++-- src/mame/fidelity/sc12.cpp | 7 +++++-- src/mame/fidelity/sc6.cpp | 2 +- 11 files changed, 72 insertions(+), 67 deletions(-) diff --git a/src/mame/excalibur/igor.cpp b/src/mame/excalibur/igor.cpp index 93053f8586b39..835e3c1c3b0e3 100644 --- a/src/mame/excalibur/igor.cpp +++ b/src/mame/excalibur/igor.cpp @@ -45,7 +45,7 @@ class igor_state : public driver_device driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_board(*this, "board"), - m_cobrom(*this, "cobrom"), + m_soundrom(*this, "soundrom"), m_lcd_pwm(*this, "lcd_pwm"), m_dac(*this, "dac"), m_inputs(*this, "IN.%u", 0), @@ -63,7 +63,7 @@ class igor_state : public driver_device // devices/pointers required_device m_maincpu; required_device m_board; - required_region_ptr m_cobrom; + required_region_ptr m_soundrom; required_device m_lcd_pwm; required_device m_dac; required_ioport_array<2> m_inputs; @@ -103,8 +103,8 @@ class igor_state : public driver_device void igor_state::init_igor() { - u8 *rom = memregion("cobrom")->base(); - const u32 len = memregion("cobrom")->bytes(); + u8 *rom = memregion("soundrom")->base(); + const u32 len = memregion("soundrom")->bytes(); // descramble data lines for (int i = 0; i < len; i++) @@ -189,13 +189,13 @@ u8 igor_state::read_inputs() void igor_state::p1_w(u8 data) { - // P10-P17: COB ROM address + LCD segs + // P10-P17: sound ROM address + LCD segs m_port1 = data; } void igor_state::p2_w(u8 data) { - // P20-P27: COB ROM address + LCD segs + // P20-P27: sound ROM address + LCD segs // P26: input mux low bit m_port2 = data; read_inputs(); @@ -203,9 +203,9 @@ void igor_state::p2_w(u8 data) u8 igor_state::p3_r() { - // P30-P37: read COB ROM + // P30-P37: read sound ROM u32 address = bitswap<4>(m_port7,4,7,6,5) << 16 | m_port2 << 8 | m_port1; - return (m_port5 & 4) ? 0xff : m_cobrom[address & (m_cobrom.bytes() - 1)]; + return (m_port5 & 4) ? 0xff : m_soundrom[address & (m_soundrom.bytes() - 1)]; } void igor_state::p4_w(u8 data) @@ -226,7 +226,7 @@ void igor_state::p5_w(offs_t offset, u8 data, u8 mem_mask) // P51: DAC bit 6 m_dac_data = (m_dac_data & 0xbf) | BIT(data, 1) << 6; - // P52: COB ROM CS, KA8602 mute + // P52: sound ROM CS, KA8602 mute // P55: input mux high bit m_port5 = data; update_dac(); @@ -250,7 +250,7 @@ u8 igor_state::p6_r() void igor_state::p7_w(u8 data) { // P70-P77: input mux part + LCD segs - // P74-P77: COB ROM address + // P74-P77: sound ROM address m_port7 = data; read_inputs(); } @@ -337,7 +337,7 @@ ROM_START( igor ) ROM_REGION16_BE( 0x8000, "maincpu", 0 ) ROM_LOAD("1997_rcn_1002a_excal_hd6433214l02p.ic1", 0x0000, 0x8000, CRC(adbc7e07) SHA1(0d297ad2fd0d18312966195cfad4658da4bc4442) ) - ROM_REGION( 0x20000, "cobrom", 0 ) + ROM_REGION( 0x20000, "soundrom", 0 ) ROM_LOAD("sound.ic2", 0x00000, 0x20000, CRC(bc540da3) SHA1(68647ce1c7e87eba90d9d1912921213af03e3c5d) ) // no label ROM_REGION( 89047, "screen", 0 ) diff --git a/src/mame/fidelity/as12.cpp b/src/mame/fidelity/as12.cpp index f7e5ce37a6835..ff181b03dd7e5 100644 --- a/src/mame/fidelity/as12.cpp +++ b/src/mame/fidelity/as12.cpp @@ -312,8 +312,8 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1986, feleg, 0, 0, feleg, feleg, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE ) -SYST( 1984, felega, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1984, felega1, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1984, felega2, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1984, felega3, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Electronics", "Elegance Chess Challenger (model AS12, set 4)", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, feleg, 0, 0, feleg, feleg, as12_state, empty_init, "Fidelity International", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE ) +SYST( 1984, felega, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1984, felega1, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1984, felega2, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1984, felega3, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 4)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/chesster.cpp b/src/mame/fidelity/chesster.cpp index 95ca55d7e885b..1647d46821dfc 100644 --- a/src/mame/fidelity/chesster.cpp +++ b/src/mame/fidelity/chesster.cpp @@ -5,8 +5,10 @@ Fidelity Chesster Challenger -These were made after Hegener + Glaser took over Fidelity (design phase started -before that). Kishon Chesster was released under both Fidelity, and Mephisto brands. +These were made after Hegener + Glaser became the parent company of Fidelity +(design phase started before that). Kishon Chesster was released under both +Fidelity and Mephisto brands. Fidelity changed from Fidelity International, +Inc. to Fidelity Electronics International, Inc. after becoming a subsidiary. ******************************************************************************** @@ -258,7 +260,7 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1990, chesster, 0, 0, chesster, chesster, chesster_state, empty_init, "Fidelity Electronics", "Chesster Challenger (v1.3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1990, chesstera, chesster, 0, chesster, chesster, chesster_state, empty_init, "Fidelity Electronics", "Chesster Challenger", MACHINE_SUPPORTS_SAVE ) -SYST( 1991, kishon, chesster, 0, kishon, chesster, chesster_state, empty_init, "Fidelity Electronics", "Kishon Chesster (v2.3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1991, kishona, chesster, 0, kishon, chesster, chesster_state, empty_init, "Fidelity Electronics", "Kishon Chesster (v2.2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1990, chesster, 0, 0, chesster, chesster, chesster_state, empty_init, "Fidelity Electronics International", "Chesster Challenger (v1.3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1990, chesstera, chesster, 0, chesster, chesster, chesster_state, empty_init, "Fidelity Electronics International", "Chesster Challenger", MACHINE_SUPPORTS_SAVE ) +SYST( 1991, kishon, chesster, 0, kishon, chesster, chesster_state, empty_init, "Fidelity Electronics International", "Kishon Chesster (v2.3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1991, kishona, chesster, 0, kishon, chesster, chesster_state, empty_init, "Fidelity Electronics International", "Kishon Chesster (v2.2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/desdis.cpp b/src/mame/fidelity/desdis.cpp index ecd399ddbb528..a173428993088 100644 --- a/src/mame/fidelity/desdis.cpp +++ b/src/mame/fidelity/desdis.cpp @@ -402,10 +402,10 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1988, fdes2100d, 0, 0, fdes2100d, desdis, desdis_state, init_fdes2100d, "Fidelity Electronics", "Designer 2100 Display (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fdes2100da, fdes2100d, 0, fdes2100d, desdis, desdis_state, init_fdes2100d, "Fidelity Electronics", "Designer 2100 Display (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fdes2000d, fdes2100d, 0, fdes2000d, desdis, desdis_state, init_fdes2100d, "Fidelity Electronics", "Designer 2000 Display", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fdes2100d, 0, 0, fdes2100d, desdis, desdis_state, init_fdes2100d, "Fidelity International", "Designer 2100 Display (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fdes2100da, fdes2100d, 0, fdes2100d, desdis, desdis_state, init_fdes2100d, "Fidelity International", "Designer 2100 Display (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fdes2000d, fdes2100d, 0, fdes2000d, desdis, desdis_state, init_fdes2100d, "Fidelity International", "Designer 2000 Display", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, fdes2265, 0, 0, fdes2265, desdis, desmas_state, init_fdes2265, "Fidelity Electronics", "Designer Mach III Master 2265 (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, fdes2265a, fdes2265, 0, fdes2265, desdis, desmas_state, init_fdes2265, "Fidelity Electronics", "Designer Mach III Master 2265 (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1991, fdes2325, fdes2265, 0, fdes2325, desdis, desmas_state, empty_init, "Fidelity Electronics", "Designer Mach IV 68020 Master 2325", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, fdes2265, 0, 0, fdes2265, desdis, desmas_state, init_fdes2265, "Fidelity Electronics International", "Designer Mach III Master 2265 (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, fdes2265a, fdes2265, 0, fdes2265, desdis, desmas_state, init_fdes2265, "Fidelity Electronics International", "Designer Mach III Master 2265 (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1991, fdes2325, fdes2265, 0, fdes2325, desdis, desmas_state, empty_init, "Fidelity Electronics International", "Designer Mach IV 68020 Master 2325", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/eag68k.cpp b/src/mame/fidelity/eag68k.cpp index ca8920957501a..d8a41afc9c660 100644 --- a/src/mame/fidelity/eag68k.cpp +++ b/src/mame/fidelity/eag68k.cpp @@ -989,24 +989,24 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1987, fex68k, 0, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1987, fex68ka, fex68k, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1987, fex68kb, fex68k, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 (set 3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fex68km2, fex68k, 0, fex68km2, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach II (rev. C+, set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fex68km2a, fex68k, 0, fex68km2, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach II (rev. C+, set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fex68km3, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach III Master 2265 (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fex68km3a, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach III Master 2265 (set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fex68km3b, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach III Master 2265 (set 3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, fex68km4, fex68k, 0, fex68km4, excel68k, excel68k_state, empty_init, "Fidelity Electronics", "Excel 68000 Mach IV 68020 Master 2325", MACHINE_SUPPORTS_SAVE ) - -SYST( 1989, feagv4, 0, 0, eagv4, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2265 (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, feagv4a, feagv4, 0, eagv4, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2265 (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, feagv5, feagv4, 0, eagv5, eag, eagv5_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2265 (model 6114-5)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, feagv7, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2325 (model 6117-6/7, set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, feagv7a, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2325 (model 6117-6/7, set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1989, feagv7b, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2325 (model 6117-6/7, set 3)", MACHINE_SUPPORTS_SAVE ) -SYST( 1990, feagv9, feagv4, 0, eagv9, eag, eag_state, init_eag, "Fidelity Electronics", "Elite Avant Garde 2325 (model 6117-9)", MACHINE_SUPPORTS_SAVE ) -SYST( 1990, feagv10, feagv4, 0, eagv10, eag, eag_state, empty_init, "Fidelity Electronics", "Elite Avant Garde 2325 (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) +SYST( 1987, fex68k, 0, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1987, fex68ka, fex68k, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1987, fex68kb, fex68k, 0, fex68k, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 (set 3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fex68km2, fex68k, 0, fex68km2, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach II (rev. C+, set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fex68km2a, fex68k, 0, fex68km2, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach II (rev. C+, set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fex68km3, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach III Master 2265 (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fex68km3a, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach III Master 2265 (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fex68km3b, fex68k, 0, fex68km3, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach III Master 2265 (set 3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, fex68km4, fex68k, 0, fex68km4, excel68k, excel68k_state, empty_init, "Fidelity International", "Excel 68000 Mach IV 68020 Master 2325", MACHINE_SUPPORTS_SAVE ) + +SYST( 1989, feagv4, 0, 0, eagv4, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2265 (model 6114-2/3/4, set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, feagv4a, feagv4, 0, eagv4, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2265 (model 6114-2/3/4, set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, feagv5, feagv4, 0, eagv5, eag, eagv5_state, init_eag, "Fidelity International", "Elite Avant Garde 2265 (model 6114-5)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, feagv7, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2325 (model 6117-6/7, set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, feagv7a, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2325 (model 6117-6/7, set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, feagv7b, feagv4, 0, eagv7, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2325 (model 6117-6/7, set 3)", MACHINE_SUPPORTS_SAVE ) +SYST( 1990, feagv9, feagv4, 0, eagv9, eag, eag_state, init_eag, "Fidelity International", "Elite Avant Garde 2325 (model 6117-9)", MACHINE_SUPPORTS_SAVE ) +SYST( 1990, feagv10, feagv4, 0, eagv10, eag, eag_state, empty_init, "Fidelity International", "Elite Avant Garde 2325 (model 6117-10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) SYST( 2001, feagv11, feagv4, 0, eagv11, eag, eag_state, empty_init, "hack (Wilfried Bucke)", "Elite Avant Garde 2325 (model 6117-11)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING ) -SYST( 1992, premiere, 0, 0, premiere, premiere, premiere_state, empty_init, "Fidelity Electronics", "Elite Premiere", MACHINE_SUPPORTS_SAVE ) +SYST( 1992, premiere, 0, 0, premiere, premiere, premiere_state, empty_init, "Fidelity Electronics International", "Elite Premiere", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/eldorado.cpp b/src/mame/fidelity/eldorado.cpp index c538b91dcdce7..7d9d67a7e5665 100644 --- a/src/mame/fidelity/eldorado.cpp +++ b/src/mame/fidelity/eldorado.cpp @@ -203,4 +203,4 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1990, feldo, 0, 0, eldorado, eldorado, eldorado_state, empty_init, "Fidelity Electronics / CXG Systems", "Eldorado Chess Challenger", MACHINE_SUPPORTS_SAVE ) +SYST( 1990, feldo, 0, 0, eldorado, eldorado, eldorado_state, empty_init, "Fidelity Electronics International / CXG Systems", "Eldorado Chess Challenger", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/elite.cpp b/src/mame/fidelity/elite.cpp index feaa813e6926e..1176c56c4f353 100644 --- a/src/mame/fidelity/elite.cpp +++ b/src/mame/fidelity/elite.cpp @@ -1105,6 +1105,6 @@ SYST( 1982, fprese, fpres, 0, pc, pc, elite_state, empty_init, SYST( 1983, fpresbu, fpres, 0, pc, pc, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Budapest program)", MACHINE_SUPPORTS_SAVE ) SYST( 1984, fpresgla, fpres, 0, pc, pc, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE ) -SYST( 1986, feag, 0, 0, eag, eag, eag_state, empty_init, "Fidelity Electronics", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE ) -SYST( 1986, feag2100, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100 (set 1)", MACHINE_SUPPORTS_SAVE ) -SYST( 1986, feag2100a, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity Electronics", "Elite Avant Garde 2100 (set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, feag, 0, 0, eag, eag, eag_state, empty_init, "Fidelity International", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, feag2100, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity International", "Elite Avant Garde 2100 (set 1)", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, feag2100a, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity International", "Elite Avant Garde 2100 (set 2)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/excel.cpp b/src/mame/fidelity/excel.cpp index 3096b2875a2c8..32a1442866fff 100644 --- a/src/mame/fidelity/excel.cpp +++ b/src/mame/fidelity/excel.cpp @@ -552,15 +552,15 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1987, fexcel, 0, 0, fexcelb, fexcelb, excel_state, empty_init, "Fidelity Electronics", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE ) -SYST( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, excel_state, empty_init, "Fidelity Electronics", "Voice Excellence", MACHINE_SUPPORTS_SAVE ) -SYST( 1987, fexceld, fexcel, 0, fexceld, fexcelb, excel_state, empty_init, "Fidelity Electronics", "Excel Display", MACHINE_SUPPORTS_SAVE ) -SYST( 1985, fexcel12, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity Electronics", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE ) // 1st version of The Excellence -SYST( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, excel_state, empty_init, "Fidelity Electronics", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE ) -SYST( 1985, fexcela, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity Electronics", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE ) - -SYST( 1986, fexcelp, 0, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity Electronics", "The Par Excellence", MACHINE_SUPPORTS_SAVE ) -SYST( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity Electronics", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE ) +SYST( 1987, fexcel, 0, 0, fexcelb, fexcelb, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE ) +SYST( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, excel_state, empty_init, "Fidelity International", "Voice Excellence", MACHINE_SUPPORTS_SAVE ) +SYST( 1987, fexceld, fexcel, 0, fexceld, fexcelb, excel_state, empty_init, "Fidelity International", "Excel Display", MACHINE_SUPPORTS_SAVE ) +SYST( 1985, fexcel12, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE ) // 1st version of The Excellence +SYST( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE ) +SYST( 1985, fexcela, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE ) + +SYST( 1986, fexcelp, 0, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE ) SYST( 1986, granits, fexcelp, 0, granits, fexcel, excel_state, empty_init, "hack (RCS)", "Granit S", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, excel_state, empty_init, "Fidelity Electronics", "Designer 2000", MACHINE_SUPPORTS_SAVE ) -SYST( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, excel_state, empty_init, "Fidelity Electronics", "Designer 2100", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, excel_state, empty_init, "Fidelity International", "Designer 2000", MACHINE_SUPPORTS_SAVE ) +SYST( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, excel_state, empty_init, "Fidelity International", "Designer 2100", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/phantom.cpp b/src/mame/fidelity/phantom.cpp index 837593ce30d8f..6d0b8fcd603bc 100644 --- a/src/mame/fidelity/phantom.cpp +++ b/src/mame/fidelity/phantom.cpp @@ -686,6 +686,6 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1988, fphantom, 0, 0, phantom, phantom, phantom_state, init_phantom, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_IMPERFECT_CONTROLS ) +SYST( 1988, fphantom, 0, 0, phantom, phantom, phantom_state, init_phantom, "Fidelity International", "Phantom (Fidelity)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_IMPERFECT_CONTROLS ) -SYST( 1991, cphantom, 0, 0, cphantom, cphantom, chessterp_state, init_phantom, "Fidelity Electronics", "Chesster Phantom (model 6126)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_IMPERFECT_CONTROLS ) +SYST( 1991, cphantom, 0, 0, cphantom, cphantom, chessterp_state, init_phantom, "Fidelity Electronics International", "Chesster Phantom (model 6126)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/fidelity/sc12.cpp b/src/mame/fidelity/sc12.cpp index 98927e6104767..ce61571e34aa3 100644 --- a/src/mame/fidelity/sc12.cpp +++ b/src/mame/fidelity/sc12.cpp @@ -47,6 +47,9 @@ If control Q4 is set, printer data can be read from I0. Similar to EAS, the new game command for SC12 is: RE -> A6 (or A8) -> CL. The newer model 6086 does not have this issue. +Fidelity Electronics, Ltd. went bankrupt in early 1984. They were briefly Fidelity +Computer Products, Inc. (FCP) afterwards, and then Fidelity International, Inc. + TODO: - is SE12 program the same as SC12? just a faster CPU, and probably /4 divider? @@ -291,5 +294,5 @@ ROM_END *******************************************************************************/ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS -SYST( 1986, fscc12, 0, 0, sc12b, sc12b, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12 B\" (model 6086)", MACHINE_SUPPORTS_SAVE ) -SYST( 1984, fscc12a, fscc12, 0, sc12, sc12, sc12_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"12\" (model SC12)", MACHINE_SUPPORTS_SAVE ) +SYST( 1986, fscc12, 0, 0, sc12b, sc12b, sc12_state, empty_init, "Fidelity International", "Sensory Chess Challenger \"12 B\" (model 6086)", MACHINE_SUPPORTS_SAVE ) +SYST( 1984, fscc12a, fscc12, 0, sc12, sc12, sc12_state, empty_init, "Fidelity Computer Products", "Sensory Chess Challenger \"12\" (model SC12)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/fidelity/sc6.cpp b/src/mame/fidelity/sc6.cpp index d5db57a7bcc9d..a00cc00fb054b 100644 --- a/src/mame/fidelity/sc6.cpp +++ b/src/mame/fidelity/sc6.cpp @@ -376,4 +376,4 @@ ROM_END SYST( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"6\"", MACHINE_SUPPORTS_SAVE ) SYST( 1982, miniscc, 0, 0, msc, msc, sc6_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (1982 version)", MACHINE_SUPPORTS_SAVE ) // aka "Mini Sensory II" -SYST( 1989, gambit, 0, 0, gambit, gambit, sc6_state, empty_init, "Fidelity Electronics", "The Gambit (1989 version)", MACHINE_SUPPORTS_SAVE ) +SYST( 1989, gambit, 0, 0, gambit, gambit, sc6_state, empty_init, "Fidelity International", "The Gambit (1989 version)", MACHINE_SUPPORTS_SAVE ) From d7f8adbce1f2df8ee4dd6f9efc78d0e0538e5cff Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Mon, 22 Apr 2024 02:30:17 +1000 Subject: [PATCH 07/46] Fixed a few class memory access warnings. --- src/devices/bus/bbc/1mhzbus/cc500.cpp | 6 +- src/devices/bus/bbc/userport/palext.cpp | 7 ++- src/devices/machine/64h156.cpp | 1 - src/devices/machine/64h156.h | 36 ++++++------ src/mame/exidy/vertigo_v.cpp | 38 ++++++------- src/mame/exidy/victory.h | 14 ++--- src/mame/exidy/victory_v.cpp | 2 +- src/mame/interton/vc4000.h | 2 +- src/mame/konami/viper.cpp | 8 +-- src/mame/sega/saturn.h | 76 ++++++++++++------------- src/mame/sega/saturn_v.cpp | 60 +++++++++---------- src/mame/sega/segaic16.cpp | 6 +- src/mame/sega/segaic16.h | 62 ++++++++++---------- src/mame/sega/segaic16_road.cpp | 2 +- src/mame/sega/segaic16_road.h | 25 ++++---- src/mame/shared/vboysound.cpp | 4 +- src/mame/shared/vboysound.h | 16 +++--- src/mame/svision/svis_snd.cpp | 8 ++- src/mame/tatsumi/tx1.h | 20 +++---- src/mame/tatsumi/tx1_m.cpp | 2 +- src/mame/ussr/dvk_kcgd.cpp | 2 +- src/mame/ussr/dvk_ksm.cpp | 2 +- src/mame/ussr/sm7238.cpp | 2 +- src/mame/ussr/tiamc1_a.cpp | 10 +--- src/mame/ussr/tiamc1_a.h | 1 - 25 files changed, 206 insertions(+), 206 deletions(-) diff --git a/src/devices/bus/bbc/1mhzbus/cc500.cpp b/src/devices/bus/bbc/1mhzbus/cc500.cpp index c04fc06429e94..6da7a1b995c98 100644 --- a/src/devices/bus/bbc/1mhzbus/cc500.cpp +++ b/src/devices/bus/bbc/1mhzbus/cc500.cpp @@ -38,6 +38,8 @@ #include "emu.h" #include "cc500.h" +#include + //************************************************************************** // DEVICE DEFINITIONS @@ -110,9 +112,9 @@ bbc_cc500_device::bbc_cc500_device(const machine_config &mconfig, const char *ta void bbc_cc500_device::device_start() { - memset(m_palette_ram, 0, sizeof(m_palette_ram)); + std::fill(std::begin(m_palette_ram), std::end(m_palette_ram), rgb_t(0)); - /* register for save states */ + // register for save states save_item(NAME(m_palette_ram)); } diff --git a/src/devices/bus/bbc/userport/palext.cpp b/src/devices/bus/bbc/userport/palext.cpp index dab527e478b33..090fae7459339 100644 --- a/src/devices/bus/bbc/userport/palext.cpp +++ b/src/devices/bus/bbc/userport/palext.cpp @@ -16,6 +16,9 @@ #include "emu.h" #include "palext.h" +#include + + //************************************************************************** // DEVICE DEFINITIONS //************************************************************************** @@ -76,9 +79,9 @@ bbc_cpalette_device::bbc_cpalette_device(const machine_config &mconfig, const ch void bbc_palext_device::device_start() { - memset(m_palette_ram, 0, sizeof(m_palette_ram)); + std::fill(std::begin(m_palette_ram), std::end(m_palette_ram), rgb_t(0)); - /* register for save states */ + // register for save states save_item(NAME(m_colour)); save_item(NAME(m_palette_ram)); } diff --git a/src/devices/machine/64h156.cpp b/src/devices/machine/64h156.cpp index 6613b34ab69ea..60498046dd9d8 100644 --- a/src/devices/machine/64h156.cpp +++ b/src/devices/machine/64h156.cpp @@ -72,7 +72,6 @@ c64h156_device::c64h156_device(const machine_config &mconfig, const char *tag, d m_atni(0), m_atna(0) { - memset(&cur_live, 0x00, sizeof(cur_live)); cur_live.tm = attotime::never; cur_live.state = IDLE; cur_live.next_state = -1; diff --git a/src/devices/machine/64h156.h b/src/devices/machine/64h156.h index ed607885db731..707071bb424f6 100644 --- a/src/devices/machine/64h156.h +++ b/src/devices/machine/64h156.h @@ -117,28 +117,28 @@ class c64h156_device : public device_t struct live_info { attotime tm; - int state, next_state; - int sync; - int byte; - int ds; - int oe; - int soe; - int accl; - uint8_t accl_yb; + int state = 0, next_state = 0; + int sync = 0; + int byte = 0; + int ds = 0; + int oe = 0; + int soe = 0; + int accl = 0; + uint8_t accl_yb = 0; attotime edge; - uint16_t shift_reg; - int cycle_counter; - int cell_counter; - int bit_counter; - int zero_counter; - int cycles_until_random_flux; - - uint8_t yb; - uint8_t shift_reg_write; + uint16_t shift_reg = 0; + int cycle_counter = 0; + int cell_counter = 0; + int bit_counter = 0; + int zero_counter = 0; + int cycles_until_random_flux = 0; + + uint8_t yb = 0; + uint8_t shift_reg_write = 0; attotime write_start_time; attotime write_buffer[32]; - int write_position; + int write_position = 0; }; devcb_write_line m_write_atn; diff --git a/src/mame/exidy/vertigo_v.cpp b/src/mame/exidy/vertigo_v.cpp index a782b8236b312..a50a32fd53164 100644 --- a/src/mame/exidy/vertigo_v.cpp +++ b/src/mame/exidy/vertigo_v.cpp @@ -163,27 +163,27 @@ void vertigo_state::vertigo_vproc_reset() /* Decode microcode */ for (int i = 0; i < MC_LENGTH; i++) { - m_mc[i].x = (mcode[i] >> 44) & 0x3f; - m_mc[i].a = (mcode[i] >> 40) & 0xf; - m_mc[i].b = (mcode[i] >> 36) & 0xf; - m_mc[i].inst = (mcode[i] >> 27) & 077; - m_mc[i].dest = (mcode[i] >> 33) & 07; - m_mc[i].cn = (mcode[i] >> 26) & 0x1; - m_mc[i].mreq = (mcode[i] >> 25) & 0x1; - m_mc[i].rwrite = (mcode[i] >> 23) & 0x1; - m_mc[i].rsel = m_mc[i].rwrite & ((mcode[i] >> 24) & 0x1); - m_mc[i].of = (mcode[i] >> 20) & 0x7; - m_mc[i].iif = (mcode[i] >> 18) & 0x3; - m_mc[i].oa = (mcode[i] >> 16) & 0x3; - m_mc[i].jpos = (mcode[i] >> 14) & 0x1; - m_mc[i].jmp = (mcode[i] >> 12) & 0x3; - m_mc[i].jcon = (mcode[i] >> 9) & 0x7; - m_mc[i].ma = mcode[i] & 0x1ff; + m_mc[i].x = BIT(mcode[i], 44, 6); + m_mc[i].a = BIT(mcode[i], 40, 4); + m_mc[i].b = BIT(mcode[i], 36, 4); + m_mc[i].inst = BIT(mcode[i], 27, 6); + m_mc[i].dest = BIT(mcode[i], 33, 3); + m_mc[i].cn = BIT(mcode[i], 26, 1); + m_mc[i].mreq = BIT(mcode[i], 25, 1); + m_mc[i].rwrite = BIT(mcode[i], 23, 1); + m_mc[i].rsel = BIT(mcode[i], 24, 1) & m_mc[i].rwrite; + m_mc[i].of = BIT(mcode[i], 20, 3); + m_mc[i].iif = BIT(mcode[i], 18, 2); + m_mc[i].oa = BIT(mcode[i], 16, 2); + m_mc[i].jpos = BIT(mcode[i], 14, 1); + m_mc[i].jmp = BIT(mcode[i], 12, 2); + m_mc[i].jcon = BIT(mcode[i], 9, 3); + m_mc[i].ma = BIT(mcode[i], 0, 9); } - memset(&m_vs, 0, sizeof(m_vs)); - memset(&m_bsp, 0, sizeof(m_bsp)); - memset(&m_vgen, 0, sizeof(m_vgen)); + m_vs = vproc(); + m_bsp = am2901(); + m_vgen = vector_generator(); } diff --git a/src/mame/exidy/victory.h b/src/mame/exidy/victory.h index 84e2a189abe6e..4bd9ce87553cc 100644 --- a/src/mame/exidy/victory.h +++ b/src/mame/exidy/victory.h @@ -70,13 +70,13 @@ class victory_state : public driver_device /* microcode state */ struct micro_t { - uint16_t i; - uint16_t pc; - uint8_t r,g,b; - uint8_t xp,yp; - uint8_t cmd,cmdlo; - emu_timer * timer; - uint8_t timer_active; + uint16_t i = 0; + uint16_t pc = 0; + uint8_t r = 0, g = 0, b = 0; + uint8_t xp = 0, yp = 0; + uint8_t cmd = 0, cmdlo = 0; + emu_timer * timer = nullptr; + uint8_t timer_active = 0; attotime endtime; void count_states(int states); diff --git a/src/mame/exidy/victory_v.cpp b/src/mame/exidy/victory_v.cpp index 87c0fb3c33a8a..48aa198b7cfde 100644 --- a/src/mame/exidy/victory_v.cpp +++ b/src/mame/exidy/victory_v.cpp @@ -49,7 +49,7 @@ void victory_state::video_start() m_scrollx = m_scrolly = 0; m_video_control = 0; - memset(&m_micro, 0, sizeof(m_micro)); + m_micro = micro_t(); m_micro.timer = machine().scheduler().timer_alloc(timer_expired_delegate()); for (int i = 0; i < 128; i++) diff --git a/src/mame/interton/vc4000.h b/src/mame/interton/vc4000.h index a71eea4dc25fb..ad4381a75823e 100644 --- a/src/mame/interton/vc4000.h +++ b/src/mame/interton/vc4000.h @@ -71,7 +71,7 @@ class vc4000_state : public driver_device struct SPRITE { - const SPRITE_HELPER *data; + const SPRITE_HELPER *data = nullptr; int mask = 0; int state = 0; int delay = 0; diff --git a/src/mame/konami/viper.cpp b/src/mame/konami/viper.cpp index b9f2e23df287b..88a0c6d2c21cb 100644 --- a/src/mame/konami/viper.cpp +++ b/src/mame/konami/viper.cpp @@ -623,13 +623,13 @@ class viper_state : public driver_device uint32_t eicr = 0U; uint32_t svr = 0U; - uint8_t pctpr = 0xfU; + uint8_t pctpr = 0x0U; int active_irq = 0; - MPC8240_IRQ irq[MPC8240_NUM_INTERRUPTS]{}; + MPC8240_IRQ irq[MPC8240_NUM_INTERRUPTS]; - MPC8240_GLOBAL_TIMER global_timer[4]{}; + MPC8240_GLOBAL_TIMER global_timer[4]; }; MPC8240_EPIC m_epic{}; @@ -1238,7 +1238,7 @@ void viper_state::mpc8240_interrupt(int irq) void viper_state::mpc8240_epic_init() { - memset(&m_epic, 0, sizeof(m_epic)); + m_epic = MPC8240_EPIC(); m_epic.global_timer[0].timer = timer_alloc(FUNC(viper_state::epic_global_timer_callback), this); m_epic.global_timer[1].timer = timer_alloc(FUNC(viper_state::epic_global_timer_callback), this); m_epic.global_timer[2].timer = timer_alloc(FUNC(viper_state::epic_global_timer_callback), this); diff --git a/src/mame/sega/saturn.h b/src/mame/sega/saturn.h index bf04c74418668..f9920c4b02192 100644 --- a/src/mame/sega/saturn.h +++ b/src/mame/sega/saturn.h @@ -166,12 +166,12 @@ class saturn_state : public driver_device /* VDP1 */ - void stv_set_framebuffer_config( void ); - void stv_prepare_framebuffers( void ); - void stv_vdp1_change_framebuffers( void ); - void video_update_vdp1( void ); - void stv_vdp1_process_list( void ); - void stv_vdp1_set_drawpixel( void ); + void stv_set_framebuffer_config(); + void stv_prepare_framebuffers(); + void stv_vdp1_change_framebuffers(); + void video_update_vdp1(); + void stv_vdp1_process_list(); + void stv_vdp1_set_drawpixel(); void stv_vdp1_draw_normal_sprite(const rectangle &cliprect, int sprite_type); void stv_vdp1_draw_scaled_sprite(const rectangle &cliprect); @@ -202,14 +202,14 @@ class saturn_state : public driver_device int32_t g1, int32_t g2, int32_t slg1, int32_t slg2, int32_t *ng1, int32_t *ng2, int32_t b1, int32_t b2, int32_t slb1, int32_t slb2, int32_t *nb1, int32_t *nb2, int32_t _y1, int32_t y2); - uint16_t stv_vdp1_apply_gouraud_shading( int x, int y, uint16_t pix ); + uint16_t stv_vdp1_apply_gouraud_shading(int x, int y, uint16_t pix); void stv_vdp1_setup_shading(const struct spoint* q, const rectangle &cliprect); - uint8_t stv_read_gouraud_table( void ); - void stv_clear_gouraud_shading(void); + uint8_t stv_read_gouraud_table(); + void stv_clear_gouraud_shading(); - void stv_clear_framebuffer( int which_framebuffer ); - void stv_vdp1_state_save_postload( void ); - int stv_vdp1_start ( void ); + void stv_clear_framebuffer(int which_framebuffer); + void stv_vdp1_state_save_postload(); + int stv_vdp1_start(); struct stv_vdp1_poly_scanline { @@ -263,19 +263,19 @@ class saturn_state : public driver_device /* VDP2 */ - uint8_t get_vblank( void ); - uint8_t get_hblank( void ); - int get_hcounter( void ); - int get_vcounter( void ); - int get_vblank_duration( void ); - int get_hblank_duration( void ); - int get_pixel_clock( void ); - uint8_t get_odd_bit( void ); - void stv_vdp2_dynamic_res_change( void ); - int get_vblank_start_position( void ); - int get_ystep_count( void ); - - void refresh_palette_data( void ); + uint8_t get_vblank(); + uint8_t get_hblank(); + int get_hcounter(); + int get_vcounter(); + int get_vblank_duration(); + int get_hblank_duration(); + int get_pixel_clock(); + uint8_t get_odd_bit(); + void stv_vdp2_dynamic_res_change(); + int get_vblank_start_position(); + int get_ystep_count(); + + void refresh_palette_data(); inline int stv_vdp2_window_process(int x,int y); void stv_vdp2_get_window0_coordinates(int *s_x, int *e_x, int *s_y, int *e_y, int y); void stv_vdp2_get_window1_coordinates(int *s_x, int *e_x, int *s_y, int *e_y, int y); @@ -292,8 +292,8 @@ class saturn_state : public driver_device void stv_vdp2_drawgfxzoom(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx, uint32_t code,uint32_t color,int flipx,int flipy,int sx,int sy,int transparency,int scalex, int scaley,int sprite_screen_width, int sprite_screen_height, int alpha); void stv_vdp2_drawgfxzoom_rgb555(bitmap_rgb32 &dest_bmp,const rectangle &clip,uint32_t code,uint32_t color,int flipx,int flipy,int sx,int sy,int transparency,int scalex, int scaley,int sprite_screen_width, int sprite_screen_height, int alpha); - void stv_vdp2_drawgfx_rgb555( bitmap_rgb32 &dest_bmp, const rectangle &clip, uint32_t code, int flipx, int flipy, int sx, int sy, int transparency, int alpha); - void stv_vdp2_drawgfx_rgb888( bitmap_rgb32 &dest_bmp, const rectangle &clip, uint32_t code, int flipx, int flipy, int sx, int sy, int transparency, int alpha); + void stv_vdp2_drawgfx_rgb555(bitmap_rgb32 &dest_bmp, const rectangle &clip, uint32_t code, int flipx, int flipy, int sx, int sy, int transparency, int alpha); + void stv_vdp2_drawgfx_rgb888(bitmap_rgb32 &dest_bmp, const rectangle &clip, uint32_t code, int flipx, int flipy, int sx, int sy, int transparency, int alpha); void stv_vdp2_drawgfx_alpha(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx, uint32_t code,uint32_t color, int flipx,int flipy,int offsx,int offsy, int transparency, int alpha); void stv_vdp2_drawgfx_transpen(bitmap_rgb32 &dest_bmp,const rectangle &clip,gfx_element *gfx, uint32_t code,uint32_t color, int flipx,int flipy,int offsx,int offsy, int transparency); @@ -306,17 +306,17 @@ class saturn_state : public driver_device inline bool stv_vdp2_roz_window(int x, int y); inline bool stv_vdp2_roz_mode3_window(int x, int y, int rot_parameter); inline int get_roz_window_pixel(int s_x,int e_x,int s_y,int e_y,int x, int y,uint8_t winenable,uint8_t winarea); - void stv_vdp2_fill_rotation_parameter_table( uint8_t rot_parameter ); - uint8_t stv_vdp2_check_vram_cycle_pattern_registers( uint8_t access_command_pnmdr, uint8_t access_command_cpdr, uint8_t bitmap_enable ); - uint8_t stv_vdp2_is_rotation_applied(void); - uint8_t stv_vdp2_are_map_registers_equal(void); - void stv_vdp2_get_map_page( int x, int y, int *_map, int *_page ); + void stv_vdp2_fill_rotation_parameter_table(uint8_t rot_parameter); + uint8_t stv_vdp2_check_vram_cycle_pattern_registers(uint8_t access_command_pnmdr, uint8_t access_command_cpdr, uint8_t bitmap_enable); + uint8_t stv_vdp2_is_rotation_applied(); + uint8_t stv_vdp2_are_map_registers_equal(); + void stv_vdp2_get_map_page(int x, int y, int *_map, int *_page); void stv_vdp2_draw_mosaic(bitmap_rgb32 &bitmap, const rectangle &cliprect, uint8_t is_roz); - void stv_vdp2_fade_effects( void ); - void stv_vdp2_compute_color_offset( int *r, int *g, int *b, int cor ); + void stv_vdp2_fade_effects(); + void stv_vdp2_compute_color_offset(int *r, int *g, int *b, int cor); void stv_vdp2_compute_color_offset_UINT32(rgb_t *rgb, int cor); - void stv_vdp2_check_fade_control_for_layer( void ); + void stv_vdp2_check_fade_control_for_layer(); void stv_vdp2_draw_line(bitmap_rgb32 &bitmap, const rectangle &cliprect); void stv_vdp2_draw_back(bitmap_rgb32 &bitmap, const rectangle &cliprect); @@ -328,9 +328,9 @@ class saturn_state : public driver_device void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, uint8_t pri); int true_vcount[263][4]; - void stv_vdp2_state_save_postload( void ); - void stv_vdp2_exit ( void ); - int stv_vdp2_start ( void ); + void stv_vdp2_state_save_postload(); + void stv_vdp2_exit(); + int stv_vdp2_start(); uint8_t m_vdpdebug_roz = 0; diff --git a/src/mame/sega/saturn_v.cpp b/src/mame/sega/saturn_v.cpp index b5c6135934fba..944d1d2140b5d 100644 --- a/src/mame/sega/saturn_v.cpp +++ b/src/mame/sega/saturn_v.cpp @@ -232,7 +232,7 @@ void saturn_state::stv_clear_framebuffer( int which_framebuffer ) } -void saturn_state::stv_prepare_framebuffers( void ) +void saturn_state::stv_prepare_framebuffers() { int i,rowsize; @@ -273,7 +273,7 @@ void saturn_state::stv_prepare_framebuffers( void ) } -void saturn_state::stv_vdp1_change_framebuffers( void ) +void saturn_state::stv_vdp1_change_framebuffers() { m_vdp1.framebuffer_current_display ^= 1; m_vdp1.framebuffer_current_draw ^= 1; @@ -283,7 +283,7 @@ void saturn_state::stv_vdp1_change_framebuffers( void ) stv_prepare_framebuffers(); } -void saturn_state::stv_set_framebuffer_config( void ) +void saturn_state::stv_set_framebuffer_config() { if ( m_vdp1.framebuffer_mode == STV_VDP1_TVM && m_vdp1.framebuffer_double_interlace == STV_VDP1_DIE ) return; @@ -521,12 +521,12 @@ the rest are data used by it */ -void saturn_state::stv_clear_gouraud_shading(void) +void saturn_state::stv_clear_gouraud_shading() { - memset( &stv_gouraud_shading, 0, sizeof( stv_gouraud_shading ) ); + stv_gouraud_shading = decltype(stv_gouraud_shading)(); } -uint8_t saturn_state::stv_read_gouraud_table( void ) +uint8_t saturn_state::stv_read_gouraud_table() { int gaddr; @@ -1086,7 +1086,7 @@ void saturn_state::drawpixel_generic(int x, int y, int patterndata, int offsetcn } -void saturn_state::stv_vdp1_set_drawpixel( void ) +void saturn_state::stv_vdp1_set_drawpixel() { int sprite_type = stv2_current_sprite.CMDCTRL & 0x000f; int sprite_mode = stv2_current_sprite.CMDPMOD&0x0038; @@ -1818,7 +1818,7 @@ TIMER_CALLBACK_MEMBER(saturn_state::vdp1_draw_end ) } -void saturn_state::stv_vdp1_process_list( void ) +void saturn_state::stv_vdp1_process_list() { int position; int spritecount; @@ -2062,7 +2062,7 @@ void saturn_state::stv_vdp1_process_list( void ) if (VDP1_LOG) logerror ("End of list processing!\n"); } -void saturn_state::video_update_vdp1( void ) +void saturn_state::video_update_vdp1() { int framebuffer_changed = 0; @@ -2157,7 +2157,7 @@ void saturn_state::video_update_vdp1( void ) //popmessage("%04x %04x",STV_VDP1_EWRR_X3,STV_VDP1_EWRR_Y3); } -void saturn_state::stv_vdp1_state_save_postload( void ) +void saturn_state::stv_vdp1_state_save_postload() { uint8_t *vdp1 = m_vdp1.gfx_decode.get(); int offset; @@ -2179,7 +2179,7 @@ void saturn_state::stv_vdp1_state_save_postload( void ) } } -int saturn_state::stv_vdp1_start ( void ) +int saturn_state::stv_vdp1_start() { m_vdp1_regs = make_unique_clear(0x020/2 ); m_vdp1_vram = make_unique_clear(0x100000/4 ); @@ -4450,7 +4450,7 @@ void saturn_state::stv_vdp2_fill_rotation_parameter_table( uint8_t rot_parameter } /* check if RGB layer has rotation applied */ -uint8_t saturn_state::stv_vdp2_is_rotation_applied(void) +uint8_t saturn_state::stv_vdp2_is_rotation_applied() { #define _FIXED_1 (0x00010000) #define _FIXED_0 (0x00000000) @@ -4477,7 +4477,7 @@ uint8_t saturn_state::stv_vdp2_is_rotation_applied(void) } } -uint8_t saturn_state::stv_vdp2_are_map_registers_equal(void) +uint8_t saturn_state::stv_vdp2_are_map_registers_equal() { int i; @@ -4491,7 +4491,7 @@ uint8_t saturn_state::stv_vdp2_are_map_registers_equal(void) return 1; } -void saturn_state::stv_vdp2_check_fade_control_for_layer( void ) +void saturn_state::stv_vdp2_check_fade_control_for_layer() { if ( stv2_current_tilemap.fade_control & 1 ) { @@ -8159,7 +8159,7 @@ void saturn_state::saturn_vdp2_cram_w(offs_t offset, uint32_t data, uint32_t mem } } -void saturn_state::refresh_palette_data( void ) +void saturn_state::refresh_palette_data() { int r,g,b; int c_i; @@ -8235,7 +8235,7 @@ void saturn_state::saturn_vdp2_regs_w(offs_t offset, uint16_t data, uint16_t mem printf("VDP2 sets up 8 Mbit VRAM!\n"); } -int saturn_state::get_hblank_duration( void ) +int saturn_state::get_hblank_duration() { int res; @@ -8250,7 +8250,7 @@ int saturn_state::get_hblank_duration( void ) /*some vblank lines measurements (according to Charles MacDonald)*/ /* TODO: interlace mode "eats" one line, should be 262.5 */ -int saturn_state::get_vblank_duration( void ) +int saturn_state::get_vblank_duration() { int res; @@ -8266,7 +8266,7 @@ int saturn_state::get_vblank_duration( void ) return res; } -int saturn_state::get_pixel_clock( void ) +int saturn_state::get_pixel_clock() { int res,divider; @@ -8287,7 +8287,7 @@ int saturn_state::get_pixel_clock( void ) } /* TODO: hblank position and hblank firing doesn't really match HW behaviour. */ -uint8_t saturn_state::get_hblank( void ) +uint8_t saturn_state::get_hblank() { const rectangle &visarea = m_screen->visible_area(); int cur_h = m_screen->hpos(); @@ -8298,7 +8298,7 @@ uint8_t saturn_state::get_hblank( void ) return 0; } -uint8_t saturn_state::get_vblank( void ) +uint8_t saturn_state::get_vblank() { int cur_v,vblank; cur_v = m_screen->vpos(); @@ -8311,7 +8311,7 @@ uint8_t saturn_state::get_vblank( void ) return 0; } -uint8_t saturn_state::get_odd_bit( void ) +uint8_t saturn_state::get_odd_bit() { if(STV_VDP2_HRES & 4) //exclusive monitor mode makes this bit to be always 1 return 1; @@ -8323,7 +8323,7 @@ uint8_t saturn_state::get_odd_bit( void ) return m_vdp2.odd;//m_screen->frame_number() & 1; } -int saturn_state::get_vblank_start_position( void ) +int saturn_state::get_vblank_start_position() { // TODO: test says that second setting happens at 241, might need further investigation ... // also first one happens at 240, but needs mods in SMPC otherwise we get 2 credits at startup in shanhigw and sokyugrt @@ -8338,7 +8338,7 @@ int saturn_state::get_vblank_start_position( void ) return vblank_line; } -int saturn_state::get_ystep_count( void ) +int saturn_state::get_ystep_count() { int max_y = m_screen->height(); int y_step; @@ -8352,7 +8352,7 @@ int saturn_state::get_ystep_count( void ) } /* TODO: these needs to be checked via HW tests! */ -int saturn_state::get_hcounter( void ) +int saturn_state::get_hcounter() { int hcount; @@ -8383,7 +8383,7 @@ int saturn_state::get_hcounter( void ) return hcount; } -int saturn_state::get_vcounter( void ) +int saturn_state::get_vcounter() { int vcount; @@ -8402,7 +8402,7 @@ int saturn_state::get_vcounter( void ) return (true_vcount[vcount & 0x1ff][STV_VDP2_VRES]); // Non-interlace } -void saturn_state::stv_vdp2_state_save_postload( void ) +void saturn_state::stv_vdp2_state_save_postload() { uint8_t *gfxdata = m_vdp2.gfx_decode.get(); int offset; @@ -8438,13 +8438,13 @@ void saturn_state::stv_vdp2_state_save_postload( void ) refresh_palette_data(); } -void saturn_state::stv_vdp2_exit ( void ) +void saturn_state::stv_vdp2_exit() { m_vdp2.roz_bitmap[0].reset(); m_vdp2.roz_bitmap[1].reset(); } -int saturn_state::stv_vdp2_start ( void ) +int saturn_state::stv_vdp2_start() { machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&saturn_state::stv_vdp2_exit, this)); @@ -8505,7 +8505,7 @@ VIDEO_START_MEMBER(saturn_state,stv_vdp2) } } -void saturn_state::stv_vdp2_dynamic_res_change( void ) +void saturn_state::stv_vdp2_dynamic_res_change() { const int d_vres[4] = { 224, 240, 256, 256 }; const int d_hres[4] = { 320, 352, 640, 704 }; @@ -8546,7 +8546,7 @@ void saturn_state::stv_vdp2_dynamic_res_change( void ) /*This is for calculating the rgb brightness*/ /*TODO: Optimize this...*/ -void saturn_state::stv_vdp2_fade_effects( void ) +void saturn_state::stv_vdp2_fade_effects() { /* Note:We have to use temporary storages because palette_get_color must use diff --git a/src/mame/sega/segaic16.cpp b/src/mame/sega/segaic16.cpp index 52eb685e11b4f..ab257af17f68d 100644 --- a/src/mame/sega/segaic16.cpp +++ b/src/mame/sega/segaic16.cpp @@ -537,8 +537,6 @@ segaic16_video_device::segaic16_video_device(const machine_config &mconfig, cons , m_pagelatch_cb(*this, DEVICE_SELF, FUNC(segaic16_video_device::tilemap_16b_fill_latch)) , m_gfxdecode(*this, finder_base::DUMMY_TAG) { - memset(m_rotate, 0, sizeof(m_rotate)); - memset(m_bg_tilemap, 0, sizeof(m_bg_tilemap)); } void segaic16_video_device::device_start() @@ -1205,7 +1203,7 @@ void segaic16_video_device::tilemap_init(int which, int type, int colorbase, int tilemap_get_info_delegate get_tile_info(*this); /* reset the tilemap info */ - memset(info, 0, sizeof(*info)); + *info = tilemap_info(); info->index = which; info->type = type; for (int i = 0; i < numbanks; i++) @@ -1477,7 +1475,7 @@ void segaic16_video_device::rotate_init(int which, int type, int colorbase) struct rotate_info *info = &m_rotate[which]; /* reset the tilemap info */ - memset(info, 0, sizeof(*info)); + *info = rotate_info(); info->index = which; info->type = type; info->colorbase = colorbase; diff --git a/src/mame/sega/segaic16.h b/src/mame/sega/segaic16.h index 0959fb3320ddd..e11fa7c48a3bd 100644 --- a/src/mame/sega/segaic16.h +++ b/src/mame/sega/segaic16.h @@ -76,45 +76,47 @@ class segaic16_video_device : public device_t, struct tilemap_callback_info { - uint16_t * rambase; /* base of RAM for this tilemap page */ - const uint8_t * bank; /* pointer to bank array */ - uint16_t banksize; /* size of banks */ + uint16_t * rambase = nullptr; // base of RAM for this tilemap page + const uint8_t * bank = nullptr; // pointer to bank array + uint16_t banksize = 0; // size of banks }; - struct tilemap_info { - uint8_t index; /* index of this structure */ - uint8_t type; /* type of tilemap (see segaic16.h for details) */ - uint8_t numpages; /* number of allocated pages */ - uint8_t flip; /* screen flip? */ - uint8_t rowscroll, colscroll; /* are rowscroll/colscroll enabled (if external enables are used) */ - uint8_t bank[8]; /* indexes of the tile banks */ - uint16_t banksize; /* number of tiles per bank */ - uint16_t latched_xscroll[4]; /* latched X scroll values */ - uint16_t latched_yscroll[4]; /* latched Y scroll values */ - uint16_t latched_pageselect[4]; /* latched page select values */ - int32_t xoffs; /* X scroll offset */ - tilemap_t * tilemaps[16]; /* up to 16 tilemap pages */ - tilemap_t * textmap; /* a single text tilemap */ - struct tilemap_callback_info tmap_info[16]; /* callback info for 16 tilemap pages */ - struct tilemap_callback_info textmap_info; /* callback info for a single textmap page */ - void (*reset)(screen_device &screen, struct tilemap_info *info);/* reset callback */ - void (*draw_layer)(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); - uint16_t * textram; /* pointer to textram pointer */ - uint16_t * tileram; /* pointer to tileram pointer */ - emu_timer * latch_timer; /* timer for latching 16b tilemap scroll values */ + using reset_func = void (*)(screen_device &screen, tilemap_info *info); + using draw_layer_func = void (*)(screen_device &screen, tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); + + uint8_t index = 0; // index of this structure + uint8_t type = 0; // type of tilemap (see segaic16.h for details) + uint8_t numpages = 0; // number of allocated pages + uint8_t flip = 0; // screen flip? + uint8_t rowscroll = 0, colscroll = 0; // are rowscroll/colscroll enabled (if external enables are used) + uint8_t bank[8]; // indexes of the tile banks + uint16_t banksize = 0; // number of tiles per bank + uint16_t latched_xscroll[4] = {0,0,0,0}; // latched X scroll values + uint16_t latched_yscroll[4] = {0,0,0,0}; // latched Y scroll values + uint16_t latched_pageselect[4] = {0,0,0,0}; // latched page select values + int32_t xoffs = 0; // X scroll offset + tilemap_t * tilemaps[16]{}; // up to 16 tilemap pages + tilemap_t * textmap = nullptr; // a single text tilemap + tilemap_callback_info tmap_info[16]; // callback info for 16 tilemap pages + tilemap_callback_info textmap_info; // callback info for a single textmap page + reset_func reset = nullptr; // reset callback + draw_layer_func draw_layer = nullptr; + uint16_t * textram = nullptr; // pointer to textram pointer + uint16_t * tileram = nullptr; // pointer to tileram pointer + emu_timer * latch_timer = nullptr; // timer for latching 16b tilemap scroll values }; struct rotate_info { - uint8_t index; /* index of this structure */ - uint8_t type; /* type of rotate system (see segaic16.h for details) */ - uint16_t colorbase; /* base color index */ - int32_t ramsize; /* size of rotate RAM */ - uint16_t * rotateram; /* pointer to rotateram pointer */ - std::unique_ptr buffer; /* buffered data */ + uint8_t index = 0; // index of this structure + uint8_t type = 0; // type of rotate system (see segaic16.h for details) + uint16_t colorbase = 0; // base color index + int32_t ramsize = 0; // size of rotate RAM + uint16_t * rotateram = nullptr; // pointer to rotateram pointer + std::unique_ptr buffer; // buffered data }; template segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&decode_tag) diff --git a/src/mame/sega/segaic16_road.cpp b/src/mame/sega/segaic16_road.cpp index 35d31cb4057de..9ce28256cce6a 100644 --- a/src/mame/sega/segaic16_road.cpp +++ b/src/mame/sega/segaic16_road.cpp @@ -522,7 +522,7 @@ void segaic16_road_device::segaic16_road_init(int which, int type, int colorbase road_info *info = &segaic16_road[which]; /* reset the tilemap info */ - memset(info, 0, sizeof(*info)); + *info = road_info(); info->index = which; info->type = type; info->colorbase1 = colorbase1; diff --git a/src/mame/sega/segaic16_road.h b/src/mame/sega/segaic16_road.h index a8c2e3a77ad09..e5f174623dbf5 100644 --- a/src/mame/sega/segaic16_road.h +++ b/src/mame/sega/segaic16_road.h @@ -23,20 +23,21 @@ class segaic16_road_device : public device_t static constexpr unsigned ROAD_FOREGROUND = 1; - struct road_info { - u8 index; /* index of this structure */ - u8 type; /* type of road system (see segaic16.h for details) */ - u8 control; /* control register value */ - u16 colorbase1; /* color base for road ROM data */ - u16 colorbase2; /* color base for road background data */ - u16 colorbase3; /* color base for sky data */ - s32 xoffs; /* X scroll offset */ - void (*draw)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - u16 * roadram; /* pointer to roadram pointer */ - std::unique_ptr buffer; /* buffered roadram pointer */ - std::unique_ptr gfx; /* expanded road graphics */ + using draw_func = void (*)(struct road_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); + + u8 index = 0; // index of this structure + u8 type = 0; // type of road system (see segaic16.h for details) + u8 control = 0; // control register value + u16 colorbase1 = 0; // color base for road ROM data + u16 colorbase2 = 0; // color base for road background data + u16 colorbase3 = 0; // color base for sky data + s32 xoffs = 0; // X scroll offset + draw_func draw = nullptr; + u16 * roadram = nullptr; // pointer to roadram pointer + std::unique_ptr buffer; // buffered roadram pointer + std::unique_ptr gfx; // expanded road graphics }; diff --git a/src/mame/shared/vboysound.cpp b/src/mame/shared/vboysound.cpp index aad7975c85192..a4c39921dcfca 100644 --- a/src/mame/shared/vboysound.cpp +++ b/src/mame/shared/vboysound.cpp @@ -221,8 +221,8 @@ void vboysnd_device::device_start() for (int i=0; i<8; i++) waveEnv2LenTbl[i] = (i + 1) * 4 * 120; - for (int i = 0; i < 5; i++) - memset(&snd_channel[i], 0, sizeof(s_snd_channel)); + for (auto &chan : snd_channel) + chan = s_snd_channel(); memset(m_aram, 0, 0x600); } diff --git a/src/mame/shared/vboysound.h b/src/mame/shared/vboysound.h index 54ec887b1726c..6cd1d80879d0c 100644 --- a/src/mame/shared/vboysound.h +++ b/src/mame/shared/vboysound.h @@ -33,21 +33,21 @@ class vboysnd_device : public device_t, public device_sound_interface static constexpr unsigned CHANNELS = 4; struct s_snd_channel { - int8_t playing = 0; // the sound is playing + int8_t playing = 0; // the sound is playing // state when sound was enabled - uint32_t env_steptime = 0; // Envelope step time - uint8_t env0 = 0; // Envelope data - uint8_t env1 = 0; // Envelope data - uint8_t volLeft = 0; // Left output volume - uint8_t volRight = 0; // Right output volume - uint8_t sample[580]{}; // sample to play + uint32_t env_steptime = 0; // Envelope step time + uint8_t env0 = 0; // Envelope data + uint8_t env1 = 0; // Envelope data + uint8_t volLeft = 0; // Left output volume + uint8_t volRight = 0; // Right output volume + uint8_t sample[580]{}; // sample to play int sample_len = 0; // length of sample // values that change, as the sample is played int offset = 0; // current offset in sample int time = 0; // the duration that this sample is to be played - uint8_t envelope = 0; // Current envelope level (604) + uint8_t envelope = 0; // Current envelope level (604) int env_time = 0; // The duration between envelope decay/grow (608) }; diff --git a/src/mame/svision/svis_snd.cpp b/src/mame/svision/svis_snd.cpp index 6b9645d6a36df..8a89e4e18809b 100644 --- a/src/mame/svision/svis_snd.cpp +++ b/src/mame/svision/svis_snd.cpp @@ -9,6 +9,8 @@ #include "emu.h" #include "svis_snd.h" +#include + // configurable logging #define LOG_DMA (1U << 1) #define LOG_NOISE (1U << 2) @@ -50,9 +52,9 @@ svision_sound_device::svision_sound_device(const machine_config &mconfig, const void svision_sound_device::device_start() { - memset(&m_dma, 0, sizeof(m_dma)); - memset(&m_noise, 0, sizeof(m_noise)); - memset(m_channel, 0, sizeof(m_channel)); + m_dma = DMA(); + m_noise = NOISE(); + std::fill(std::begin(m_channel), std::end(m_channel), CHANNEL()); m_mixer_channel = stream_alloc(0, 2, machine().sample_rate()); diff --git a/src/mame/tatsumi/tx1.h b/src/mame/tatsumi/tx1.h index 2e28d5579db0b..669b7c2648bd2 100644 --- a/src/mame/tatsumi/tx1.h +++ b/src/mame/tatsumi/tx1.h @@ -71,16 +71,16 @@ class tx1_state : public driver_device private: struct math_t { - uint16_t cpulatch; - uint16_t promaddr; - uint16_t inslatch; - uint32_t mux; - uint16_t ppshift; - uint32_t i0ff; - uint16_t retval; - uint16_t muxlatch; // TX-1 - int dbgaddr; - int dbgpc = 0; + uint16_t cpulatch = 0; + uint16_t promaddr = 0; + uint16_t inslatch = 0; + uint32_t mux = 0; + uint16_t ppshift = 0; + uint32_t i0ff = 0; + uint16_t retval = 0; + uint16_t muxlatch = 0; // TX-1 + int dbgaddr = 0; + int dbgpc = 0; uint16_t get_datarom_addr() const; uint16_t get_bb_datarom_addr() const; diff --git a/src/mame/tatsumi/tx1_m.cpp b/src/mame/tatsumi/tx1_m.cpp index 5856ceb0a9a67..33f562a653c5b 100644 --- a/src/mame/tatsumi/tx1_m.cpp +++ b/src/mame/tatsumi/tx1_m.cpp @@ -1339,7 +1339,7 @@ void tx1_state::machine_reset() // TODO: This is connected to the /BUSACK line of the Z80 m_maincpu->set_input_line(INPUT_LINE_TEST, ASSERT_LINE); - memset(&m_math, 0, sizeof(m_math)); + m_math = math_t(); m_sn74s516.state = 0; } diff --git a/src/mame/ussr/dvk_kcgd.cpp b/src/mame/ussr/dvk_kcgd.cpp index 7fe0f1c37c8c0..19df0c2bf2832 100644 --- a/src/mame/ussr/dvk_kcgd.cpp +++ b/src/mame/ussr/dvk_kcgd.cpp @@ -199,7 +199,7 @@ TIMER_CALLBACK_MEMBER(kcgd_state::toggle_500hz) void kcgd_state::machine_reset() { - memset(&m_video, 0, sizeof(m_video)); + m_video = decltype(m_video)(); } void kcgd_state::machine_start() diff --git a/src/mame/ussr/dvk_ksm.cpp b/src/mame/ussr/dvk_ksm.cpp index 51cd6b887a141..0ed025bee7987 100644 --- a/src/mame/ussr/dvk_ksm.cpp +++ b/src/mame/ussr/dvk_ksm.cpp @@ -226,7 +226,7 @@ TIMER_CALLBACK_MEMBER(ksm_state::clock_brg) void ksm_state::machine_reset() { - memset(&m_video, 0, sizeof(m_video)); + m_video = decltype(m_video)(); brga = 0; brgb = 0; brgc = 0; diff --git a/src/mame/ussr/sm7238.cpp b/src/mame/ussr/sm7238.cpp index 02fb11faad37a..3f0143668df66 100644 --- a/src/mame/ussr/sm7238.cpp +++ b/src/mame/ussr/sm7238.cpp @@ -154,7 +154,7 @@ void sm7238_state::sm7238_io(address_map &map) void sm7238_state::machine_reset() { - memset(&m_video, 0, sizeof(m_video)); + m_video = decltype(m_video)(); m_videobank->set_bank(0); } diff --git a/src/mame/ussr/tiamc1_a.cpp b/src/mame/ussr/tiamc1_a.cpp index f0829c07f947c..a6c25479ab3f9 100644 --- a/src/mame/ussr/tiamc1_a.cpp +++ b/src/mame/ussr/tiamc1_a.cpp @@ -74,8 +74,8 @@ void tiamc1_sound_device::device_start() { int i, j; - timer8253_reset(&m_timer0); - timer8253_reset(&m_timer1); + m_timer0 = timer8253struct(); + m_timer1 = timer8253struct(); m_channel = stream_alloc(0, 1, clock() / CLOCK_DIVIDER); @@ -147,12 +147,6 @@ void tiamc1_sound_device::sound_stream_update(sound_stream &stream, std::vector< } -void tiamc1_sound_device::timer8253_reset(struct timer8253struct *t) -{ - memset(t,0,sizeof(struct timer8253struct)); -} - - void tiamc1_sound_device::timer8253_tick(struct timer8253struct *t, int chn) { if (t->channel[chn].enable && t->channel[chn].gate) diff --git a/src/mame/ussr/tiamc1_a.h b/src/mame/ussr/tiamc1_a.h index fe59bef659180..d2961a7b5dd9e 100644 --- a/src/mame/ussr/tiamc1_a.h +++ b/src/mame/ussr/tiamc1_a.h @@ -49,7 +49,6 @@ class tiamc1_sound_device : public device_t, public device_sound_interface }; - void timer8253_reset(struct timer8253struct *t); void timer8253_tick(struct timer8253struct *t,int chn); void timer8253_wr(struct timer8253struct *t, int reg, uint8_t val); char timer8253_get_output(struct timer8253struct *t, int chn); From 92da004d49b5b774c7804185e8787d464b098e18 Mon Sep 17 00:00:00 2001 From: wilbertpol Date: Sun, 21 Apr 2024 19:01:21 +0100 Subject: [PATCH 08/46] bus/msx/cart: Use arrays of memory views to make code more concise. (#12292) bus/msx/cart/dooly.cpp: Use memory banks instead of views. --- src/devices/bus/msx/cart/ascii.cpp | 34 ++-- src/devices/bus/msx/cart/dooly.cpp | 42 ++-- src/devices/bus/msx/cart/fs_sr021.cpp | 76 +++----- src/devices/bus/msx/cart/halnote.cpp | 82 +++----- src/devices/bus/msx/cart/holy_quran.cpp | 42 ++-- src/devices/bus/msx/cart/konami.cpp | 221 ++++++++++------------ src/devices/bus/msx/cart/msx_audio.cpp | 52 ++--- src/devices/bus/msx/cart/msxdos2.cpp | 40 ++-- src/devices/bus/msx/cart/scsi.cpp | 64 +++---- src/devices/bus/msx/cart/slotexpander.cpp | 42 ++-- 10 files changed, 285 insertions(+), 410 deletions(-) diff --git a/src/devices/bus/msx/cart/ascii.cpp b/src/devices/bus/msx/cart/ascii.cpp index 61572df0fdd86..359b7f479e50c 100644 --- a/src/devices/bus/msx/cart/ascii.cpp +++ b/src/devices/bus/msx/cart/ascii.cpp @@ -158,8 +158,7 @@ class msx_cart_ascii8_sram_device : public device_t, public msx_cart_interface : device_t(mconfig, MSX_CART_ASCII8_SRAM, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_rombank(*this, "rombank%u", 0U) - , m_view2(*this, "view2") - , m_view3(*this, "view3") + , m_view{ {*this, "view2"}, {*this, "view3"} } , m_bank_mask(0) , m_sram_select_mask(0) { } @@ -177,8 +176,7 @@ class msx_cart_ascii8_sram_device : public device_t, public msx_cart_interface void mapper_write(offs_t offset, u8 data); memory_bank_array_creator<4> m_rombank; - memory_view m_view2; - memory_view m_view3; + memory_view m_view[2]; u8 m_bank_mask; u8 m_sram_select_mask; }; @@ -187,8 +185,8 @@ void msx_cart_ascii8_sram_device::device_reset() { for (int i = 0; i < 4; i++) m_rombank[i]->set_entry(0); - m_view2.select(0); - m_view3.select(0); + m_view[0].select(0); + m_view[1].select(0); } std::error_condition msx_cart_ascii8_sram_device::initialize_cartridge(std::string &message) @@ -229,12 +227,12 @@ std::error_condition msx_cart_ascii8_sram_device::initialize_cartridge(std::stri page(1)->install_read_bank(0x4000, 0x5fff, m_rombank[0]); page(1)->install_read_bank(0x6000, 0x7fff, m_rombank[1]); page(1)->install_write_handler(0x6000, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_ascii8_sram_device::mapper_write))); - page(2)->install_view(0x8000, 0x9fff, m_view2); - m_view2[0].install_read_bank(0x8000, 0x9fff, m_rombank[2]); - m_view2[1].install_ram(0x8000, 0x9fff, cart_sram_region()->base()); - page(2)->install_view(0xa000, 0xbfff, m_view3); - m_view3[0].install_read_bank(0xa000, 0xbfff, m_rombank[3]); - m_view3[1].install_ram(0xa000, 0xbfff, cart_sram_region()->base()); + page(2)->install_view(0x8000, 0x9fff, m_view[0]); + m_view[0][0].install_read_bank(0x8000, 0x9fff, m_rombank[2]); + m_view[0][1].install_ram(0x8000, 0x9fff, cart_sram_region()->base()); + page(2)->install_view(0xa000, 0xbfff, m_view[1]); + m_view[1][0].install_read_bank(0xa000, 0xbfff, m_rombank[3]); + m_view[1][1].install_ram(0xa000, 0xbfff, cart_sram_region()->base()); return std::error_condition(); } @@ -244,17 +242,13 @@ void msx_cart_ascii8_sram_device::mapper_write(offs_t offset, u8 data) u8 bank = (offset / 0x800) & 0x03; if (data & m_sram_select_mask) { - if (bank == 2) - m_view2.select(1); - if (bank == 3) - m_view3.select(1); + if (BIT(bank, 1)) + m_view[BIT(bank, 0)].select(1); } else { - if (bank == 2) - m_view2.select(0); - if (bank == 3) - m_view3.select(0); + if (BIT(bank, 1)) + m_view[BIT(bank, 0)].select(0); m_rombank[bank]->set_entry(data & m_bank_mask); } diff --git a/src/devices/bus/msx/cart/dooly.cpp b/src/devices/bus/msx/cart/dooly.cpp index 24a12a98b1af9..b01baf35bf294 100644 --- a/src/devices/bus/msx/cart/dooly.cpp +++ b/src/devices/bus/msx/cart/dooly.cpp @@ -11,8 +11,7 @@ class msx_cart_dooly_device : public device_t, public msx_cart_interface msx_cart_dooly_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : device_t(mconfig, MSX_CART_DOOLY, tag, owner, clock) , msx_cart_interface(mconfig, *this) - , m_view1(*this, "view1") - , m_view2(*this, "view2") + , m_rombank(*this, "bank%u", 0U) { } virtual std::error_condition initialize_cartridge(std::string &message) override; @@ -27,14 +26,14 @@ class msx_cart_dooly_device : public device_t, public msx_cart_interface u8 mode4_page1_r(offs_t offset); u8 mode4_page2_r(offs_t offset); - memory_view m_view1; - memory_view m_view2; + std::unique_ptr m_bitswapped; + memory_bank_array_creator<2> m_rombank; }; void msx_cart_dooly_device::device_reset() { - m_view1.select(0); - m_view2.select(0); + m_rombank[0]->set_entry(0); + m_rombank[1]->set_entry(0); } std::error_condition msx_cart_dooly_device::initialize_cartridge(std::string &message) @@ -51,34 +50,29 @@ std::error_condition msx_cart_dooly_device::initialize_cartridge(std::string &me return image_error::INVALIDLENGTH; } - page(1)->install_view(0x4000, 0x7fff, m_view1); - m_view1[0].install_rom(0x4000, 0x7fff, cart_rom_region()->base()); - m_view1[1].install_read_handler(0x4000, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_dooly_device::mode4_page1_r))); - page(2)->install_view(0x8000, 0xbfff, m_view2); - m_view2[0].install_rom(0x8000, 0xbfff, cart_rom_region()->base() + 0x4000); - m_view2[1].install_read_handler(0x8000, 0xbfff, emu::rw_delegate(*this, FUNC(msx_cart_dooly_device::mode4_page2_r))); + m_bitswapped = std::make_unique(0x8000); + for (int i = 0; i < 0x8000; i++) + m_bitswapped[i] = bitswap<8>(cart_rom_region()->base()[i], 7, 6, 5, 4, 3, 1, 0, 2); + m_rombank[0]->configure_entry(0, cart_rom_region()->base()); + m_rombank[0]->configure_entry(1, m_bitswapped.get()); + m_rombank[1]->configure_entry(0, cart_rom_region()->base() + 0x4000); + m_rombank[1]->configure_entry(1, m_bitswapped.get() + 0x4000); + + page(1)->install_read_bank(0x4000, 0x7fff, m_rombank[0]); page(1)->install_write_handler(0x4000, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_dooly_device::prot_w))); + page(2)->install_read_bank(0x8000, 0xbfff, m_rombank[1]); page(2)->install_write_handler(0x8000, 0xbfff, emu::rw_delegate(*this, FUNC(msx_cart_dooly_device::prot_w))); return std::error_condition(); } -u8 msx_cart_dooly_device::mode4_page1_r(offs_t offset) -{ - return bitswap<8>(cart_rom_region()->base()[offset], 7, 6, 5, 4, 3, 1, 0, 2); -} - -u8 msx_cart_dooly_device::mode4_page2_r(offs_t offset) -{ - return bitswap<8>(cart_rom_region()->base()[0x4000 | offset], 7, 6, 5, 4, 3, 1, 0, 2); -} - void msx_cart_dooly_device::prot_w(u8 data) { data &= 0x07; - m_view1.select(BIT(data, 2) ? 1 : 0); - m_view2.select(BIT(data, 2) ? 1 : 0); + m_rombank[0]->set_entry(BIT(data, 2) ? 1 : 0); + m_rombank[1]->set_entry(BIT(data, 2) ? 1 : 0); + if (data != 0 && data != 4) { logerror("msx_cart_dooly_device: unhandled protection mode %02x\n", data); diff --git a/src/devices/bus/msx/cart/fs_sr021.cpp b/src/devices/bus/msx/cart/fs_sr021.cpp index 712b7826a3f85..ada85937b7a26 100644 --- a/src/devices/bus/msx/cart/fs_sr021.cpp +++ b/src/devices/bus/msx/cart/fs_sr021.cpp @@ -21,12 +21,7 @@ class msx_cart_fs_sr021_device : public device_t, public msx_cart_interface : device_t(mconfig, MSX_CART_FS_SR021, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_bank(*this, "bank%u", 0U) - , m_view_0000(*this, "view0000") - , m_view_2000(*this, "view2000") - , m_view_4000(*this, "view4000") - , m_view_6000(*this, "view6000") - , m_view_8000(*this, "view8000") - , m_view_a000(*this, "viewa000") + , m_view{ {*this, "view0000"}, {*this, "view2000"}, {*this, "view4000"}, {*this, "view6000"}, {*this, "view8000"}, {*this, "viewa000"} } { } virtual std::error_condition initialize_cartridge(std::string &message) override; @@ -47,12 +42,7 @@ class msx_cart_fs_sr021_device : public device_t, public msx_cart_interface void kanji_w(offs_t offset, u8 data); memory_bank_array_creator<6> m_bank; - memory_view m_view_0000; - memory_view m_view_2000; - memory_view m_view_4000; - memory_view m_view_6000; - memory_view m_view_8000; - memory_view m_view_a000; + memory_view m_view[6]; u8 m_selected_bank[6]; u8 m_control; u32 m_kanji_latch; @@ -68,12 +58,8 @@ void msx_cart_fs_sr021_device::device_start() void msx_cart_fs_sr021_device::device_reset() { m_control = 0; - m_view_0000.select(0); - m_view_2000.select(0); - m_view_4000.select(0); - m_view_6000.select(0); - m_view_8000.select(0); - m_view_a000.select(0); + for (int i = 0; i < 6; i++) + m_view[i].select(0); m_bank[2]->set_entry(0); } @@ -113,30 +99,22 @@ std::error_condition msx_cart_fs_sr021_device::initialize_cartridge(std::string m_bank[i]->configure_entry(0x81, cart_sram_region()->base() + BANK_SIZE); } - page(0)->install_view(0x0000, 0x1fff, m_view_0000); - m_view_0000[0].install_read_bank(0x0000, 0x1fff, m_bank[0]); - m_view_0000[1].install_readwrite_bank(0x0000, 0x1fff, m_bank[0]); - page(0)->install_view(0x2000, 0x3fff, m_view_2000); - m_view_2000[0].install_read_bank(0x2000, 0x3fff, m_bank[1]); - m_view_2000[1].install_readwrite_bank(0x2000, 0x3fff, m_bank[1]); - - page(1)->install_view(0x4000, 0x5fff, m_view_4000); - m_view_4000[0].install_read_bank(0x4000, 0x5fff, m_bank[2]); - m_view_4000[1].install_readwrite_bank(0x4000, 0x5fff, m_bank[2]); - page(1)->install_view(0x6000, 0x7fff, m_view_6000); - m_view_6000[0].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view_6000[1].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); - m_view_6000[2].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view_6000[2].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_r))); - m_view_6000[3].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); - m_view_6000[3].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_r))); - - page(2)->install_view(0x8000, 0x9fff, m_view_8000); - m_view_8000[0].install_read_bank(0x8000, 0x9fff, m_bank[4]); - m_view_8000[1].install_readwrite_bank(0x8000, 0x9fff, m_bank[4]); - page(2)->install_view(0xa000, 0xbfff, m_view_a000); - m_view_a000[0].install_read_bank(0xa000, 0xbfff, m_bank[5]); - m_view_a000[1].install_readwrite_bank(0xa000, 0xbfff, m_bank[5]); + for (int pg = 0; pg < 3; pg++) + { + const offs_t start = pg * 0x4000; + const int index = pg * 2; + page(pg)->install_view(start, start + 0x1fff, m_view[index]); + m_view[index][0].install_read_bank(start, start + 0x1fff, m_bank[index]); + m_view[index][1].install_readwrite_bank(start, start + 0x1fff, m_bank[index]); + page(pg)->install_view(start + 0x2000, start + 0x3fff, m_view[index + 1]); + m_view[index + 1][0].install_read_bank(start + 0x2000, start + 0x3fff, m_bank[index + 1]); + m_view[index + 1][1].install_readwrite_bank(start + 0x2000, start + 0x3fff, m_bank[index + 1]); + } + + m_view[3][2].install_read_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][2].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_r))); + m_view[3][3].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][3].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_r))); page(1)->install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_w<0>))); // 0000-1fff page(1)->install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_cart_fs_sr021_device::bank_w<1>))); // 2000-3fff @@ -157,18 +135,10 @@ template void msx_cart_fs_sr021_device::set_view() { bool ram_active = (m_selected_bank[Bank] >= 0x80 && m_selected_bank[Bank] < 0x82); - if (Bank == 0) - m_view_0000.select(ram_active ? 1 : 0); - if (Bank == 1) - m_view_2000.select(ram_active ? 1 : 0); - if (Bank == 2) - m_view_4000.select(ram_active ? 1 : 0); if (Bank == 3) - m_view_6000.select((BIT(m_control, 2) ? 2 : 0) | (ram_active ? 1 : 0)); - if (Bank == 4) - m_view_8000.select(ram_active ? 1 : 0); - if (Bank == 5) - m_view_a000.select(ram_active ? 1 : 0); + m_view[Bank].select((BIT(m_control, 2) ? 2 : 0) | (ram_active ? 1 : 0)); + else + m_view[Bank].select(ram_active ? 1 : 0); } template diff --git a/src/devices/bus/msx/cart/halnote.cpp b/src/devices/bus/msx/cart/halnote.cpp index bbd6b0343641e..cc9c5dcfca39a 100644 --- a/src/devices/bus/msx/cart/halnote.cpp +++ b/src/devices/bus/msx/cart/halnote.cpp @@ -12,8 +12,7 @@ class msx_cart_halnote_device : public device_t, public msx_cart_interface : device_t(mconfig, MSX_CART_HALNOTE, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_rombank(*this, "rombank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") + , m_view{ {*this, "view0"}, {*this, "view1"} } { } virtual std::error_condition initialize_cartridge(std::string &message) override; @@ -26,16 +25,15 @@ class msx_cart_halnote_device : public device_t, public msx_cart_interface private: static constexpr u8 BANK_MASK = (0x100000 / 0x2000) - 1; + template void bank_w(u8 data); void bank0_w(u8 data); void bank1_w(u8 data); void bank2_w(u8 data); void bank3_w(u8 data); - void bank4_w(u8 data); - void bank5_w(u8 data); + template void bank_small_w(u8 data); memory_bank_array_creator<6> m_rombank; - memory_view m_view0; - memory_view m_view1; + memory_view m_view[2]; }; void msx_cart_halnote_device::device_reset() @@ -43,8 +41,8 @@ void msx_cart_halnote_device::device_reset() for (int i = 0; i < 6; i++) m_rombank[i]->set_entry(0); - m_view0.disable(); - m_view1.select(0); + m_view[0].disable(); + m_view[1].select(0); } std::error_condition msx_cart_halnote_device::initialize_cartridge(std::string &message) @@ -80,60 +78,42 @@ std::error_condition msx_cart_halnote_device::initialize_cartridge(std::string & m_rombank[4]->configure_entries(0, 0x100, cart_rom_region()->base() + 0x80000, 0x800); m_rombank[5]->configure_entries(0, 0x100, cart_rom_region()->base() + 0x80000, 0x800); - page(0)->install_view(0x0000, 0x3fff, m_view0); - m_view0[0]; - m_view0[1].install_ram(0x0000, 0x3fff, cart_sram_region()->base()); + page(0)->install_view(0x0000, 0x3fff, m_view[0]); + m_view[0][0]; + m_view[0][1].install_ram(0x0000, 0x3fff, cart_sram_region()->base()); page(1)->install_read_bank(0x4000, 0x5fff, m_rombank[0]); - page(1)->install_write_handler(0x4fff, 0x4fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank0_w))); - page(1)->install_view(0x6000, 0x7fff, m_view1); - m_view1[0].install_read_bank(0x6000, 0x7fff, m_rombank[1]); - m_view1[0].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank1_w))); - m_view1[0].install_write_handler(0x77ff, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank4_w))); - m_view1[0].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank5_w))); - m_view1[1].install_read_bank(0x6000, 0x6fff, m_rombank[1]); - m_view1[1].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank1_w))); - m_view1[1].install_read_bank(0x7000, 0x77ff, m_rombank[4]); - m_view1[1].install_write_handler(0x77ff, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank4_w))); - m_view1[1].install_read_bank(0x7800, 0x7fff, m_rombank[5]); - m_view1[1].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank5_w))); + page(1)->install_write_handler(0x4fff, 0x4fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_w<0>))); + page(1)->install_view(0x6000, 0x7fff, m_view[1]); + m_view[1][0].install_read_bank(0x6000, 0x7fff, m_rombank[1]); + m_view[1][0].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_w<1>))); + m_view[1][0].install_write_handler(0x77ff, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_small_w<4>))); + m_view[1][0].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_small_w<5>))); + m_view[1][1].install_read_bank(0x6000, 0x6fff, m_rombank[1]); + m_view[1][1].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_w<1>))); + m_view[1][1].install_read_bank(0x7000, 0x77ff, m_rombank[4]); + m_view[1][1].install_write_handler(0x77ff, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_small_w<4>))); + m_view[1][1].install_read_bank(0x7800, 0x7fff, m_rombank[5]); + m_view[1][1].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_small_w<5>))); page(2)->install_read_bank(0x8000, 0x9fff, m_rombank[2]); - page(2)->install_write_handler(0x8fff, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank2_w))); + page(2)->install_write_handler(0x8fff, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_w<2>))); page(2)->install_read_bank(0xa000, 0xbfff, m_rombank[3]); - page(2)->install_write_handler(0xafff, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank3_w))); + page(2)->install_write_handler(0xafff, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_halnote_device::bank_w<3>))); return std::error_condition(); } -void msx_cart_halnote_device::bank0_w(u8 data) +template +void msx_cart_halnote_device::bank_w(u8 data) { - m_rombank[0]->set_entry(data & 0x7f); - m_view0.select(BIT(data, 7) ? 1 : 0); + m_rombank[Bank]->set_entry(data & 0x7f); + if (Bank == 0 || Bank == 3) + m_view[Bank ? 1 : 0].select(BIT(data, 7) ? 1 : 0); } -void msx_cart_halnote_device::bank1_w(u8 data) +template +void msx_cart_halnote_device::bank_small_w(u8 data) { - m_rombank[1]->set_entry(data & 0x7f); -} - -void msx_cart_halnote_device::bank2_w(u8 data) -{ - m_rombank[2]->set_entry(data & 0x7f); -} - -void msx_cart_halnote_device::bank3_w(u8 data) -{ - m_rombank[3]->set_entry(data & 0x7f); - m_view1.select(BIT(data, 7) ? 1 : 0); -} - -void msx_cart_halnote_device::bank4_w(u8 data) -{ - m_rombank[4]->set_entry(data); -} - -void msx_cart_halnote_device::bank5_w(u8 data) -{ - m_rombank[5]->set_entry(data); + m_rombank[Bank]->set_entry(data); } } // anonymous namespace diff --git a/src/devices/bus/msx/cart/holy_quran.cpp b/src/devices/bus/msx/cart/holy_quran.cpp index 74df118b46b04..327651ed96a9d 100644 --- a/src/devices/bus/msx/cart/holy_quran.cpp +++ b/src/devices/bus/msx/cart/holy_quran.cpp @@ -21,8 +21,7 @@ class msx_cart_holy_quran_device : public device_t, public msx_cart_interface : device_t(mconfig, MSX_CART_HOLY_QURAN, tag, owner, clock) , msx_cart_interface(mconfig, *this) , m_rombank(*this, "rombank%u", 0U) - , m_view1(*this, "view1") - , m_view2(*this, "view2") + , m_view{ {*this, "view1"}, {*this, "view2"} } { } virtual std::error_condition initialize_cartridge(std::string &message) override; @@ -40,8 +39,7 @@ class msx_cart_holy_quran_device : public device_t, public msx_cart_interface template void bank_w(u8 data); memory_bank_array_creator<4> m_rombank; - memory_view m_view1; - memory_view m_view2; + memory_view m_view[2]; std::vector m_decrypted; u8 m_bank_mask; @@ -76,27 +74,27 @@ std::error_condition msx_cart_holy_quran_device::initialize_cartridge(std::strin for (int i = 0; i < 4; i++) m_rombank[i]->configure_entries(0, banks, m_decrypted.data(), BANK_SIZE); - page(1)->install_view(0x4000, 0x7fff, m_view1); - m_view1[0].install_read_handler(0x4000, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::read))); - m_view1[1].install_read_bank(0x4000, 0x5fff, m_rombank[0]); - m_view1[1].install_read_bank(0x6000, 0x7fff, m_rombank[1]); - m_view1[1].install_write_handler(0x5000, 0x5000, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<0>))); - m_view1[1].install_write_handler(0x5400, 0x5400, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<1>))); - m_view1[1].install_write_handler(0x5800, 0x5800, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<2>))); - m_view1[1].install_write_handler(0x5c00, 0x5c00, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<3>))); + page(1)->install_view(0x4000, 0x7fff, m_view[0]); + m_view[0][0].install_read_handler(0x4000, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::read))); + m_view[0][1].install_read_bank(0x4000, 0x5fff, m_rombank[0]); + m_view[0][1].install_read_bank(0x6000, 0x7fff, m_rombank[1]); + m_view[0][1].install_write_handler(0x5000, 0x5000, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<0>))); + m_view[0][1].install_write_handler(0x5400, 0x5400, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<1>))); + m_view[0][1].install_write_handler(0x5800, 0x5800, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<2>))); + m_view[0][1].install_write_handler(0x5c00, 0x5c00, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::bank_w<3>))); - page(2)->install_view(0x8000, 0xbfff, m_view2); - m_view2[0].install_read_handler(0x8000, 0xbfff, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::read2))); - m_view2[1].install_read_bank(0x8000, 0x9fff, m_rombank[2]); - m_view2[1].install_read_bank(0xa000, 0xbfff, m_rombank[3]); + page(2)->install_view(0x8000, 0xbfff, m_view[1]); + m_view[1][0].install_read_handler(0x8000, 0xbfff, emu::rw_delegate(*this, FUNC(msx_cart_holy_quran_device::read2))); + m_view[1][1].install_read_bank(0x8000, 0x9fff, m_rombank[2]); + m_view[1][1].install_read_bank(0xa000, 0xbfff, m_rombank[3]); return std::error_condition(); } void msx_cart_holy_quran_device::device_reset() { - m_view1.select(0); - m_view2.select(0); + m_view[0].select(0); + m_view[1].select(0); for (int i = 0; i < 4; i++) m_rombank[i]->set_entry(0); } @@ -108,8 +106,8 @@ u8 msx_cart_holy_quran_device::read(offs_t offset) if (offset + 0x4000 == ((cart_rom_region()->base()[3] << 8) | cart_rom_region()->base()[2]) && !machine().side_effects_disabled()) { // Switch to decrypted contents - m_view1.select(1); - m_view2.select(1); + m_view[0].select(1); + m_view[1].select(1); } return data; } @@ -121,8 +119,8 @@ u8 msx_cart_holy_quran_device::read2(offs_t offset) if (offset + 0x8000 == ((cart_rom_region()->base()[3] << 8) | cart_rom_region()->base()[2]) && !machine().side_effects_disabled()) { // Switch to decrypted contents - m_view1.select(1); - m_view2.select(1); + m_view[0].select(1); + m_view[1].select(1); } return data; } diff --git a/src/devices/bus/msx/cart/konami.cpp b/src/devices/bus/msx/cart/konami.cpp index 73944e945b8da..0cee367d2e550 100644 --- a/src/devices/bus/msx/cart/konami.cpp +++ b/src/devices/bus/msx/cart/konami.cpp @@ -345,9 +345,7 @@ class msx_cart_gamemaster2_device : public device_t, public msx_cart_interface , msx_cart_interface(mconfig, *this) , m_rombank(*this, "rombank%u", 0U) , m_rambank(*this, "rambank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view2(*this, "view2") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"} } { } virtual std::error_condition initialize_cartridge(std::string &message) override; @@ -362,9 +360,7 @@ class msx_cart_gamemaster2_device : public device_t, public msx_cart_interface memory_bank_array_creator<3> m_rombank; memory_bank_array_creator<3> m_rambank; - memory_view m_view0; - memory_view m_view1; - memory_view m_view2; + memory_view m_view[3]; }; void msx_cart_gamemaster2_device::device_reset() @@ -372,9 +368,8 @@ void msx_cart_gamemaster2_device::device_reset() m_rombank[0]->set_entry(1); m_rombank[1]->set_entry(1); m_rombank[2]->set_entry(2); - m_view0.select(0); - m_view1.select(0); - m_view2.select(0); + for (int i = 0; i < 3; i++) + m_view[i].select(0); } std::error_condition msx_cart_gamemaster2_device::initialize_cartridge(std::string &message) @@ -414,24 +409,24 @@ std::error_condition msx_cart_gamemaster2_device::initialize_cartridge(std::stri page(1)->install_rom(0x4000, 0x5fff, cart_rom_region()->base()); - page(1)->install_view(0x6000, 0x7fff, m_view0); - m_view0[0].install_read_bank(0x6000, 0x7fff, m_rombank[0]); - m_view0[0].install_write_handler(0x6000, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<0>))); - m_view0[1].install_read_bank(0x6000, 0x6fff, 0x1000, m_rambank[0]); - m_view0[1].install_write_handler(0x6000, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<0>))); - - page(2)->install_view(0x8000, 0x9fff, m_view1); - m_view1[0].install_read_bank(0x8000, 0x9fff, m_rombank[1]); - m_view1[0].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<1>))); - m_view1[1].install_read_bank(0x8000, 0x8fff, 0x1000, m_rambank[1]); - m_view1[1].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<1>))); - - page(2)->install_view(0xa000, 0xbfff, m_view2); - m_view2[0].install_read_bank(0xa000, 0xbfff, m_rombank[2]); - m_view2[0].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<2>))); - m_view2[1].install_read_bank(0xa000, 0xafff, m_rambank[2]); - m_view2[1].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<2>))); - m_view2[1].install_readwrite_bank(0xb000, 0xbfff, m_rambank[2]); + page(1)->install_view(0x6000, 0x7fff, m_view[0]); + m_view[0][0].install_read_bank(0x6000, 0x7fff, m_rombank[0]); + m_view[0][0].install_write_handler(0x6000, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<0>))); + m_view[0][1].install_read_bank(0x6000, 0x6fff, 0x1000, m_rambank[0]); + m_view[0][1].install_write_handler(0x6000, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<0>))); + + page(2)->install_view(0x8000, 0x9fff, m_view[1]); + m_view[1][0].install_read_bank(0x8000, 0x9fff, m_rombank[1]); + m_view[1][0].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<1>))); + m_view[1][1].install_read_bank(0x8000, 0x8fff, 0x1000, m_rambank[1]); + m_view[1][1].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<1>))); + + page(2)->install_view(0xa000, 0xbfff, m_view[2]); + m_view[2][0].install_read_bank(0xa000, 0xbfff, m_rombank[2]); + m_view[2][0].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<2>))); + m_view[2][1].install_read_bank(0xa000, 0xafff, m_rambank[2]); + m_view[2][1].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*this, FUNC(msx_cart_gamemaster2_device::bank_w<2>))); + m_view[2][1].install_readwrite_bank(0xb000, 0xbfff, m_rambank[2]); return std::error_condition(); } @@ -441,12 +436,7 @@ void msx_cart_gamemaster2_device::bank_w(u8 data) { m_rombank[Bank]->set_entry(data & 0x0f); m_rambank[Bank]->set_entry(BIT(data, 5) ? 1 : 0); - if (Bank == 0) - m_view0.select(BIT(data, 4) ? 1 : 0); - if (Bank == 1) - m_view1.select(BIT(data, 4) ? 1 : 0); - if (Bank == 2) - m_view2.select(BIT(data, 4) ? 1 : 0); + m_view[Bank].select(BIT(data, 4) ? 1 : 0); } @@ -516,10 +506,7 @@ class msx_cart_konami_sound_device : public device_t, public msx_cart_interface , msx_cart_interface(mconfig, *this) , m_k052539(*this, "k052539") , m_rambank(*this, "rambank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view2(*this, "view2") - , m_view3(*this, "view3") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"}, {*this, "view3"} } , m_min_rambank(min_rambank) , m_max_rambank(max_rambank) , m_selected_bank{0, 0, 0, 0} @@ -545,10 +532,7 @@ class msx_cart_konami_sound_device : public device_t, public msx_cart_interface // This is actually a K052539 required_device m_k052539; memory_bank_array_creator<4> m_rambank; - memory_view m_view0; - memory_view m_view1; - memory_view m_view2; - memory_view m_view3; + memory_view m_view[4]; u8 m_min_rambank; u8 m_max_rambank; @@ -591,79 +575,79 @@ std::error_condition msx_cart_konami_sound_device::initialize_cartridge(std::str // TODO Mirrors at 0000-3fff and c000-ffff - page(1)->install_view(0x4000, 0x5fff, m_view0); - m_view0[VIEW_READ].install_read_bank(0x4000, 0x5fff, m_rambank[0]); - m_view0[VIEW_READ].install_write_handler(0x5000, 0x57ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<0>))); - m_view0[VIEW_RAM].install_readwrite_bank(0x4000, 0x5fff, m_rambank[0]); - m_view0[VIEW_INVALID].install_write_handler(0x5000, 0x57ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<0>))); - m_view0[VIEW_INVALID | VIEW_RAM]; - - page(1)->install_view(0x6000, 0x7fff, m_view1); - m_view1[VIEW_READ].install_read_bank(0x6000, 0x7fff, m_rambank[1]); - m_view1[VIEW_READ].install_write_handler(0x7000, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<1>))); - m_view1[VIEW_RAM].install_readwrite_bank(0x6000, 0x7fff, m_rambank[1]); - m_view1[VIEW_INVALID].install_write_handler(0x7000, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<1>))); - m_view1[VIEW_INVALID | VIEW_RAM]; - - page(2)->install_view(0x8000, 0x9fff, m_view2); - m_view2[VIEW_READ].install_read_bank(0x8000, 0x9fff, m_rambank[2]); - m_view2[VIEW_READ].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); - m_view2[VIEW_RAM].install_readwrite_bank(0x8000, 0x9fff, m_rambank[2]); - m_view2[VIEW_INVALID].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); - m_view2[VIEW_INVALID | VIEW_RAM]; - m_view2[VIEW_SCC | VIEW_READ].install_read_bank(0x8000, 0x9fff, m_rambank[2]); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); - m_view2[VIEW_SCC | VIEW_READ].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_w))); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x9880, 0x9889, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x988a, 0x988e, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x988f, 0x988f, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); - m_view2[VIEW_SCC | VIEW_READ].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view2[VIEW_SCC | VIEW_READ].install_write_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); - m_view2[VIEW_SCC | VIEW_RAM].install_readwrite_bank(0x8000, 0x9fff, m_rambank[2]); - m_view2[VIEW_SCC | VIEW_RAM].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); - m_view2[VIEW_SCC | VIEW_RAM].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); - m_view2[VIEW_SCC | VIEW_INVALID].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_w))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x9880, 0x9889, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x988a, 0x988e, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x988f, 0x988f, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); - m_view2[VIEW_SCC | VIEW_INVALID].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view2[VIEW_SCC | VIEW_INVALID].install_write_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); - m_view2[VIEW_SCC | VIEW_INVALID | VIEW_RAM]; - m_view2[VIEW_SCC | VIEW_INVALID | VIEW_RAM].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); - m_view2[VIEW_SCC | VIEW_INVALID | VIEW_RAM].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - - page(2)->install_view(0xa000, 0xbfff, m_view3); - m_view3[VIEW_READ].install_read_bank(0xa000, 0xbfff, m_rambank[3]); - m_view3[VIEW_READ].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); - m_view3[VIEW_RAM].install_readwrite_bank(0xa000, 0xbfff, m_rambank[3]); - m_view3[VIEW_INVALID].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); - m_view3[VIEW_INVALID | VIEW_RAM]; - m_view3[VIEW_SCC | VIEW_READ].install_read_bank(0xa000, 0xbfff, m_rambank[3]); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); - m_view3[VIEW_SCC | VIEW_READ].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_w))); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb8a0, 0xb8a9, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb8aa, 0xb8ae, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb8af, 0xb8af, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); - m_view3[VIEW_SCC | VIEW_READ].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view3[VIEW_SCC | VIEW_READ].install_write_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); - m_view3[VIEW_SCC | VIEW_RAM].install_readwrite_bank(0xa000, 0xbfff, m_rambank[3]); - m_view3[VIEW_SCC | VIEW_RAM].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); - m_view3[VIEW_SCC | VIEW_RAM].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); - m_view3[VIEW_SCC | VIEW_INVALID].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_w))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8a0, 0xb8a9, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8aa, 0xb8ae, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8af, 0xb8af, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); - m_view3[VIEW_SCC | VIEW_INVALID].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); - m_view3[VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); - m_view3[VIEW_SCC | VIEW_INVALID | VIEW_RAM]; - m_view3[VIEW_SCC | VIEW_INVALID| VIEW_RAM].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); - m_view3[VIEW_SCC | VIEW_INVALID| VIEW_RAM].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + page(1)->install_view(0x4000, 0x5fff, m_view[0]); + m_view[0][VIEW_READ].install_read_bank(0x4000, 0x5fff, m_rambank[0]); + m_view[0][VIEW_READ].install_write_handler(0x5000, 0x57ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<0>))); + m_view[0][VIEW_RAM].install_readwrite_bank(0x4000, 0x5fff, m_rambank[0]); + m_view[0][VIEW_INVALID].install_write_handler(0x5000, 0x57ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<0>))); + m_view[0][VIEW_INVALID | VIEW_RAM]; + + page(1)->install_view(0x6000, 0x7fff, m_view[1]); + m_view[1][VIEW_READ].install_read_bank(0x6000, 0x7fff, m_rambank[1]); + m_view[1][VIEW_READ].install_write_handler(0x7000, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<1>))); + m_view[1][VIEW_RAM].install_readwrite_bank(0x6000, 0x7fff, m_rambank[1]); + m_view[1][VIEW_INVALID].install_write_handler(0x7000, 0x77ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<1>))); + m_view[1][VIEW_INVALID | VIEW_RAM]; + + page(2)->install_view(0x8000, 0x9fff, m_view[2]); + m_view[2][VIEW_READ].install_read_bank(0x8000, 0x9fff, m_rambank[2]); + m_view[2][VIEW_READ].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); + m_view[2][VIEW_RAM].install_readwrite_bank(0x8000, 0x9fff, m_rambank[2]); + m_view[2][VIEW_INVALID].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); + m_view[2][VIEW_INVALID | VIEW_RAM]; + m_view[2][VIEW_SCC | VIEW_READ].install_read_bank(0x8000, 0x9fff, m_rambank[2]); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); + m_view[2][VIEW_SCC | VIEW_READ].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_w))); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x9880, 0x9889, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x988a, 0x988e, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x988f, 0x988f, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); + m_view[2][VIEW_SCC | VIEW_READ].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[2][VIEW_SCC | VIEW_READ].install_write_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); + m_view[2][VIEW_SCC | VIEW_RAM].install_readwrite_bank(0x8000, 0x9fff, m_rambank[2]); + m_view[2][VIEW_SCC | VIEW_RAM].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); + m_view[2][VIEW_SCC | VIEW_RAM].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x9000, 0x97ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<2>))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_w))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x9880, 0x9889, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x988a, 0x988e, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x988f, 0x988f, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[2][VIEW_SCC | VIEW_INVALID].install_write_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); + m_view[2][VIEW_SCC | VIEW_INVALID | VIEW_RAM]; + m_view[2][VIEW_SCC | VIEW_INVALID | VIEW_RAM].install_read_handler(0x9800, 0x987f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_waveform_r))); + m_view[2][VIEW_SCC | VIEW_INVALID | VIEW_RAM].install_read_handler(0x98c0, 0x98c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + + page(2)->install_view(0xa000, 0xbfff, m_view[3]); + m_view[3][VIEW_READ].install_read_bank(0xa000, 0xbfff, m_rambank[3]); + m_view[3][VIEW_READ].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); + m_view[3][VIEW_RAM].install_readwrite_bank(0xa000, 0xbfff, m_rambank[3]); + m_view[3][VIEW_INVALID].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); + m_view[3][VIEW_INVALID | VIEW_RAM]; + m_view[3][VIEW_SCC | VIEW_READ].install_read_bank(0xa000, 0xbfff, m_rambank[3]); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); + m_view[3][VIEW_SCC | VIEW_READ].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_w))); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb8a0, 0xb8a9, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb8aa, 0xb8ae, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb8af, 0xb8af, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); + m_view[3][VIEW_SCC | VIEW_READ].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[3][VIEW_SCC | VIEW_READ].install_write_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); + m_view[3][VIEW_SCC | VIEW_RAM].install_readwrite_bank(0xa000, 0xbfff, m_rambank[3]); + m_view[3][VIEW_SCC | VIEW_RAM].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); + m_view[3][VIEW_SCC | VIEW_RAM].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb000, 0xb7ff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::bank_w<3>))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_w))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8a0, 0xb8a9, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_frequency_w))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8aa, 0xb8ae, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_volume_w))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8af, 0xb8af, 0, 0x0710, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_keyonoff_w))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); + m_view[3][VIEW_SCC | VIEW_INVALID].install_write_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_w))); + m_view[3][VIEW_SCC | VIEW_INVALID | VIEW_RAM]; + m_view[3][VIEW_SCC | VIEW_INVALID| VIEW_RAM].install_read_handler(0xb800, 0xb89f, 0, 0x0700, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k052539_waveform_r))); + m_view[3][VIEW_SCC | VIEW_INVALID| VIEW_RAM].install_read_handler(0xb8c0, 0xb8c0, 0, 0x071f, 0, emu::rw_delegate(m_k052539, FUNC(k051649_device::k051649_test_r))); page(2)->install_write_handler(0xbffe, 0xbfff, emu::rw_delegate(*this, FUNC(msx_cart_konami_sound_device::control_w))); @@ -702,14 +686,7 @@ void msx_cart_konami_sound_device::switch_bank() if (Bank == 3 && BIT(m_control, 5) && BIT(m_selected_bank[3], 7)) view |= VIEW_SCC; - if (Bank == 0) - m_view0.select(view); - if (Bank == 1) - m_view1.select(view); - if (Bank == 2) - m_view2.select(view); - if (Bank == 3) - m_view3.select(view); + m_view[Bank].select(view); } template diff --git a/src/devices/bus/msx/cart/msx_audio.cpp b/src/devices/bus/msx/cart/msx_audio.cpp index 8a28016acd39a..1baae1488a0cd 100644 --- a/src/devices/bus/msx/cart/msx_audio.cpp +++ b/src/devices/bus/msx/cart/msx_audio.cpp @@ -267,8 +267,7 @@ class msx_cart_msx_audio_fsca1_device : public device_t, public msx_cart_interfa , m_io_config(*this, "CONFIG") , m_region_y8950(*this, "y8950") , m_rombank(*this, "rombank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") + , m_view{ {*this, "view0"}, {*this, "view1"} } , m_7fff(0) { } @@ -294,8 +293,7 @@ class msx_cart_msx_audio_fsca1_device : public device_t, public msx_cart_interfa required_ioport m_io_config; required_memory_region m_region_y8950; memory_bank_array_creator<2> m_rombank; - memory_view m_view0; - memory_view m_view1; + memory_view m_view[2]; u8 m_7fff; }; @@ -344,10 +342,11 @@ void msx_cart_msx_audio_fsca1_device::device_start() void msx_cart_msx_audio_fsca1_device::device_reset() { - m_view0.select(0); - m_view1.select(0); - m_rombank[0]->set_entry(0); - m_rombank[1]->set_entry(0); + for (int i = 0; i < 2; i++) + { + m_view[i].select(0); + m_rombank[i]->set_entry(0); + } } std::error_condition msx_cart_msx_audio_fsca1_device::initialize_cartridge(std::string &message) @@ -367,15 +366,15 @@ std::error_condition msx_cart_msx_audio_fsca1_device::initialize_cartridge(std:: m_rombank[0]->configure_entries(0, 4, cart_rom_region()->base(), 0x8000); m_rombank[1]->configure_entries(0, 4, cart_rom_region()->base() + 0x4000, 0x8000); - page(0)->install_view(0x0000, 0x3fff, m_view0); - m_view0[0].install_read_bank(0x0000, 0x3fff, m_rombank[0]); - m_view0[0].install_ram(0x3000, 0x3fff, cart_sram_region()->base()); - m_view0[1].install_read_bank(0x0000, 0x3fff, m_rombank[0]); + page(0)->install_view(0x0000, 0x3fff, m_view[0]); + m_view[0][0].install_read_bank(0x0000, 0x3fff, m_rombank[0]); + m_view[0][0].install_ram(0x3000, 0x3fff, cart_sram_region()->base()); + m_view[0][1].install_read_bank(0x0000, 0x3fff, m_rombank[0]); - page(1)->install_view(0x4000, 0x7fff, m_view1); - m_view1[0].install_read_bank(0x4000, 0x7ffd, m_rombank[1]); - m_view1[0].install_ram(0x7000, 0x7ffd, cart_sram_region()->base()); - m_view1[1].install_read_bank(0x4000, 0x7ffd, m_rombank[1]); + page(1)->install_view(0x4000, 0x7fff, m_view[1]); + m_view[1][0].install_read_bank(0x4000, 0x7ffd, m_rombank[1]); + m_view[1][0].install_ram(0x7000, 0x7ffd, cart_sram_region()->base()); + m_view[1][1].install_read_bank(0x4000, 0x7ffd, m_rombank[1]); page(1)->install_write_handler(0x7ffe, 0x7ffe, emu::rw_delegate(*this, FUNC(msx_cart_msx_audio_fsca1_device::bank_w))); page(1)->install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_cart_msx_audio_fsca1_device::write_7fff))); @@ -387,10 +386,11 @@ std::error_condition msx_cart_msx_audio_fsca1_device::initialize_cartridge(std:: void msx_cart_msx_audio_fsca1_device::bank_w(u8 data) { - m_rombank[0]->set_entry(data & 0x03); - m_rombank[1]->set_entry(data & 0x03); - m_view0.select((data != 0) ? 1 : 0); - m_view1.select((data != 0) ? 1 : 0); + for (int i = 0; i < 2; i++) + { + m_rombank[i]->set_entry(data & 0x03); + m_view[i].select((data != 0) ? 1 : 0); + } } void msx_cart_msx_audio_fsca1_device::write_7fff(u8 data) @@ -400,24 +400,24 @@ void msx_cart_msx_audio_fsca1_device::write_7fff(u8 data) void msx_cart_msx_audio_fsca1_device::write_y8950(offs_t offset, u8 data) { - if (offset & 2) + if (BIT(offset, 1)) { - if (m_7fff & 0x02) + if (BIT(m_7fff, 1)) m_y8950->write(offset, data); } else { - if (m_7fff & 0x01) + if (BIT(m_7fff, 0)) m_y8950->write(offset, data); } } u8 msx_cart_msx_audio_fsca1_device::read_y8950(offs_t offset) { - if (offset & 2) - return (m_7fff & 0x02) ? m_y8950->read(offset) : 0xff; + if (BIT(offset, 1)) + return BIT(m_7fff, 1) ? m_y8950->read(offset) : 0xff; else - return (m_7fff & 0x01) ? m_y8950->read(offset) : 0xff; + return BIT(m_7fff, 0) ? m_y8950->read(offset) : 0xff; } void msx_cart_msx_audio_fsca1_device::y8950_io_w(u8 data) diff --git a/src/devices/bus/msx/cart/msxdos2.cpp b/src/devices/bus/msx/cart/msxdos2.cpp index 05953e93de48d..d502b422352bc 100644 --- a/src/devices/bus/msx/cart/msxdos2.cpp +++ b/src/devices/bus/msx/cart/msxdos2.cpp @@ -95,10 +95,7 @@ class msx_cart_msxdos2j_device : public msx_cart_msxdos2_base_device msx_cart_msxdos2j_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) : msx_cart_msxdos2_base_device(mconfig, MSX_CART_MSXDOS2J, tag, owner, clock) , m_rambank(*this, "rambank%u", 0) - , m_view_page0(*this, "view_page0") - , m_view_page1(*this, "view_page1") - , m_view_page2(*this, "view_page2") - , m_view_page3(*this, "view_page3") + , m_view_page{ {*this, "view_page0"}, {*this, "view_page1"}, {*this, "view_page2"}, {*this, "view_page3"} } , m_secondary_slot(0) , m_bank_mask(0) { } @@ -114,10 +111,7 @@ class msx_cart_msxdos2j_device : public msx_cart_msxdos2_base_device template void mm_bank_w(u8 data); memory_bank_array_creator<4> m_rambank; - memory_view m_view_page0; - memory_view m_view_page1; - memory_view m_view_page2; - memory_view m_view_page3; + memory_view m_view_page[4]; u8 m_secondary_slot; u8 m_bank_mask; }; @@ -142,27 +136,23 @@ std::error_condition msx_cart_msxdos2j_device::initialize_cartridge(std::string return image_error::BADSOFTWARE; } - page(0)->install_view(0x0000, 0x3fff, m_view_page0); - page(1)->install_view(0x4000, 0x7fff, m_view_page1); - page(2)->install_view(0x8000, 0xbfff, m_view_page2); - page(3)->install_view(0xc000, 0xffff, m_view_page3); + for (int pg = 0; pg < 4; pg++) + page(pg)->install_view(0x4000 * pg, 0x4000 * pg + 0x3fff, m_view_page[pg]); page(3)->install_readwrite_handler(0xffff, 0xffff, emu::rw_delegate(*this, FUNC(msx_cart_msxdos2j_device::secondary_slot_r)), emu::rw_delegate(*this, FUNC(msx_cart_msxdos2j_device::secondary_slot_w))); // Make sure all views we can select do exist. for (int subslot = 0; subslot < 4; subslot++) { - m_view_page0[subslot]; - m_view_page1[subslot]; - m_view_page2[subslot]; - m_view_page3[subslot]; + for (int page = 0; page < 4; page++) + m_view_page[page][subslot]; } // Kanji driver - m_view_page1[2].install_rom(0x4000, 0x7fff, cart_rom_region()->base() + 0xc000); + m_view_page[1][2].install_rom(0x4000, 0x7fff, cart_rom_region()->base() + 0xc000); // MSX-DOS2 rom - m_view_page1[3].install_read_bank(0x4000, 0x7fff, m_rombank); - m_view_page1[3].install_write_handler(m_bank_address, m_bank_address, emu::rw_delegate(*this, FUNC(msx_cart_msxdos2j_device::bank_w))); + m_view_page[1][3].install_read_bank(0x4000, 0x7fff, m_rombank); + m_view_page[1][3].install_write_handler(m_bank_address, m_bank_address, emu::rw_delegate(*this, FUNC(msx_cart_msxdos2j_device::bank_w))); // On-cartridge memory mapper RAM if (ram_size) @@ -176,10 +166,8 @@ std::error_condition msx_cart_msxdos2j_device::initialize_cartridge(std::string } ); - m_view_page0[1].install_readwrite_bank(0x0000, 0x3fff, m_rambank[0]); - m_view_page1[1].install_readwrite_bank(0x4000, 0x7fff, m_rambank[1]); - m_view_page2[1].install_readwrite_bank(0x8000, 0xbfff, m_rambank[2]); - m_view_page3[1].install_readwrite_bank(0xc000, 0xffff, m_rambank[3]); + for (int pg = 0; pg < 4; pg++) + m_view_page[pg][1].install_readwrite_bank(0x4000 * pg, 0x4000 * pg + 0x3fff, m_rambank[pg]); io_space().install_write_tap(0xfc, 0xfc, "bank0", [this] (offs_t, u8& data, u8){ this->mm_bank_w<0>(data); }); io_space().install_write_tap(0xfd, 0xfd, "bank1", [this] (offs_t, u8& data, u8){ this->mm_bank_w<1>(data); }); @@ -197,10 +185,8 @@ u8 msx_cart_msxdos2j_device::secondary_slot_r() void msx_cart_msxdos2j_device::secondary_slot_w(u8 data) { - m_view_page0.select((data >> 0) & 0x03); - m_view_page1.select((data >> 2) & 0x03); - m_view_page2.select((data >> 4) & 0x03); - m_view_page3.select((data >> 6) & 0x03); + for (int page = 0; page < 4; page++) + m_view_page[page].select((data >> (2 * page)) & 0x03); m_secondary_slot = data; } diff --git a/src/devices/bus/msx/cart/scsi.cpp b/src/devices/bus/msx/cart/scsi.cpp index 02bb8d5bf3979..9b049a89ec246 100644 --- a/src/devices/bus/msx/cart/scsi.cpp +++ b/src/devices/bus/msx/cart/scsi.cpp @@ -104,9 +104,7 @@ class msx_cart_mega_scsi_device : public device_t, public msx_cart_interface , msx_cart_interface(mconfig, *this) , m_mb89352a(*this, "scsi:7:mb89352a") , m_srambank(*this, "srambank%u", 0U) - , m_view0(*this, "view0") - , m_view2(*this, "view2") - , m_view3(*this, "view3") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"}, {*this, "view3"} } , m_bank_mask(0) { } @@ -124,9 +122,7 @@ class msx_cart_mega_scsi_device : public device_t, public msx_cart_interface required_device m_mb89352a; memory_bank_array_creator<4> m_srambank; - memory_view m_view0; - memory_view m_view2; - memory_view m_view3; + memory_view m_view[4]; u8 m_bank_mask; template void bank_w(u8 data); @@ -150,10 +146,11 @@ void msx_cart_mega_scsi_device::device_add_mconfig(machine_config &config) void msx_cart_mega_scsi_device::device_reset() { for (int i = 0; i < 4; i++) + { + if (i != 1) + m_view[i].select(0); m_srambank[i]->set_entry(0); - m_view0.select(0); - m_view2.select(0); - m_view3.select(0); + } } std::error_condition msx_cart_mega_scsi_device::initialize_cartridge(std::string &message) @@ -178,31 +175,31 @@ std::error_condition msx_cart_mega_scsi_device::initialize_cartridge(std::string for (int i = 0; i < 4; i++) m_srambank[i]->configure_entries(0, sram_banks, cart_sram_region()->base(), BANK_SIZE); - page(1)->install_view(0x4000, 0x5fff, m_view0); - m_view0[0].install_read_bank(0x4000, 0x5fff, m_srambank[0]); - m_view0[1].install_readwrite_bank(0x4000, 0x5fff, m_srambank[0]); - m_view0[2].install_read_handler(0x4000, 0x4fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); - m_view0[2].install_write_handler(0x4000, 0x4fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); + page(1)->install_view(0x4000, 0x5fff, m_view[0]); + m_view[0][0].install_read_bank(0x4000, 0x5fff, m_srambank[0]); + m_view[0][1].install_readwrite_bank(0x4000, 0x5fff, m_srambank[0]); + m_view[0][2].install_read_handler(0x4000, 0x4fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); + m_view[0][2].install_write_handler(0x4000, 0x4fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); // mb89352 is mirrored at 5000 - 5fff - for (int i = 0; i < 0x1000; i += 0x10) - m_view0[2].install_device(0x5000 + i, 0x500f + i, *m_mb89352a, &mb89352_device::map); + for (int addr = 0x5000; addr < 0x6000; addr += 0x10) + m_view[0][2].install_device(addr, addr + 0x0f, *m_mb89352a, &mb89352_device::map); page(1)->install_read_bank(0x6000, 0x7fff, m_srambank[1]); - page(2)->install_view(0x8000, 0x9fff, m_view2); - m_view2[0].install_read_bank(0x8000, 0x9fff, m_srambank[2]); - m_view2[1].install_readwrite_bank(0x8000, 0x9fff, m_srambank[2]); - m_view2[2].install_read_handler(0x8000, 0x8fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); - m_view2[2].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); + page(2)->install_view(0x8000, 0x9fff, m_view[2]); + m_view[2][0].install_read_bank(0x8000, 0x9fff, m_srambank[2]); + m_view[2][1].install_readwrite_bank(0x8000, 0x9fff, m_srambank[2]); + m_view[2][2].install_read_handler(0x8000, 0x8fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); + m_view[2][2].install_write_handler(0x8000, 0x8fff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); // mb89352 is mirrored at 9000 - 9fff - for (int i = 0; i < 0x1000; i += 0x10) - m_view2[2].install_device(0x9000 + i, 0x900f + i, *m_mb89352a, &mb89352_device::map); - page(2)->install_view(0xa000, 0xbfff, m_view3); - m_view3[0].install_read_bank(0xa000, 0xbfff, m_srambank[3]); - m_view3[1].install_readwrite_bank(0xa000, 0xbfff, m_srambank[3]); - m_view3[2].install_read_handler(0xa000, 0xafff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); - m_view3[2].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); + for (int addr = 0x9000; addr < 0xa000; addr += 0x10) + m_view[2][2].install_device(addr, addr + 0x0f, *m_mb89352a, &mb89352_device::map); + page(2)->install_view(0xa000, 0xbfff, m_view[3]); + m_view[3][0].install_read_bank(0xa000, 0xbfff, m_srambank[3]); + m_view[3][1].install_readwrite_bank(0xa000, 0xbfff, m_srambank[3]); + m_view[3][2].install_read_handler(0xa000, 0xafff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_r))); + m_view[3][2].install_write_handler(0xa000, 0xafff, emu::rw_delegate(*m_mb89352a, FUNC(mb89352_device::dma_w))); // mb89352 is mirrored at b000 - bfff - for (int i = 0; i < 0x1000; i += 0x10) - m_view3[2].install_device(0xb000 + i, 0xb00f + i, *m_mb89352a, &mb89352_device::map); + for (int addr = 0xb000; addr < 0xc000; addr += 0x10) + m_view[3][2].install_device(addr, addr + 0x0f, *m_mb89352a, &mb89352_device::map); page(1)->install_write_handler(0x6000, 0x67ff, emu::rw_delegate(*this, FUNC(msx_cart_mega_scsi_device::bank_w<0>))); page(1)->install_write_handler(0x6800, 0x6fff, emu::rw_delegate(*this, FUNC(msx_cart_mega_scsi_device::bank_w<1>))); @@ -221,12 +218,7 @@ void msx_cart_mega_scsi_device::bank_w(u8 data) { int view_to_select = BIT(data, 7) ? 1 : (BIT(data, 6) ? 2 : 0); - if (Bank == 0) - m_view0.select(view_to_select); - if (Bank == 2) - m_view2.select(view_to_select); - if (Bank == 3) - m_view3.select(view_to_select); + m_view[Bank].select(view_to_select); } } diff --git a/src/devices/bus/msx/cart/slotexpander.cpp b/src/devices/bus/msx/cart/slotexpander.cpp index 11ad77a877a5c..cf3a78ce7333f 100644 --- a/src/devices/bus/msx/cart/slotexpander.cpp +++ b/src/devices/bus/msx/cart/slotexpander.cpp @@ -48,10 +48,7 @@ class msx_cart_slotexpander_device : public device_t, public msx_cart_interface , msx_cart_interface(mconfig, *this) , m_cartslot(*this, "cartslot%u", 1) , m_irq_out(*this, "irq_out") - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view2(*this, "view2") - , m_view3(*this, "view3") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"}, {*this, "view3"} } , m_secondary_slot(0) { } @@ -68,10 +65,7 @@ class msx_cart_slotexpander_device : public device_t, public msx_cart_interface required_device_array m_cartslot; required_device m_irq_out; - memory_view m_view0; - memory_view m_view1; - memory_view m_view2; - memory_view m_view3; + memory_view m_view[4]; u8 m_secondary_slot; }; @@ -114,22 +108,16 @@ void msx_cart_slotexpander_device::device_config_complete() void msx_cart_slotexpander_device::device_resolve_objects() { - page(0)->install_view(0x0000, 0x3fff, m_view0); - page(1)->install_view(0x4000, 0x7fff, m_view1); - page(2)->install_view(0x8000, 0xbfff, m_view2); - page(3)->install_view(0xc000, 0xffff, m_view3); + for (int pg = 0; pg < 4; pg++) + page(pg)->install_view(0x4000 * pg, 0x04000 * pg + 0x3fff, m_view[pg]); page(3)->install_readwrite_handler(0xffff, 0xffff, emu::rw_delegate(*this, FUNC(msx_cart_slotexpander_device::secondary_slot_r)), emu::rw_delegate(*this, FUNC(msx_cart_slotexpander_device::secondary_slot_w))); - for (int page = 0; page < 4; page++) - { - m_view0[page]; - m_view1[page]; - m_view2[page]; - m_view3[page]; - } + for (int subslot = 0; subslot < 4; subslot++) + for (int page = 0; page < 4; page++) + m_view[page][subslot]; - for (int i = 0; i < 4; i++) - m_cartslot[i]->install(&m_view0[i], &m_view1[i], &m_view2[i], &m_view3[i]); + for (int subslot = 0; subslot < 4; subslot++) + m_cartslot[subslot]->install(&m_view[0][subslot], &m_view[1][subslot], &m_view[2][subslot], &m_view[3][subslot]); } void msx_cart_slotexpander_device::device_start() @@ -137,10 +125,8 @@ void msx_cart_slotexpander_device::device_start() save_item(NAME(m_secondary_slot)); m_secondary_slot = 0; - m_view0.select(0); - m_view1.select(0); - m_view2.select(0); - m_view3.select(0); + for (int page = 0; page < 4; page++) + m_view[page].select(0); } u8 msx_cart_slotexpander_device::secondary_slot_r() @@ -150,10 +136,8 @@ u8 msx_cart_slotexpander_device::secondary_slot_r() void msx_cart_slotexpander_device::secondary_slot_w(u8 data) { - m_view0.select((data >> 0) & 0x03); - m_view1.select((data >> 2) & 0x03); - m_view2.select((data >> 4) & 0x03); - m_view3.select((data >> 6) & 0x03); + for (int page = 0; page < 4; page++) + m_view[page].select((data >> (2 * page)) & 0x03); m_secondary_slot = data; } From 832be042e93f3eb7fde6fc8b224659b7acdc23ff Mon Sep 17 00:00:00 2001 From: wilbertpol Date: Sun, 21 Apr 2024 19:04:04 +0100 Subject: [PATCH 09/46] msx/slot: Use arrays of memory views to make code more concise. (#12288) --- src/devices/bus/msx/slot/fs4600.cpp | 77 +++++++++++------------ src/devices/bus/msx/slot/fs4600.h | 4 +- src/devices/bus/msx/slot/fsa1fm.cpp | 80 +++++++++--------------- src/devices/bus/msx/slot/fsa1fm.h | 7 +-- src/devices/bus/msx/slot/msx_write.cpp | 29 +++++---- src/devices/bus/msx/slot/msx_write.h | 3 +- src/devices/bus/msx/slot/panasonic08.cpp | 57 +++++++---------- src/devices/bus/msx/slot/panasonic08.h | 6 +- src/devices/bus/msx/slot/sony08.cpp | 29 ++++----- src/devices/bus/msx/slot/sony08.h | 3 +- 10 files changed, 122 insertions(+), 173 deletions(-) diff --git a/src/devices/bus/msx/slot/fs4600.cpp b/src/devices/bus/msx/slot/fs4600.cpp index 62c2b43879d59..7f947b5b7fddd 100644 --- a/src/devices/bus/msx/slot/fs4600.cpp +++ b/src/devices/bus/msx/slot/fs4600.cpp @@ -17,9 +17,7 @@ msx_slot_fs4600_device::msx_slot_fs4600_device(const machine_config &mconfig, co , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) , m_rombank(*this, "rombank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view2(*this, "view2") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"} } , m_region_offset(0) , m_sram_address(0) { @@ -46,47 +44,46 @@ void msx_slot_fs4600_device::device_start() for (int i = 0; i < 3; i++) m_rombank[i]->configure_entries(0, 0x40, m_rom_region->base() + m_region_offset, 0x4000); - page(0)->install_view(0x0000, 0x3fff, m_view0); - m_view0[0].install_read_bank(0x0000, 0x3fff, m_rombank[0]); - m_view0[1].install_read_bank(0x0000, 0x3fff, m_rombank[0]); - m_view0[1].install_write_handler(0x3ffa, 0x3ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); - m_view0[1].install_read_handler(0x3ffd, 0x3ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); - - page(1)->install_view(0x4000, 0x7fff, m_view1); - m_view1[0].install_read_bank(0x4000, 0x7fff, m_rombank[1]); - m_view1[0].install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<1>))); - m_view1[0].install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<0>))); - m_view1[0].install_write_handler(0x7000, 0x7000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<2>))); - m_view1[1].install_read_bank(0x4000, 0x7fff, m_rombank[1]); - m_view1[1].install_write_handler(0x7ffa, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); - m_view1[1].install_read_handler(0x7ffd, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); - m_view1[2].install_read_bank(0x4000, 0x7fff, m_rombank[1]); - m_view1[2].install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<1>))); - m_view1[2].install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<0>))); - m_view1[2].install_write_handler(0x7000, 0x7000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<2>))); - m_view1[2].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_r))); - m_view1[3].install_read_bank(0x4000, 0x7fff, m_rombank[1]); - m_view1[3].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_r))); - m_view1[3].install_write_handler(0x7ffa, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); - m_view1[3].install_read_handler(0x7ffd, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); + page(0)->install_view(0x0000, 0x3fff, m_view[0]); + m_view[0][0].install_read_bank(0x0000, 0x3fff, m_rombank[0]); + m_view[0][1].install_read_bank(0x0000, 0x3fff, m_rombank[0]); + m_view[0][1].install_write_handler(0x3ffa, 0x3ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); + m_view[0][1].install_read_handler(0x3ffd, 0x3ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); + + page(1)->install_view(0x4000, 0x7fff, m_view[1]); + m_view[1][0].install_read_bank(0x4000, 0x7fff, m_rombank[1]); + m_view[1][0].install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<1>))); + m_view[1][0].install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<0>))); + m_view[1][0].install_write_handler(0x7000, 0x7000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<2>))); + m_view[1][1].install_read_bank(0x4000, 0x7fff, m_rombank[1]); + m_view[1][1].install_write_handler(0x7ffa, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); + m_view[1][1].install_read_handler(0x7ffd, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); + m_view[1][2].install_read_bank(0x4000, 0x7fff, m_rombank[1]); + m_view[1][2].install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<1>))); + m_view[1][2].install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<0>))); + m_view[1][2].install_write_handler(0x7000, 0x7000, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_w<2>))); + m_view[1][2].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_r))); + m_view[1][3].install_read_bank(0x4000, 0x7fff, m_rombank[1]); + m_view[1][3].install_read_handler(0x7ff0, 0x7ff5, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::bank_r))); + m_view[1][3].install_write_handler(0x7ffa, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); + m_view[1][3].install_read_handler(0x7ffd, 0x7ffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); page(1)->install_write_handler(0x7ff9, 0x7ff9, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::control_w))); - page(2)->install_view(0x8000, 0xbfff, m_view2); - m_view2[0].install_read_bank(0x8000, 0xbfff, m_rombank[2]); - m_view2[1].install_read_bank(0x8000, 0xbfff, m_rombank[2]); - m_view2[1].install_write_handler(0xbffa, 0xbffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); - m_view2[1].install_read_handler(0xbffd, 0xbffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); + page(2)->install_view(0x8000, 0xbfff, m_view[2]); + m_view[2][0].install_read_bank(0x8000, 0xbfff, m_rombank[2]); + m_view[2][1].install_read_bank(0x8000, 0xbfff, m_rombank[2]); + m_view[2][1].install_write_handler(0xbffa, 0xbffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_w))); + m_view[2][1].install_read_handler(0xbffd, 0xbffd, emu::rw_delegate(*this, FUNC(msx_slot_fs4600_device::sram_r))); } void msx_slot_fs4600_device::device_reset() { - m_view0.select(0); - m_view1.select(0); - m_view2.select(0); - m_rombank[0]->set_entry(0); - m_rombank[1]->set_entry(0); - m_rombank[2]->set_entry(0); + for (int i = 0; i < 3; i++) + { + m_view[i].select(0); + m_rombank[i]->set_entry(0); + } } u8 msx_slot_fs4600_device::sram_r() @@ -132,7 +129,7 @@ void msx_slot_fs4600_device::bank_w(u8 data) void msx_slot_fs4600_device::control_w(u8 data) { - m_view0.select((data >> 1) & 0x01); - m_view1.select((data >> 1) & 0x03); - m_view2.select((data >> 1) & 0x01); + m_view[0].select((data >> 1) & 0x01); + m_view[1].select((data >> 1) & 0x03); + m_view[2].select((data >> 1) & 0x01); } diff --git a/src/devices/bus/msx/slot/fs4600.h b/src/devices/bus/msx/slot/fs4600.h index 736ddab499a63..5061e9186bf45 100644 --- a/src/devices/bus/msx/slot/fs4600.h +++ b/src/devices/bus/msx/slot/fs4600.h @@ -38,9 +38,7 @@ class msx_slot_fs4600_device : public device_t, public msx_internal_slot_interfa required_device m_nvram; required_memory_region m_rom_region; memory_bank_array_creator<3> m_rombank; - memory_view m_view0; - memory_view m_view1; - memory_view m_view2; + memory_view m_view[3]; u32 m_region_offset; u32 m_sram_address; std::vector m_sram; diff --git a/src/devices/bus/msx/slot/fsa1fm.cpp b/src/devices/bus/msx/slot/fsa1fm.cpp index de8f79937b723..ec6dc89e62887 100644 --- a/src/devices/bus/msx/slot/fsa1fm.cpp +++ b/src/devices/bus/msx/slot/fsa1fm.cpp @@ -19,12 +19,7 @@ msx_slot_fsa1fm2_device::msx_slot_fsa1fm2_device(const machine_config &mconfig, , msx_internal_slot_interface(mconfig, *this) , m_rom_region(*this, finder_base::DUMMY_TAG) , m_bank(*this, "bank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view2(*this, "view2") - , m_view3(*this, "view3") - , m_view4(*this, "view4") - , m_view5(*this, "view5") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"}, {*this, "view3"}, {*this, "view4"}, {*this, "view5"} } , m_region_offset(0) { } @@ -60,25 +55,25 @@ void msx_slot_fsa1fm2_device::device_start() } } - page(0)->install_view(0x0000, 0x1fff, m_view0); - m_view0[0].install_read_bank(0x0000, 0x1fff, m_bank[0]); - m_view0[1].install_readwrite_bank(0x0000, 0x1fff, m_bank[0]); - - page(0)->install_view(0x2000, 0x3fff, m_view1); - m_view1[0].install_read_bank(0x2000, 0x3fff, m_bank[1]); - m_view1[1].install_readwrite_bank(0x2000, 0x3fff, m_bank[1]); - - page(1)->install_view(0x4000, 0x5fff, m_view2); - m_view2[0].install_read_bank(0x4000, 0x5fff, m_bank[2]); - m_view2[1].install_readwrite_bank(0x4000, 0x5fff, m_bank[2]); - - page(1)->install_view(0x6000, 0x7fff, m_view3); - m_view3[0].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[1].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[2].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[2].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_r))); - m_view3[3].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[3].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_r))); + page(0)->install_view(0x0000, 0x1fff, m_view[0]); + m_view[0][0].install_read_bank(0x0000, 0x1fff, m_bank[0]); + m_view[0][1].install_readwrite_bank(0x0000, 0x1fff, m_bank[0]); + + page(0)->install_view(0x2000, 0x3fff, m_view[1]); + m_view[1][0].install_read_bank(0x2000, 0x3fff, m_bank[1]); + m_view[1][1].install_readwrite_bank(0x2000, 0x3fff, m_bank[1]); + + page(1)->install_view(0x4000, 0x5fff, m_view[2]); + m_view[2][0].install_read_bank(0x4000, 0x5fff, m_bank[2]); + m_view[2][1].install_readwrite_bank(0x4000, 0x5fff, m_bank[2]); + + page(1)->install_view(0x6000, 0x7fff, m_view[3]); + m_view[3][0].install_read_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][1].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][2].install_read_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][2].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_r))); + m_view[3][3].install_readwrite_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][3].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_r))); page(1)->install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_w<2>))); page(1)->install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_w<0>))); page(1)->install_write_handler(0x6800, 0x6800, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_w<3>))); @@ -87,27 +82,22 @@ void msx_slot_fsa1fm2_device::device_start() page(1)->install_write_handler(0x7800, 0x7800, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::bank_w<5>))); page(1)->install_write_handler(0x7ff9, 0x7ff9, emu::rw_delegate(*this, FUNC(msx_slot_fsa1fm2_device::control_w))); - page(2)->install_view(0x8000, 0x9fff, m_view4); - m_view4[0].install_read_bank(0x8000, 0x9fff, m_bank[4]); - m_view4[1].install_readwrite_bank(0x8000, 0x9fff, m_bank[4]); + page(2)->install_view(0x8000, 0x9fff, m_view[4]); + m_view[4][0].install_read_bank(0x8000, 0x9fff, m_bank[4]); + m_view[4][1].install_readwrite_bank(0x8000, 0x9fff, m_bank[4]); - page(2)->install_view(0xa000, 0xbfff, m_view5); - m_view5[0].install_read_bank(0xa000, 0xbfff, m_bank[5]); - m_view5[1].install_readwrite_bank(0xa000, 0xbfff, m_bank[5]); + page(2)->install_view(0xa000, 0xbfff, m_view[5]); + m_view[5][0].install_read_bank(0xa000, 0xbfff, m_bank[5]); + m_view[5][1].install_readwrite_bank(0xa000, 0xbfff, m_bank[5]); } void msx_slot_fsa1fm2_device::device_reset() { - m_view0.select(0); - m_view1.select(0); - m_view2.select(0); - m_view3.select(0); - m_view4.select(0); - m_view5.select(0); m_control = 0; for (int i = 0; i < 6 ; i++) { + m_view[i].select(0); m_selected_bank[i] = 0xa8; m_bank[i]->set_entry(0x28); } @@ -117,18 +107,10 @@ template void msx_slot_fsa1fm2_device::set_view() { bool ram_active = (m_selected_bank[Bank] & 0xf4) == 0x84; - if (Bank == 0) - m_view0.select(ram_active ? 1 : 0); - if (Bank == 1) - m_view1.select(ram_active ? 1 : 0); - if (Bank == 2) - m_view2.select(ram_active ? 1 : 0); if (Bank == 3) - m_view3.select((ram_active ? 1 : 0) | (BIT(m_control, 2) ? 2 : 0)); - if (Bank == 4) - m_view4.select(ram_active ? 1 : 0); - if (Bank == 5) - m_view5.select(ram_active ? 1 : 0); + m_view[3].select((ram_active ? 1 : 0) | (BIT(m_control, 2) ? 2 : 0)); + else if (Bank != 2) + m_view[Bank].select(ram_active ? 1 : 0); } template @@ -169,7 +151,7 @@ msx_slot_fsa1fm_device::msx_slot_fsa1fm_device(const machine_config &mconfig, co static INPUT_PORTS_START(fsa1fm) PORT_START("SWITCH") - PORT_CONFNAME(0x04, 0x00, "Firmware is") + PORT_CONFNAME(0x04, 0x00, "Firmware") PORT_CONFSETTING(0x04, "disabled") PORT_CONFSETTING(0x00, "enabled") INPUT_PORTS_END diff --git a/src/devices/bus/msx/slot/fsa1fm.h b/src/devices/bus/msx/slot/fsa1fm.h index 51028e18311e1..660baa43e9903 100644 --- a/src/devices/bus/msx/slot/fsa1fm.h +++ b/src/devices/bus/msx/slot/fsa1fm.h @@ -37,12 +37,7 @@ class msx_slot_fsa1fm2_device : public device_t, public msx_internal_slot_interf required_memory_region m_rom_region; memory_bank_array_creator<6> m_bank; - memory_view m_view0; - memory_view m_view1; - memory_view m_view2; - memory_view m_view3; - memory_view m_view4; - memory_view m_view5; + memory_view m_view[6]; uint32_t m_region_offset; uint8_t m_selected_bank[6]; bool m_ram_active[6]; diff --git a/src/devices/bus/msx/slot/msx_write.cpp b/src/devices/bus/msx/slot/msx_write.cpp index 2241252a219cc..dca08d30f10d1 100644 --- a/src/devices/bus/msx/slot/msx_write.cpp +++ b/src/devices/bus/msx/slot/msx_write.cpp @@ -19,8 +19,7 @@ msx_slot_msx_write_device::msx_slot_msx_write_device(const machine_config &mconf , m_rom_region(*this, finder_base::DUMMY_TAG) , m_switch_port(*this, "SWITCH") , m_rombank(*this, "rombank%u", 0U) - , m_view1(*this, "view1") - , m_view2(*this, "view2") + , m_view{ {*this, "view1"}, {*this, "view2"} } , m_region_offset(0) , m_enabled(true) { @@ -49,26 +48,26 @@ void msx_slot_msx_write_device::device_start() m_rombank[0]->configure_entries(0, 0x20, m_rom_region->base() + m_region_offset, 0x4000); m_rombank[1]->configure_entries(0, 0x20, m_rom_region->base() + m_region_offset, 0x4000); - page(1)->install_view(0x4000, 0x7fff, m_view1); - m_view1[0].install_read_bank(0x4000, 0x7fff, m_rombank[0]); - m_view1[0].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_slot_msx_write_device::bank_w<0>))); - m_view1[0].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_slot_msx_write_device::bank_w<1>))); - m_view1[1]; + page(1)->install_view(0x4000, 0x7fff, m_view[0]); + m_view[0][0].install_read_bank(0x4000, 0x7fff, m_rombank[0]); + m_view[0][0].install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_slot_msx_write_device::bank_w<0>))); + m_view[0][0].install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_slot_msx_write_device::bank_w<1>))); + m_view[0][1]; - page(2)->install_view(0x8000, 0xbfff, m_view2); - m_view2[0].install_read_bank(0x8000, 0xbfff, m_rombank[1]); - m_view2[1]; + page(2)->install_view(0x8000, 0xbfff, m_view[1]); + m_view[1][0].install_read_bank(0x8000, 0xbfff, m_rombank[1]); + m_view[1][1]; } void msx_slot_msx_write_device::device_reset() { m_enabled = BIT(m_switch_port->read(), 0); - m_rombank[0]->set_entry(0); - m_rombank[1]->set_entry(1); - - m_view1.select(m_enabled ? 0 : 1); - m_view2.select(m_enabled ? 0 : 1); + for (int i = 0; i < 2; i++) + { + m_rombank[i]->set_entry(i); + m_view[i].select(m_enabled ? 0 : 1); + } } template diff --git a/src/devices/bus/msx/slot/msx_write.h b/src/devices/bus/msx/slot/msx_write.h index 70d8203df0608..64c9d9f97e757 100644 --- a/src/devices/bus/msx/slot/msx_write.h +++ b/src/devices/bus/msx/slot/msx_write.h @@ -31,8 +31,7 @@ class msx_slot_msx_write_device : public device_t, public msx_internal_slot_inte required_memory_region m_rom_region; required_ioport m_switch_port; memory_bank_array_creator<2> m_rombank; - memory_view m_view1; - memory_view m_view2; + memory_view m_view[2]; u32 m_region_offset; bool m_enabled; }; diff --git a/src/devices/bus/msx/slot/panasonic08.cpp b/src/devices/bus/msx/slot/panasonic08.cpp index 2a96bd24c684a..5de4c1d191315 100644 --- a/src/devices/bus/msx/slot/panasonic08.cpp +++ b/src/devices/bus/msx/slot/panasonic08.cpp @@ -22,11 +22,7 @@ msx_slot_panasonic08_device::msx_slot_panasonic08_device(const machine_config &m , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) , m_bank(*this, "bank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") - , m_view3(*this, "view3") - , m_view4(*this, "view4") - , m_view5(*this, "view5") + , m_view{ {*this, "view0"}, {*this, "view1"}, {*this, "view2"}, {*this, "view3"}, {*this, "view4"}, {*this, "view5"} } , m_region_offset(0) , m_control(0) { @@ -61,21 +57,21 @@ void msx_slot_panasonic08_device::device_start() m_bank[i]->configure_entry(0x83, m_sram.data() + 0x2000); } - page(0)->install_view(0x0000, 0x1fff, m_view0); - m_view0[0].install_read_bank(0x0000, 0x1fff, m_bank[0]); - m_view0[1].install_readwrite_bank(0x0000, 0x1fff, m_bank[0]); + page(0)->install_view(0x0000, 0x1fff, m_view[0]); + m_view[0][0].install_read_bank(0x0000, 0x1fff, m_bank[0]); + m_view[0][1].install_readwrite_bank(0x0000, 0x1fff, m_bank[0]); - page(0)->install_view(0x2000, 0x3fff, m_view1); - m_view1[0].install_read_bank(0x2000, 0x3fff, m_bank[1]); - m_view1[1].install_readwrite_bank(0x2000, 0x3fff, m_bank[1]); + page(0)->install_view(0x2000, 0x3fff, m_view[1]); + m_view[1][0].install_read_bank(0x2000, 0x3fff, m_bank[1]); + m_view[1][1].install_readwrite_bank(0x2000, 0x3fff, m_bank[1]); // no sram writing in 4000-7fff? page(1)->install_read_bank(0x4000, 0x5fff, m_bank[2]); - page(1)->install_view(0x6000, 0x7fff, m_view3); - m_view3[0].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[1].install_read_bank(0x6000, 0x7fff, m_bank[3]); - m_view3[1].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_r))); + page(1)->install_view(0x6000, 0x7fff, m_view[3]); + m_view[3][0].install_read_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][1].install_read_bank(0x6000, 0x7fff, m_bank[3]); + m_view[3][1].install_read_handler(0x7ff0, 0x7ff7, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_r))); page(1)->install_write_handler(0x6000, 0x6000, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_w<0>))); page(1)->install_write_handler(0x6400, 0x6400, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_w<1>))); page(1)->install_write_handler(0x6800, 0x6800, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_w<2>))); @@ -84,13 +80,13 @@ void msx_slot_panasonic08_device::device_start() page(1)->install_write_handler(0x7800, 0x7800, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::bank_w<5>))); page(1)->install_write_handler(0x7ff9, 0x7ff9, emu::rw_delegate(*this, FUNC(msx_slot_panasonic08_device::control_w))); - page(2)->install_view(0x8000, 0x9fff, m_view4); - m_view4[0].install_read_bank(0x8000, 0x9fff, m_bank[4]); - m_view4[1].install_readwrite_bank(0x8000, 0x9fff, m_bank[4]); + page(2)->install_view(0x8000, 0x9fff, m_view[4]); + m_view[4][0].install_read_bank(0x8000, 0x9fff, m_bank[4]); + m_view[4][1].install_readwrite_bank(0x8000, 0x9fff, m_bank[4]); - page(2)->install_view(0xa000, 0xbfff, m_view5); - m_view5[0].install_read_bank(0xa000, 0xbfff, m_bank[5]); - m_view5[1].install_readwrite_bank(0xa000, 0xbfff, m_bank[5]); + page(2)->install_view(0xa000, 0xbfff, m_view[5]); + m_view[5][0].install_read_bank(0xa000, 0xbfff, m_bank[5]); + m_view[5][1].install_readwrite_bank(0xa000, 0xbfff, m_bank[5]); } void msx_slot_panasonic08_device::device_reset() @@ -100,28 +96,19 @@ void msx_slot_panasonic08_device::device_reset() { m_selected_bank[i] = 0; m_bank[i]->set_entry(0); + if (i != 2) + m_view[i].select(0); } - m_view0.select(0); - m_view1.select(0); - m_view3.select(0); - m_view4.select(0); - m_view5.select(0); } template void msx_slot_panasonic08_device::set_view() { bool ram_active = (m_selected_bank[Bank] >= 0x80 && m_selected_bank[Bank] < 0x84); - if (Bank == 0) - m_view0.select(ram_active ? 1 : 0); - if (Bank == 1) - m_view1.select(ram_active ? 1 : 0); if (Bank == 3) - m_view3.select(BIT(m_control, 2) ? 1 : 0); - if (Bank == 4) - m_view4.select(ram_active ? 1 : 0); - if (Bank == 5) - m_view5.select(ram_active ? 1 : 0); + m_view[3].select(BIT(m_control, 2) ? 1 : 0); + else if (Bank != 2) + m_view[Bank].select(ram_active ? 1 : 0); } template diff --git a/src/devices/bus/msx/slot/panasonic08.h b/src/devices/bus/msx/slot/panasonic08.h index 4357b4e8ad0a6..6fd7ace83f4c9 100644 --- a/src/devices/bus/msx/slot/panasonic08.h +++ b/src/devices/bus/msx/slot/panasonic08.h @@ -37,11 +37,7 @@ class msx_slot_panasonic08_device : public device_t, public msx_internal_slot_in required_device m_nvram; required_memory_region m_rom_region; memory_bank_array_creator<6> m_bank; - memory_view m_view0; - memory_view m_view1; - memory_view m_view3; - memory_view m_view4; - memory_view m_view5; + memory_view m_view[6]; u32 m_region_offset; u8 m_selected_bank[6]; u8 m_control; diff --git a/src/devices/bus/msx/slot/sony08.cpp b/src/devices/bus/msx/slot/sony08.cpp index e08efccf9cb43..bf13f091ee1c0 100644 --- a/src/devices/bus/msx/slot/sony08.cpp +++ b/src/devices/bus/msx/slot/sony08.cpp @@ -19,8 +19,7 @@ msx_slot_sony08_device::msx_slot_sony08_device(const machine_config &mconfig, co , m_nvram(*this, "nvram") , m_rom_region(*this, finder_base::DUMMY_TAG) , m_rombank(*this, "rombank%u", 0U) - , m_view0(*this, "view0") - , m_view1(*this, "view1") + , m_view{ {*this, "view0"}, {*this, "view1"} } , m_region_offset(0) { } @@ -47,17 +46,17 @@ void msx_slot_sony08_device::device_start() m_rombank[4]->configure_entries(0, 0x100, m_rom_region->base() + m_region_offset + 0x80000, 0x800); m_rombank[5]->configure_entries(0, 0x100, m_rom_region->base() + m_region_offset + 0x80000, 0x800); - page(0)->install_view(0x0000, 0x3fff, m_view0); - m_view0[0]; - m_view0[1].install_ram(0x0000, 0x3fff, m_sram.data()); + page(0)->install_view(0x0000, 0x3fff, m_view[0]); + m_view[0][0]; + m_view[0][1].install_ram(0x0000, 0x3fff, m_sram.data()); page(1)->install_read_bank(0x4000, 0x5fff, m_rombank[0]); page(1)->install_write_handler(0x4fff, 0x4fff, emu::rw_delegate(*this, FUNC(msx_slot_sony08_device::bank_w<0>))); - page(1)->install_view(0x6000, 0x7fff, m_view1); - m_view1[0].install_read_bank(0x6000, 0x7fff, m_rombank[1]); - m_view1[1].install_read_bank(0x6000, 0x6fff, m_rombank[1]); - m_view1[1].install_read_bank(0x7000, 0x77ff, m_rombank[4]); - m_view1[1].install_read_bank(0x7800, 0x7fff, m_rombank[5]); + page(1)->install_view(0x6000, 0x7fff, m_view[1]); + m_view[1][0].install_read_bank(0x6000, 0x7fff, m_rombank[1]); + m_view[1][1].install_read_bank(0x6000, 0x6fff, m_rombank[1]); + m_view[1][1].install_read_bank(0x7000, 0x77ff, m_rombank[4]); + m_view[1][1].install_read_bank(0x7800, 0x7fff, m_rombank[5]); page(1)->install_write_handler(0x6fff, 0x6fff, emu::rw_delegate(*this, FUNC(msx_slot_sony08_device::bank_w<1>))); page(1)->install_write_handler(0x77ff, 0x77ff, emu::rw_delegate(*this, FUNC(msx_slot_sony08_device::bank_w<4>))); page(1)->install_write_handler(0x7fff, 0x7fff, emu::rw_delegate(*this, FUNC(msx_slot_sony08_device::bank_w<5>))); @@ -69,8 +68,8 @@ void msx_slot_sony08_device::device_start() void msx_slot_sony08_device::device_reset() { - m_view0.select(0); - m_view1.select(0); + for (int i = 0; i < 2; i++) + m_view[i].select(0); for (int i = 0; i < 6; i++) m_rombank[i]->set_entry(0); } @@ -83,8 +82,6 @@ void msx_slot_sony08_device::bank_w(u8 data) else m_rombank[Bank]->set_entry(data & 0x7f); - if (Bank == 0) - m_view0.select(BIT(data, 7) ? 1 : 0); - if (Bank == 1) - m_view1.select(BIT(data, 7) ? 1 : 0); + if (Bank < 2) + m_view[Bank].select(BIT(data, 7) ? 1 : 0); } diff --git a/src/devices/bus/msx/slot/sony08.h b/src/devices/bus/msx/slot/sony08.h index 22538a74a188a..2fa9d9e89ca4e 100644 --- a/src/devices/bus/msx/slot/sony08.h +++ b/src/devices/bus/msx/slot/sony08.h @@ -34,8 +34,7 @@ class msx_slot_sony08_device : public device_t, public msx_internal_slot_interfa required_device m_nvram; required_memory_region m_rom_region; memory_bank_array_creator<6> m_rombank; - memory_view m_view0; - memory_view m_view1; + memory_view m_view[2]; u32 m_region_offset; std::vector m_sram; }; From 174e7b89d61cf4dd26927418ceaac3b2cea55870 Mon Sep 17 00:00:00 2001 From: cam900 Date: Mon, 22 Apr 2024 03:06:14 +0900 Subject: [PATCH 10/46] cpu/tms34010/tms34010.cpp: Suppress side effects for debugger reads. (#12287) --- src/devices/cpu/tms34010/tms34010.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/devices/cpu/tms34010/tms34010.cpp b/src/devices/cpu/tms34010/tms34010.cpp index 5f83443da68fa..7024bff1fb079 100644 --- a/src/devices/cpu/tms34010/tms34010.cpp +++ b/src/devices/cpu/tms34010/tms34010.cpp @@ -1547,7 +1547,8 @@ u16 tms34010_device::io_register_r(offs_t offset) { int result, total; - LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); + if (!machine().side_effects_disabled()) + LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg_name[offset]); switch (offset) { @@ -1588,7 +1589,8 @@ u16 tms34020_device::io_register_r(offs_t offset) { int result, total; - LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg020_name[offset]); + if (!machine().side_effects_disabled()) + LOGCONTROLREGS("%s: read %s\n", machine().describe_context(), ioreg020_name[offset]); switch (offset) { @@ -1718,13 +1720,16 @@ u16 tms340x0_device::host_r(offs_t offset) addr = (IOREG(REG_HSTADRH) << 16) | IOREG(REG_HSTADRL); result = TMS34010_RDMEM_WORD(addr & 0xfffffff0); - /* optional postincrement (it says preincrement, but data is preloaded, so it - is effectively a postincrement */ - if (IOREG(REG_HSTCTLH) & 0x1000) + if (!machine().side_effects_disabled()) { - addr += 0x10; - IOREG(REG_HSTADRH) = addr >> 16; - IOREG(REG_HSTADRL) = (uint16_t)addr; + /* optional postincrement (it says preincrement, but data is preloaded, so it + is effectively a postincrement */ + if (IOREG(REG_HSTCTLH) & 0x1000) + { + addr += 0x10; + IOREG(REG_HSTADRH) = addr >> 16; + IOREG(REG_HSTADRL) = (uint16_t)addr; + } } break; @@ -1735,7 +1740,8 @@ u16 tms340x0_device::host_r(offs_t offset) /* error case */ default: - logerror("tms34010_host_control_r called on invalid register %d\n", reg); + if (!machine().side_effects_disabled()) + logerror("tms34010_host_control_r called on invalid register %d\n", reg); break; } From afc8de349e54e69bd6a4ae7c0cd6566d6cb92d37 Mon Sep 17 00:00:00 2001 From: Devin Acker Date: Sun, 21 Apr 2024 14:08:08 -0400 Subject: [PATCH 11/46] casio/rz1.cpp: Use separate speaker devices for individual line outputs. (#12283) --- src/mame/casio/rz1.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/mame/casio/rz1.cpp b/src/mame/casio/rz1.cpp index cc293d48b6051..cf2173e163a4b 100644 --- a/src/mame/casio/rz1.cpp +++ b/src/mame/casio/rz1.cpp @@ -59,6 +59,8 @@ class rz1_state : public driver_device m_maincpu(*this, "maincpu"), m_hd44780(*this, "hd44780"), m_pg(*this, "pg%u", 0U), + m_toms(*this, "tom%u", 1U), + m_bd(*this, "bd"), m_cassette(*this, "cassette"), m_linein(*this, "linein"), m_keys(*this, "kc%u", 0U), @@ -82,6 +84,8 @@ class rz1_state : public driver_device required_device m_maincpu; required_device m_hd44780; required_device_array m_pg; + required_device_array m_toms; + required_device m_bd; required_device m_cassette; required_device m_linein; required_ioport_array<8> m_keys; @@ -342,6 +346,11 @@ void rz1_state::port_b_w(uint8_t data) logerror("port_b_w: %02x\n", data); m_port_b = data; + + m_toms[0]->set_input_gain(0, BIT(data, 0) ? 1.0 : 0.0); + m_toms[1]->set_input_gain(0, BIT(data, 0) ? 0.0 : 1.0); + m_toms[2]->set_input_gain(0, BIT(data, 1) ? 1.0 : 0.0); + m_bd->set_input_gain(0, BIT(data, 1) ? 0.0 : 1.0); } uint8_t rz1_state::port_c_r() @@ -437,13 +446,37 @@ void rz1_state::rz1(machine_config &config) config.set_default_layout(layout_rz1); // audio hardware + + // individual drum outputs + SPEAKER(config, "tom1").front_center(); + SPEAKER(config, "tom2").front_center(); + SPEAKER(config, "tom3").front_center(); + SPEAKER(config, "bd").front_center(); + SPEAKER(config, "rim_and_sd").front_center(); + SPEAKER(config, "hihat").front_center(); + SPEAKER(config, "claps_and_ride").front_center(); + SPEAKER(config, "cowbell_and_crash").front_center(); + SPEAKER(config, "sample_1_and_2").front_center(); + SPEAKER(config, "sample_3_and_4").front_center(); + // for tape / line in SPEAKER(config, "speaker").front_center(); + UPD934G(config, m_pg[0], 1333000); m_pg[0]->set_addrmap(0, &rz1_state::pg0_map); - m_pg[0]->add_route(ALL_OUTPUTS, "speaker", 1.0); + m_pg[0]->add_route(0, "claps_and_ride", 1.0); + m_pg[0]->add_route(1, "cowbell_and_crash", 1.0); + m_pg[0]->add_route(2, "sample_1_and_2", 1.0); + m_pg[0]->add_route(3, "sample_3_and_4", 1.0); + UPD934G(config, m_pg[1], 1280000); m_pg[1]->set_addrmap(0, &rz1_state::pg1_map); - m_pg[1]->add_route(ALL_OUTPUTS, "speaker", 1.0); + // tom1/tom2 and tom3/bd are multiplexed together (see port_b_w) + m_pg[1]->add_route(0, "tom1", 1.0); + m_pg[1]->add_route(0, "tom2", 1.0); + m_pg[1]->add_route(1, "tom3", 1.0); + m_pg[1]->add_route(1, "bd", 1.0); + m_pg[1]->add_route(2, "rim_and_sd", 1.0); + m_pg[1]->add_route(3, "hihat", 1.0); // midi midi_port_device &mdin(MIDI_PORT(config, "mdin", midiin_slot, "midiin")); From 24154bc1f00790f344120b3a85175d6f616c5ad0 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Mon, 22 Apr 2024 04:19:47 +1000 Subject: [PATCH 12/46] Fixed a few more class memory access warnings, and a little cleanup. --- src/devices/bus/msx/slot/fsa1fm.cpp | 6 +- src/devices/bus/vtech/memexp/floppy.cpp | 11 +-- src/devices/sound/spu.cpp | 92 ++++++++++++------------- src/mame/midway/midtunit_v.cpp | 10 ++- src/mame/sega/segaic16.h | 2 +- src/mame/seibu/seibucop.cpp | 3 - src/mame/seibu/seibucop.h | 30 ++------ src/mame/sgi/hpc3.cpp | 4 +- src/mame/shared/xbox_usb.cpp | 2 - 9 files changed, 69 insertions(+), 91 deletions(-) diff --git a/src/devices/bus/msx/slot/fsa1fm.cpp b/src/devices/bus/msx/slot/fsa1fm.cpp index ec6dc89e62887..93e55d5b78d6f 100644 --- a/src/devices/bus/msx/slot/fsa1fm.cpp +++ b/src/devices/bus/msx/slot/fsa1fm.cpp @@ -151,9 +151,9 @@ msx_slot_fsa1fm_device::msx_slot_fsa1fm_device(const machine_config &mconfig, co static INPUT_PORTS_START(fsa1fm) PORT_START("SWITCH") - PORT_CONFNAME(0x04, 0x00, "Firmware") - PORT_CONFSETTING(0x04, "disabled") - PORT_CONFSETTING(0x00, "enabled") + PORT_CONFNAME(0x04, 0x00, "Enable Firmware") + PORT_CONFSETTING(0x04, DEF_STR(No)) + PORT_CONFSETTING(0x00, DEF_STR(Yes)) INPUT_PORTS_END ioport_constructor msx_slot_fsa1fm_device::device_input_ports() const diff --git a/src/devices/bus/vtech/memexp/floppy.cpp b/src/devices/bus/vtech/memexp/floppy.cpp index fb36f90e5a35e..7fdfd30a65ab0 100644 --- a/src/devices/bus/vtech/memexp/floppy.cpp +++ b/src/devices/bus/vtech/memexp/floppy.cpp @@ -11,8 +11,11 @@ #include "emu.h" #include "floppy.h" -#include "formats/vt_dsk.h" + #include "formats/fs_vtech.h" +#include "formats/vt_dsk.h" + +#include //************************************************************************** @@ -143,7 +146,7 @@ void vtech_floppy_controller_device::device_reset() m_last_latching_inverter_update_time = machine().time(); m_write_start_time = attotime::never; m_write_position = 0; - memset(m_write_buffer, 0, sizeof(m_write_buffer)); + std::fill(std::begin(m_write_buffer), std::end(m_write_buffer), attotime::zero); } @@ -309,13 +312,13 @@ void vtech_floppy_controller_device::flush_writes(bool keep_margin) m_write_position -= kept_count; if(m_write_position && m_write_buffer[0] == m_write_start_time) { if(m_write_position) - memmove(m_write_buffer, m_write_buffer+1, sizeof(m_write_buffer[0])*(m_write_position-1)); + std::copy_n(m_write_buffer + 1, m_write_position - 1, m_write_buffer); m_write_position--; } m_selected_floppy->write_flux(m_write_start_time, limit, m_write_position, m_write_buffer); m_write_start_time = limit; if(kept_count != 0) - memmove(m_write_buffer, m_write_buffer+kept_pos, kept_count*sizeof(m_write_buffer[0])); + std::copy_n(m_write_buffer + kept_pos, kept_count, m_write_buffer); m_write_position = kept_count; } diff --git a/src/devices/sound/spu.cpp b/src/devices/sound/spu.cpp index 9e3a95b0357bf..848e432cb025b 100644 --- a/src/devices/sound/spu.cpp +++ b/src/devices/sound/spu.cpp @@ -11,9 +11,14 @@ #include "emu.h" #include "spu.h" #include "spureverb.h" + #include "cpu/psx/psx.h" + #include "corestr.h" +#include + + // // // @@ -360,24 +365,19 @@ struct spu_device::cache_pointer signed short *ptr; sample_cache *cache; - cache_pointer() - : ptr(nullptr), - cache(nullptr) + cache_pointer() : ptr(nullptr), cache(nullptr) { } - cache_pointer(const cache_pointer &other) - : ptr(nullptr), - cache(nullptr) + cache_pointer(const cache_pointer &other) : cache_pointer() { - operator =(other); + operator=(other); } - cache_pointer(signed short *_ptr, sample_cache *_cache) - : ptr(_ptr), - cache(_cache) + cache_pointer(signed short *_ptr, sample_cache *_cache) : ptr(_ptr), cache(_cache) { - if (cache) cache->add_ref(); + if (cache) + cache->add_ref(); } ~cache_pointer() @@ -386,23 +386,20 @@ struct spu_device::cache_pointer } void reset(); - cache_pointer &operator =(const cache_pointer &other); + cache_pointer &operator=(const cache_pointer &other); bool update(spu_device *spu); unsigned int get_address() const { if (cache) - { return cache->get_sample_address(ptr); - } else - { + else return -1; - } } operator bool() const { return cache!=nullptr; } - bool is_valid() const { return ((cache) && (cache->is_valid_pointer(ptr))); } + bool is_valid() const { return cache && cache->is_valid_pointer(ptr); } }; // @@ -411,35 +408,34 @@ struct spu_device::cache_pointer struct spu_device::voiceinfo { - cache_pointer play,loop; - sample_loop_cache *loop_cache; - unsigned int dptr, - lcptr; - - int env_state; - float env_ar, - env_dr, - env_sr, - env_rr, - env_sl, - env_level, - env_delta, + cache_pointer play, loop; + sample_loop_cache *loop_cache = nullptr; + unsigned int dptr = 0, lcptr = 0; + + int env_state = 0; + float env_ar = 0.0F, + env_dr = 0.0F, + env_sr = 0.0F, + env_rr = 0.0F, + env_sl = 0.0F, + env_level = 0.0F, + env_delta = 0.0F, //>> - sweep_vol[2], - sweep_rate[2]; - int vol[2]; + sweep_vol[2] = { 0.0F, 0.0F }, + sweep_rate[2] = { 0.0F, 0.0F }; + int vol[2] = { 0, 0 }; //<< - unsigned int pitch, - samplestoend, - samplestoirq, - envsamples; - bool hitirq, - inloopcache, - forceloop, - _pad; - int64_t keyontime; + unsigned int pitch = 0, + samplestoend = 0, + samplestoirq = 0, + envsamples = 0; + bool hitirq = false, + inloopcache = false, + forceloop = false, + _pad = false; + int64_t keyontime = 0; }; // @@ -970,11 +966,11 @@ void spu_device::device_start() generate_linear_release_rate_table(); generate_exp_release_rate_table(); - voice=new voiceinfo [24]; - spu_ram=std::make_unique(spu_ram_size); + voice = new voiceinfo [24]; + spu_ram = std::make_unique(spu_ram_size); - xa_buffer=new spu_stream_buffer(xa_sector_size,xa_buffer_sectors); - cdda_buffer=new spu_stream_buffer(cdda_sector_size,cdda_buffer_sectors); + xa_buffer = new spu_stream_buffer(xa_sector_size, xa_buffer_sectors); + cdda_buffer = new spu_stream_buffer(cdda_sector_size, cdda_buffer_sectors); init_stream(); @@ -1037,7 +1033,7 @@ void spu_device::device_reset() memset(spu_ram.get(),0,spu_ram_size); memset(reg,0,0x200); - memset(voice,0,sizeof(voiceinfo)*24); + std::fill_n(voice, 24, voiceinfo()); spureg.status|=(1<<7)|(1<<10); @@ -1087,7 +1083,7 @@ void spu_device::device_stop() cache.reset(); delete xa_buffer; delete cdda_buffer; - delete [] voice; + delete[] voice; } // // diff --git a/src/mame/midway/midtunit_v.cpp b/src/mame/midway/midtunit_v.cpp index 0983d5bc35471..77cd2a0334832 100644 --- a/src/mame/midway/midtunit_v.cpp +++ b/src/mame/midway/midtunit_v.cpp @@ -505,18 +505,17 @@ void midtunit_video_device::dma_draw() // only process if not clipped if (sx >= m_dma_state.leftclip && sx <= m_dma_state.rightclip) { - // special case similar handling of zero/non-zero if (Zero == NonZero) { + // special case similar handling of zero/non-zero if (Zero == PIXEL_COLOR) d[sx] = color; else if (Zero == PIXEL_COPY) d[sx] = (EXTRACTGEN(mask)) | pal; } - - // otherwise, read the pixel and look else { + // otherwise, read the pixel and look int pixel = (EXTRACTGEN(mask)); // non-zero pixel case @@ -962,18 +961,17 @@ void midtunit_video_device::log_bitmap(int command, int bpp, bool Skip) // loop until we draw the entire width while (ix < width) { - // special case similar handling of zero/non-zero if (Zero == NonZero) { + // special case similar handling of zero/non-zero if (Zero == PIXEL_COLOR) *d = m_palette->palette()->entry_list_raw()[color]; else if (Zero == PIXEL_COPY) *d = m_palette->palette()->entry_list_raw()[(EXTRACTGEN(mask)) | pal]; } - - // otherwise, read the pixel and look else { + // otherwise, read the pixel and look int const pixel = (EXTRACTGEN(mask)); // non-zero pixel case diff --git a/src/mame/sega/segaic16.h b/src/mame/sega/segaic16.h index e11fa7c48a3bd..fc98c27099bd7 100644 --- a/src/mame/sega/segaic16.h +++ b/src/mame/sega/segaic16.h @@ -91,7 +91,7 @@ class segaic16_video_device : public device_t, uint8_t numpages = 0; // number of allocated pages uint8_t flip = 0; // screen flip? uint8_t rowscroll = 0, colscroll = 0; // are rowscroll/colscroll enabled (if external enables are used) - uint8_t bank[8]; // indexes of the tile banks + uint8_t bank[8] = {0,0,0,0,0,0,0,0}; // indexes of the tile banks uint16_t banksize = 0; // number of tiles per bank uint16_t latched_xscroll[4] = {0,0,0,0}; // latched X scroll values uint16_t latched_yscroll[4] = {0,0,0,0}; // latched Y scroll values diff --git a/src/mame/seibu/seibucop.cpp b/src/mame/seibu/seibucop.cpp index bf8788c2edc86..dd765708382ba 100644 --- a/src/mame/seibu/seibucop.cpp +++ b/src/mame/seibu/seibucop.cpp @@ -192,9 +192,6 @@ raiden2cop_device::raiden2cop_device(const machine_config &mconfig, const char * memset(cop_itoa_digits, 0, sizeof(uint8_t)*10); memset(cop_regs, 0, sizeof(uint32_t)*8); - - - memset(cop_collision_info, 0, sizeof(colinfo)*2); } diff --git a/src/mame/seibu/seibucop.h b/src/mame/seibu/seibucop.h index 0d6c1701559ad..b3f83ebde0715 100644 --- a/src/mame/seibu/seibucop.h +++ b/src/mame/seibu/seibucop.h @@ -110,29 +110,13 @@ class raiden2cop_device : public device_t struct colinfo { - colinfo() - { - pos[0] = pos[1] = pos[2] = 0; - dx[0] = dx[1] = dx[2] = 0; - size[0] = size[1] = size[2] = 0; - allow_swap = false; - flags_swap = 0; - spradr = 0; - min[0] = min[1] = min[2] = 0; - max[0] = max[1] = max[2] = 0; - - } - - - int16_t pos[3]; - int8_t dx[3]; - uint8_t size[3]; - bool allow_swap; - uint16_t flags_swap; - uint32_t spradr; - int16_t min[3], max[3]; - - + int16_t pos[3] = { 0, 0, 0 }; + int8_t dx[3] = { 0, 0, 0 }; + uint8_t size[3] = { 0, 0, 0 }; + bool allow_swap = false; + uint16_t flags_swap = 0; + uint32_t spradr = 0; + int16_t min[3] = { 0, 0, 0 }, max[3] = { 0, 0, 0 }; }; colinfo cop_collision_info[2]; diff --git a/src/mame/sgi/hpc3.cpp b/src/mame/sgi/hpc3.cpp index 84f46bba4c61e..878be694395be 100644 --- a/src/mame/sgi/hpc3.cpp +++ b/src/mame/sgi/hpc3.cpp @@ -9,6 +9,8 @@ #include "emu.h" #include "hpc3.h" +#include + #define LOG_UNKNOWN (1U << 1) #define LOG_PBUS_DMA (1U << 2) #define LOG_SCSI (1U << 3) @@ -155,7 +157,7 @@ void hpc3_device::device_reset() { m_cpu_aux_ctrl = 0; - memset(m_scsi_dma, 0, sizeof(scsi_dma_t) * 2); + std::fill(std::begin(m_scsi_dma), std::end(m_scsi_dma), scsi_dma_t()); for (uint32_t i = 0; i < 8; i++) { diff --git a/src/mame/shared/xbox_usb.cpp b/src/mame/shared/xbox_usb.cpp index d999d1ab7a32b..6f5ee284922d0 100644 --- a/src/mame/shared/xbox_usb.cpp +++ b/src/mame/shared/xbox_usb.cpp @@ -45,9 +45,7 @@ static const char *const usbregnames[] = { ohci_usb_controller::ohci_usb_controller() { - memset(&ohcist, 0, sizeof(ohcist)); m_maincpu = nullptr; - irq_callback = nullptr; } void ohci_usb_controller::start() From 184292b730f4236bd4840e780fdad97ee060ec84 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Mon, 22 Apr 2024 08:04:58 +1000 Subject: [PATCH 13/46] 3rdparty/asio: Updated to 1.30.2 --- 3rdparty/asio/COPYING | 2 +- 3rdparty/asio/Makefile.am | 3 + 3rdparty/asio/Makefile.in | 107 +- 3rdparty/asio/README | 4 +- 3rdparty/asio/aclocal.m4 | 357 +- 3rdparty/asio/asio.pc.in | 11 + 3rdparty/asio/compile | 17 +- 3rdparty/asio/config.guess | 1686 ++++---- 3rdparty/asio/config.sub | 2627 ++++++------ 3rdparty/asio/configure | 3774 ++++++++++------- 3rdparty/asio/configure.ac | 29 +- 3rdparty/asio/depcomp | 10 +- 3rdparty/asio/include/Makefile.am | 163 +- 3rdparty/asio/include/Makefile.in | 178 +- 3rdparty/asio/include/asio.hpp | 49 +- .../include/asio/any_completion_executor.hpp | 336 ++ .../include/asio/any_completion_handler.hpp | 822 ++++ .../asio/include/asio/any_io_executor.hpp | 163 +- 3rdparty/asio/include/asio/append.hpp | 65 + 3rdparty/asio/include/asio/as_tuple.hpp | 126 + .../include/asio/associated_allocator.hpp | 129 +- .../asio/associated_cancellation_slot.hpp | 96 +- .../asio/include/asio/associated_executor.hpp | 91 +- .../asio/associated_immediate_executor.hpp | 280 ++ 3rdparty/asio/include/asio/associator.hpp | 2 +- 3rdparty/asio/include/asio/async_result.hpp | 1037 ++--- 3rdparty/asio/include/asio/awaitable.hpp | 11 +- .../include/asio/basic_datagram_socket.hpp | 403 +- .../include/asio/basic_deadline_timer.hpp | 71 +- 3rdparty/asio/include/asio/basic_file.hpp | 824 ++++ .../asio/include/asio/basic_io_object.hpp | 12 +- .../include/asio/basic_random_access_file.hpp | 689 +++ .../asio/include/asio/basic_raw_socket.hpp | 410 +- .../asio/include/asio/basic_readable_pipe.hpp | 626 +++ .../include/asio/basic_seq_packet_socket.hpp | 185 +- .../asio/include/asio/basic_serial_port.hpp | 202 +- .../asio/include/asio/basic_signal_set.hpp | 134 +- 3rdparty/asio/include/asio/basic_socket.hpp | 137 +- .../include/asio/basic_socket_acceptor.hpp | 620 +-- .../include/asio/basic_socket_iostream.hpp | 88 +- .../include/asio/basic_socket_streambuf.hpp | 57 +- .../asio/include/asio/basic_stream_file.hpp | 744 ++++ .../asio/include/asio/basic_stream_socket.hpp | 301 +- .../asio/include/asio/basic_streambuf.hpp | 28 +- .../asio/include/asio/basic_streambuf_fwd.hpp | 6 +- .../include/asio/basic_waitable_timer.hpp | 85 +- .../asio/include/asio/basic_writable_pipe.hpp | 622 +++ 3rdparty/asio/include/asio/bind_allocator.hpp | 530 +++ .../include/asio/bind_cancellation_slot.hpp | 379 +- 3rdparty/asio/include/asio/bind_executor.hpp | 400 +- .../include/asio/bind_immediate_executor.hpp | 549 +++ 3rdparty/asio/include/asio/buffer.hpp | 843 ++-- .../asio/include/asio/buffer_registration.hpp | 318 ++ .../include/asio/buffered_read_stream.hpp | 78 +- .../include/asio/buffered_read_stream_fwd.hpp | 2 +- .../asio/include/asio/buffered_stream.hpp | 93 +- .../asio/include/asio/buffered_stream_fwd.hpp | 2 +- .../include/asio/buffered_write_stream.hpp | 78 +- .../asio/buffered_write_stream_fwd.hpp | 2 +- .../asio/include/asio/buffers_iterator.hpp | 8 +- .../asio/include/asio/cancellation_signal.hpp | 182 +- .../asio/include/asio/cancellation_state.hpp | 32 +- .../asio/include/asio/cancellation_type.hpp | 33 +- 3rdparty/asio/include/asio/co_spawn.hpp | 74 +- .../include/asio/completion_condition.hpp | 2 +- 3rdparty/asio/include/asio/compose.hpp | 253 +- 3rdparty/asio/include/asio/connect.hpp | 242 +- 3rdparty/asio/include/asio/connect_pipe.hpp | 83 + 3rdparty/asio/include/asio/consign.hpp | 75 + 3rdparty/asio/include/asio/coroutine.hpp | 3 +- 3rdparty/asio/include/asio/deadline_timer.hpp | 2 +- 3rdparty/asio/include/asio/defer.hpp | 198 +- 3rdparty/asio/include/asio/deferred.hpp | 715 ++++ 3rdparty/asio/include/asio/detached.hpp | 41 +- 3rdparty/asio/include/asio/detail/array.hpp | 12 +- .../asio/include/asio/detail/array_fwd.hpp | 6 +- 3rdparty/asio/include/asio/detail/assert.hpp | 2 +- .../asio/include/asio/detail/atomic_count.hpp | 19 +- .../detail/base_from_cancellation_state.hpp | 41 +- .../asio/detail/base_from_completion_cond.hpp | 4 +- .../asio/include/asio/detail/bind_handler.hpp | 664 +-- .../asio/detail/blocking_executor_op.hpp | 6 +- .../asio/detail/buffer_resize_guard.hpp | 2 +- .../asio/detail/buffer_sequence_adapter.hpp | 201 +- .../asio/detail/buffered_stream_storage.hpp | 2 +- .../include/asio/detail/bulk_executor_op.hpp | 88 - .../asio/include/asio/detail/call_stack.hpp | 2 +- 3rdparty/asio/include/asio/detail/chrono.hpp | 25 +- .../asio/detail/chrono_time_traits.hpp | 2 +- .../asio/detail/completion_handler.hpp | 8 +- .../include/asio/detail/composed_work.hpp | 252 ++ .../include/asio/detail/concurrency_hint.hpp | 2 +- .../detail/conditionally_enabled_event.hpp | 2 +- .../detail/conditionally_enabled_mutex.hpp | 2 +- 3rdparty/asio/include/asio/detail/config.hpp | 1266 ++---- .../include/asio/detail/consuming_buffers.hpp | 51 +- 3rdparty/asio/include/asio/detail/cstddef.hpp | 6 +- 3rdparty/asio/include/asio/detail/cstdint.hpp | 26 +- .../include/asio/detail/date_time_fwd.hpp | 2 +- .../asio/detail/deadline_timer_service.hpp | 8 +- .../include/asio/detail/dependent_type.hpp | 2 +- .../include/asio/detail/descriptor_ops.hpp | 44 +- .../asio/detail/descriptor_read_op.hpp | 46 +- .../asio/detail/descriptor_write_op.hpp | 45 +- .../include/asio/detail/dev_poll_reactor.hpp | 33 +- .../include/asio/detail/epoll_reactor.hpp | 27 +- 3rdparty/asio/include/asio/detail/event.hpp | 8 +- .../detail/eventfd_select_interrupter.hpp | 2 +- .../asio/include/asio/detail/exception.hpp | 29 + .../include/asio/detail/executor_function.hpp | 68 +- .../asio/include/asio/detail/executor_op.hpp | 12 +- .../include/asio/detail/fd_set_adapter.hpp | 2 +- .../asio/include/asio/detail/fenced_block.hpp | 46 +- .../asio/include/asio/detail/functional.hpp | 13 +- 3rdparty/asio/include/asio/detail/future.hpp | 19 +- .../asio/detail/gcc_arm_fenced_block.hpp | 91 - .../asio/detail/gcc_hppa_fenced_block.hpp | 68 - .../asio/detail/gcc_sync_fenced_block.hpp | 65 - .../asio/detail/gcc_x86_fenced_block.hpp | 99 - 3rdparty/asio/include/asio/detail/global.hpp | 8 +- .../asio/detail/handler_alloc_helpers.hpp | 147 +- .../asio/detail/handler_cont_helpers.hpp | 2 +- .../asio/detail/handler_invoke_helpers.hpp | 80 - .../include/asio/detail/handler_tracking.hpp | 6 +- .../asio/detail/handler_type_requirements.hpp | 24 +- .../asio/include/asio/detail/handler_work.hpp | 226 +- .../asio/include/asio/detail/hash_map.hpp | 2 +- .../detail/impl/buffer_sequence_adapter.ipp | 2 +- .../asio/detail/impl/descriptor_ops.ipp | 393 +- .../asio/detail/impl/dev_poll_reactor.hpp | 16 +- .../asio/detail/impl/dev_poll_reactor.ipp | 17 +- .../asio/detail/impl/epoll_reactor.hpp | 4 +- .../asio/detail/impl/epoll_reactor.ipp | 25 +- .../impl/eventfd_select_interrupter.ipp | 2 +- .../asio/detail/impl/handler_tracking.ipp | 14 +- .../impl/io_uring_descriptor_service.ipp | 205 + .../detail/impl/io_uring_file_service.ipp | 140 + .../asio/detail/impl/io_uring_service.hpp | 112 + .../asio/detail/impl/io_uring_service.ipp | 914 ++++ .../impl/io_uring_socket_service_base.ipp | 249 ++ .../asio/detail/impl/kqueue_reactor.hpp | 4 +- .../asio/detail/impl/kqueue_reactor.ipp | 21 +- .../include/asio/detail/impl/null_event.ipp | 2 +- .../detail/impl/pipe_select_interrupter.ipp | 2 +- .../include/asio/detail/impl/posix_event.ipp | 2 +- .../include/asio/detail/impl/posix_mutex.ipp | 2 +- ...vice.ipp => posix_serial_port_service.ipp} | 57 +- .../include/asio/detail/impl/posix_thread.ipp | 2 +- .../asio/detail/impl/posix_tss_ptr.ipp | 2 +- .../impl/reactive_descriptor_service.ipp | 27 +- .../impl/reactive_socket_service_base.ipp | 50 +- .../detail/impl/resolver_service_base.ipp | 6 +- .../include/asio/detail/impl/scheduler.ipp | 24 +- .../asio/detail/impl/select_reactor.hpp | 4 +- .../asio/detail/impl/select_reactor.ipp | 53 +- .../asio/detail/impl/service_registry.hpp | 5 +- .../asio/detail/impl/service_registry.ipp | 2 +- .../asio/detail/impl/signal_set_service.ipp | 170 +- .../include/asio/detail/impl/socket_ops.ipp | 323 +- .../detail/impl/socket_select_interrupter.ipp | 8 +- .../detail/impl/strand_executor_service.hpp | 112 +- .../detail/impl/strand_executor_service.ipp | 2 +- .../asio/detail/impl/strand_service.hpp | 5 +- .../asio/detail/impl/strand_service.ipp | 2 +- .../asio/detail/impl/thread_context.ipp | 2 +- .../include/asio/detail/impl/throw_error.ipp | 37 +- .../asio/detail/impl/timer_queue_ptime.ipp | 24 +- .../asio/detail/impl/timer_queue_set.ipp | 2 +- .../include/asio/detail/impl/win_event.ipp | 2 +- .../detail/impl/win_iocp_file_service.ipp | 280 ++ .../detail/impl/win_iocp_handle_service.ipp | 96 +- .../asio/detail/impl/win_iocp_io_context.hpp | 3 +- .../asio/detail/impl/win_iocp_io_context.ipp | 12 +- .../impl/win_iocp_serial_port_service.ipp | 10 +- .../impl/win_iocp_socket_service_base.ipp | 24 +- .../include/asio/detail/impl/win_mutex.ipp | 2 +- .../detail/impl/win_object_handle_service.ipp | 6 +- .../asio/detail/impl/win_static_mutex.ipp | 2 +- .../include/asio/detail/impl/win_thread.ipp | 2 +- .../include/asio/detail/impl/win_tss_ptr.ipp | 2 +- .../impl/winrt_ssocket_service_base.ipp | 10 +- .../detail/impl/winrt_timer_scheduler.hpp | 2 +- .../detail/impl/winrt_timer_scheduler.ipp | 2 +- .../include/asio/detail/impl/winsock_init.ipp | 2 +- .../include/asio/detail/initiate_defer.hpp | 207 + .../include/asio/detail/initiate_dispatch.hpp | 193 + .../include/asio/detail/initiate_post.hpp | 207 + .../asio/include/asio/detail/io_control.hpp | 2 +- .../include/asio/detail/io_object_impl.hpp | 27 +- .../detail/io_uring_descriptor_read_at_op.hpp | 195 + .../detail/io_uring_descriptor_read_op.hpp | 190 + .../detail/io_uring_descriptor_service.hpp | 687 +++ .../io_uring_descriptor_write_at_op.hpp | 189 + .../detail/io_uring_descriptor_write_op.hpp | 185 + .../asio/detail/io_uring_file_service.hpp | 261 ++ .../asio/detail/io_uring_null_buffers_op.hpp | 114 + .../asio/detail/io_uring_operation.hpp | 84 + .../include/asio/detail/io_uring_service.hpp | 319 ++ .../asio/detail/io_uring_socket_accept_op.hpp | 280 ++ .../detail/io_uring_socket_connect_op.hpp | 140 + .../asio/detail/io_uring_socket_recv_op.hpp | 205 + .../detail/io_uring_socket_recvfrom_op.hpp | 206 + .../detail/io_uring_socket_recvmsg_op.hpp | 192 + .../asio/detail/io_uring_socket_send_op.hpp | 191 + .../asio/detail/io_uring_socket_sendto_op.hpp | 194 + .../asio/detail/io_uring_socket_service.hpp | 629 +++ .../detail/io_uring_socket_service_base.hpp | 663 +++ .../include/asio/detail/io_uring_wait_op.hpp | 112 + .../asio/detail/is_buffer_sequence.hpp | 82 +- .../asio/include/asio/detail/is_executor.hpp | 2 +- .../include/asio/detail/keyword_tss_ptr.hpp | 2 +- .../include/asio/detail/kqueue_reactor.hpp | 27 +- 3rdparty/asio/include/asio/detail/limits.hpp | 7 +- .../asio/detail/local_free_on_block_exit.hpp | 2 +- .../asio/detail/macos_fenced_block.hpp | 62 - 3rdparty/asio/include/asio/detail/memory.hpp | 79 +- 3rdparty/asio/include/asio/detail/mutex.hpp | 8 +- .../include/asio/detail/non_const_lvalue.hpp | 19 +- .../asio/include/asio/detail/noncopyable.hpp | 2 +- .../asio/include/asio/detail/null_event.hpp | 2 +- .../include/asio/detail/null_fenced_block.hpp | 2 +- .../asio/include/asio/detail/null_global.hpp | 2 +- .../asio/include/asio/detail/null_mutex.hpp | 6 +- .../asio/include/asio/detail/null_reactor.hpp | 23 +- .../asio/detail/null_signal_blocker.hpp | 2 +- .../asio/detail/null_socket_service.hpp | 6 +- .../include/asio/detail/null_static_mutex.hpp | 2 +- .../asio/include/asio/detail/null_thread.hpp | 2 +- .../asio/include/asio/detail/null_tss_ptr.hpp | 2 +- .../asio/include/asio/detail/object_pool.hpp | 2 +- .../asio/detail/old_win_sdk_compat.hpp | 2 +- .../asio/include/asio/detail/op_queue.hpp | 2 +- .../asio/include/asio/detail/operation.hpp | 2 +- .../asio/detail/pipe_select_interrupter.hpp | 2 +- .../asio/include/asio/detail/pop_options.hpp | 10 +- .../asio/include/asio/detail/posix_event.hpp | 2 +- .../asio/detail/posix_fd_set_adapter.hpp | 2 +- .../asio/include/asio/detail/posix_global.hpp | 2 +- .../asio/include/asio/detail/posix_mutex.hpp | 2 +- ...vice.hpp => posix_serial_port_service.hpp} | 48 +- .../asio/detail/posix_signal_blocker.hpp | 2 +- .../asio/detail/posix_static_mutex.hpp | 2 +- .../asio/include/asio/detail/posix_thread.hpp | 2 +- .../include/asio/detail/posix_tss_ptr.hpp | 2 +- .../asio/include/asio/detail/push_options.hpp | 14 +- .../detail/reactive_descriptor_service.hpp | 121 +- .../asio/detail/reactive_null_buffers_op.hpp | 41 +- .../asio/detail/reactive_socket_accept_op.hpp | 105 +- .../detail/reactive_socket_connect_op.hpp | 47 +- .../asio/detail/reactive_socket_recv_op.hpp | 46 +- .../detail/reactive_socket_recvfrom_op.hpp | 47 +- .../detail/reactive_socket_recvmsg_op.hpp | 47 +- .../asio/detail/reactive_socket_send_op.hpp | 47 +- .../asio/detail/reactive_socket_sendto_op.hpp | 46 +- .../asio/detail/reactive_socket_service.hpp | 92 +- .../detail/reactive_socket_service_base.hpp | 178 +- .../include/asio/detail/reactive_wait_op.hpp | 41 +- 3rdparty/asio/include/asio/detail/reactor.hpp | 32 +- .../asio/include/asio/detail/reactor_fwd.hpp | 40 - .../asio/include/asio/detail/reactor_op.hpp | 2 +- .../include/asio/detail/reactor_op_queue.hpp | 2 +- .../asio/detail/recycling_allocator.hpp | 4 +- .../asio/include/asio/detail/regex_fwd.hpp | 17 +- .../asio/detail/resolve_endpoint_op.hpp | 8 +- .../asio/include/asio/detail/resolve_op.hpp | 2 +- .../include/asio/detail/resolve_query_op.hpp | 8 +- .../include/asio/detail/resolver_service.hpp | 8 +- .../asio/detail/resolver_service_base.hpp | 2 +- .../asio/include/asio/detail/scheduler.hpp | 20 +- .../asio/detail/scheduler_operation.hpp | 2 +- .../include/asio/detail/scheduler_task.hpp | 49 + .../asio/detail/scheduler_thread_info.hpp | 2 +- .../asio/include/asio/detail/scoped_lock.hpp | 2 +- .../asio/include/asio/detail/scoped_ptr.hpp | 2 +- .../asio/detail/select_interrupter.hpp | 2 +- .../include/asio/detail/select_reactor.hpp | 49 +- .../include/asio/detail/service_registry.hpp | 5 +- .../include/asio/detail/signal_blocker.hpp | 2 +- .../include/asio/detail/signal_handler.hpp | 6 +- .../asio/include/asio/detail/signal_init.hpp | 2 +- .../asio/include/asio/detail/signal_op.hpp | 6 +- .../asio/detail/signal_set_service.hpp | 71 +- .../include/asio/detail/socket_holder.hpp | 2 +- .../asio/include/asio/detail/socket_ops.hpp | 82 +- .../include/asio/detail/socket_option.hpp | 2 +- .../asio/detail/socket_select_interrupter.hpp | 2 +- .../asio/include/asio/detail/socket_types.hpp | 12 +- .../asio/detail/solaris_fenced_block.hpp | 62 - .../include/asio/detail/source_location.hpp | 2 +- .../asio/include/asio/detail/static_mutex.hpp | 8 +- .../asio/include/asio/detail/std_event.hpp | 7 +- .../include/asio/detail/std_fenced_block.hpp | 7 +- .../asio/include/asio/detail/std_global.hpp | 7 +- .../asio/include/asio/detail/std_mutex.hpp | 7 +- .../include/asio/detail/std_static_mutex.hpp | 7 +- .../asio/include/asio/detail/std_thread.hpp | 7 +- .../asio/detail/strand_executor_service.hpp | 26 +- .../include/asio/detail/strand_service.hpp | 2 +- .../asio/include/asio/detail/string_view.hpp | 2 +- 3rdparty/asio/include/asio/detail/thread.hpp | 8 +- .../include/asio/detail/thread_context.hpp | 2 +- .../asio/include/asio/detail/thread_group.hpp | 2 +- .../include/asio/detail/thread_info_base.hpp | 38 +- .../asio/include/asio/detail/throw_error.hpp | 27 +- .../include/asio/detail/throw_exception.hpp | 10 +- .../asio/include/asio/detail/timer_queue.hpp | 2 +- .../include/asio/detail/timer_queue_base.hpp | 2 +- .../include/asio/detail/timer_queue_ptime.hpp | 4 +- .../include/asio/detail/timer_queue_set.hpp | 2 +- .../include/asio/detail/timer_scheduler.hpp | 4 +- .../asio/detail/timer_scheduler_fwd.hpp | 4 +- 3rdparty/asio/include/asio/detail/tss_ptr.hpp | 2 +- .../asio/include/asio/detail/type_traits.hpp | 190 +- 3rdparty/asio/include/asio/detail/utility.hpp | 83 + .../asio/detail/variadic_templates.hpp | 294 -- .../asio/include/asio/detail/wait_handler.hpp | 6 +- 3rdparty/asio/include/asio/detail/wait_op.hpp | 2 +- .../asio/include/asio/detail/win_event.hpp | 2 +- .../asio/detail/win_fd_set_adapter.hpp | 2 +- .../include/asio/detail/win_fenced_block.hpp | 90 - .../asio/include/asio/detail/win_global.hpp | 2 +- .../asio/detail/win_iocp_file_service.hpp | 287 ++ .../asio/detail/win_iocp_handle_read_op.hpp | 10 +- .../asio/detail/win_iocp_handle_service.hpp | 38 +- .../asio/detail/win_iocp_handle_write_op.hpp | 14 +- .../asio/detail/win_iocp_io_context.hpp | 4 +- .../asio/detail/win_iocp_null_buffers_op.hpp | 10 +- .../asio/detail/win_iocp_operation.hpp | 2 +- .../asio/detail/win_iocp_overlapped_op.hpp | 14 +- .../asio/detail/win_iocp_overlapped_ptr.hpp | 14 +- .../detail/win_iocp_serial_port_service.hpp | 3 +- .../asio/detail/win_iocp_socket_accept_op.hpp | 25 +- .../detail/win_iocp_socket_connect_op.hpp | 11 +- .../asio/detail/win_iocp_socket_recv_op.hpp | 10 +- .../detail/win_iocp_socket_recvfrom_op.hpp | 10 +- .../detail/win_iocp_socket_recvmsg_op.hpp | 12 +- .../asio/detail/win_iocp_socket_send_op.hpp | 10 +- .../asio/detail/win_iocp_socket_service.hpp | 61 +- .../detail/win_iocp_socket_service_base.hpp | 29 +- .../asio/detail/win_iocp_thread_info.hpp | 2 +- .../include/asio/detail/win_iocp_wait_op.hpp | 10 +- .../asio/include/asio/detail/win_mutex.hpp | 2 +- .../asio/detail/win_object_handle_service.hpp | 3 +- .../include/asio/detail/win_static_mutex.hpp | 2 +- .../asio/include/asio/detail/win_thread.hpp | 2 +- .../asio/include/asio/detail/win_tss_ptr.hpp | 2 +- .../include/asio/detail/winapp_thread.hpp | 2 +- .../asio/include/asio/detail/wince_thread.hpp | 2 +- .../asio/detail/winrt_async_manager.hpp | 2 +- .../include/asio/detail/winrt_async_op.hpp | 2 +- .../include/asio/detail/winrt_resolve_op.hpp | 8 +- .../asio/detail/winrt_resolver_service.hpp | 6 +- .../asio/detail/winrt_socket_connect_op.hpp | 8 +- .../asio/detail/winrt_socket_recv_op.hpp | 8 +- .../asio/detail/winrt_socket_send_op.hpp | 8 +- .../asio/detail/winrt_ssocket_service.hpp | 8 +- .../detail/winrt_ssocket_service_base.hpp | 4 +- .../asio/detail/winrt_timer_scheduler.hpp | 2 +- .../asio/include/asio/detail/winrt_utils.hpp | 2 +- .../asio/include/asio/detail/winsock_init.hpp | 4 +- .../include/asio/detail/work_dispatcher.hpp | 50 +- .../include/asio/detail/wrapped_handler.hpp | 124 +- 3rdparty/asio/include/asio/dispatch.hpp | 180 +- 3rdparty/asio/include/asio/error.hpp | 39 +- 3rdparty/asio/include/asio/error_code.hpp | 169 +- 3rdparty/asio/include/asio/execution.hpp | 17 +- .../asio/include/asio/execution/allocator.hpp | 127 +- .../include/asio/execution/any_executor.hpp | 1531 +++---- .../include/asio/execution/bad_executor.hpp | 7 +- .../asio/include/asio/execution/blocking.hpp | 787 ++-- .../asio/execution/blocking_adaptation.hpp | 600 +-- .../include/asio/execution/bulk_execute.hpp | 397 -- .../include/asio/execution/bulk_guarantee.hpp | 1215 ------ .../asio/include/asio/execution/connect.hpp | 489 --- .../asio/include/asio/execution/context.hpp | 82 +- .../include/asio/execution/context_as.hpp | 91 +- .../asio/execution/detail/as_invocable.hpp | 152 - .../asio/execution/detail/as_operation.hpp | 105 - .../asio/execution/detail/as_receiver.hpp | 128 - .../asio/execution/detail/bulk_sender.hpp | 261 -- .../asio/execution/detail/submit_receiver.hpp | 233 - .../asio/execution/detail/void_receiver.hpp | 90 - .../asio/include/asio/execution/execute.hpp | 283 -- .../asio/include/asio/execution/executor.hpp | 186 +- .../asio/execution/impl/bad_executor.ipp | 6 +- .../impl/receiver_invocation_error.ipp | 36 - .../asio/execution/invocable_archetype.hpp | 32 +- .../asio/include/asio/execution/mapping.hpp | 594 ++- .../asio/include/asio/execution/occupancy.hpp | 82 +- .../asio/execution/operation_state.hpp | 94 - .../asio/execution/outstanding_work.hpp | 412 +- .../include/asio/execution/prefer_only.hpp | 115 +- .../asio/include/asio/execution/receiver.hpp | 280 -- .../execution/receiver_invocation_error.hpp | 48 - .../include/asio/execution/relationship.hpp | 412 +- .../asio/include/asio/execution/schedule.hpp | 287 -- .../asio/include/asio/execution/scheduler.hpp | 86 - .../asio/include/asio/execution/sender.hpp | 311 -- .../asio/include/asio/execution/set_done.hpp | 250 -- .../asio/include/asio/execution/set_error.hpp | 250 -- .../asio/include/asio/execution/set_value.hpp | 483 --- .../asio/include/asio/execution/start.hpp | 247 -- .../asio/include/asio/execution/submit.hpp | 450 -- .../asio/include/asio/execution_context.hpp | 26 +- 3rdparty/asio/include/asio/executor.hpp | 102 +- .../asio/include/asio/executor_work_guard.hpp | 234 +- .../asio/include/asio/experimental/append.hpp | 47 +- .../include/asio/experimental/as_single.hpp | 51 +- .../include/asio/experimental/as_tuple.hpp | 107 +- .../asio/experimental/awaitable_operators.hpp | 40 +- .../asio/experimental/basic_channel.hpp | 513 +++ .../experimental/basic_concurrent_channel.hpp | 513 +++ .../experimental/cancellation_condition.hpp | 53 +- .../include/asio/experimental/channel.hpp | 70 + .../asio/experimental/channel_error.hpp | 82 + .../asio/experimental/channel_traits.hpp | 301 ++ .../include/asio/experimental/co_composed.hpp | 145 + .../include/asio/experimental/co_spawn.hpp | 187 + .../asio/experimental/concurrent_channel.hpp | 70 + .../asio/include/asio/experimental/coro.hpp | 1014 +---- .../experimental/{detail => }/coro_traits.hpp | 85 +- .../include/asio/experimental/deferred.hpp | 581 +-- .../experimental/detail/channel_handler.hpp | 77 + .../experimental/detail/channel_message.hpp | 129 + .../experimental/detail/channel_operation.hpp | 361 ++ .../experimental/detail/channel_payload.hpp | 222 + .../detail/channel_receive_op.hpp | 127 + .../detail/channel_send_functions.hpp | 192 + .../experimental/detail/channel_send_op.hpp | 148 + .../experimental/detail/channel_service.hpp | 677 +++ .../detail/completion_handler_erasure.hpp | 158 - .../detail/coro_completion_handler.hpp | 169 + .../detail/coro_promise_allocator.hpp | 161 +- .../experimental/detail/has_signature.hpp | 54 + .../detail/impl/channel_service.hpp | 621 +++ .../experimental/detail/partial_promise.hpp | 118 +- .../include/asio/experimental/impl/append.hpp | 217 - .../asio/experimental/impl/as_single.hpp | 125 +- .../asio/experimental/impl/as_tuple.hpp | 246 -- .../asio/experimental/impl/channel_error.ipp | 61 + .../asio/experimental/impl/co_composed.hpp | 1174 +++++ .../include/asio/experimental/impl/coro.hpp | 1222 ++++++ .../asio/experimental/impl/deferred.hpp | 104 - .../asio/experimental/impl/parallel_group.hpp | 442 +- .../asio/experimental/impl/prepend.hpp | 217 - .../asio/experimental/impl/promise.hpp | 219 +- .../asio/experimental/impl/use_coro.hpp | 214 + .../asio/experimental/impl/use_promise.hpp | 66 + .../asio/experimental/parallel_group.hpp | 316 +- .../include/asio/experimental/prepend.hpp | 47 +- .../include/asio/experimental/promise.hpp | 554 +-- .../include/asio/experimental/use_coro.hpp | 363 +- .../include/asio/experimental/use_promise.hpp | 111 + 3rdparty/asio/include/asio/file_base.hpp | 166 + .../include/asio/generic/basic_endpoint.hpp | 8 +- .../asio/generic/datagram_protocol.hpp | 8 +- .../include/asio/generic/detail/endpoint.hpp | 2 +- .../asio/generic/detail/impl/endpoint.ipp | 2 +- .../include/asio/generic/raw_protocol.hpp | 8 +- .../asio/generic/seq_packet_protocol.hpp | 8 +- .../include/asio/generic/stream_protocol.hpp | 8 +- .../asio/include/asio/handler_alloc_hook.hpp | 104 - .../asio/handler_continuation_hook.hpp | 2 +- .../asio/include/asio/handler_invoke_hook.hpp | 111 - .../include/asio/high_resolution_timer.hpp | 7 +- .../asio/impl/any_completion_executor.ipp | 126 + .../include/asio/impl/any_io_executor.ipp | 134 + 3rdparty/asio/include/asio/impl/append.hpp | 162 + 3rdparty/asio/include/asio/impl/as_tuple.hpp | 245 ++ 3rdparty/asio/include/asio/impl/awaitable.hpp | 478 ++- .../asio/impl/buffered_read_stream.hpp | 222 +- .../asio/impl/buffered_write_stream.hpp | 222 +- .../include/asio/impl/cancellation_signal.ipp | 96 + 3rdparty/asio/include/asio/impl/co_spawn.hpp | 303 +- 3rdparty/asio/include/asio/impl/compose.hpp | 687 --- 3rdparty/asio/include/asio/impl/connect.hpp | 345 +- .../asio/include/asio/impl/connect_pipe.hpp | 73 + .../asio/include/asio/impl/connect_pipe.ipp | 149 + 3rdparty/asio/include/asio/impl/consign.hpp | 137 + 3rdparty/asio/include/asio/impl/defer.hpp | 256 -- 3rdparty/asio/include/asio/impl/deferred.hpp | 147 + 3rdparty/asio/include/asio/impl/detached.hpp | 63 +- 3rdparty/asio/include/asio/impl/dispatch.hpp | 251 -- 3rdparty/asio/include/asio/impl/error.ipp | 8 +- .../asio/include/asio/impl/error_code.ipp | 6 +- .../include/asio/impl/execution_context.hpp | 38 +- .../include/asio/impl/execution_context.ipp | 2 +- 3rdparty/asio/include/asio/impl/executor.hpp | 103 +- 3rdparty/asio/include/asio/impl/executor.ipp | 6 +- .../include/asio/impl/handler_alloc_hook.ipp | 62 - .../asio/include/asio/impl/io_context.hpp | 179 +- .../asio/include/asio/impl/io_context.ipp | 3 +- .../include/asio/impl/multiple_exceptions.ipp | 12 +- 3rdparty/asio/include/asio/impl/post.hpp | 256 -- 3rdparty/asio/include/asio/impl/prepend.hpp | 163 + 3rdparty/asio/include/asio/impl/read.hpp | 648 ++- 3rdparty/asio/include/asio/impl/read_at.hpp | 295 +- .../asio/include/asio/impl/read_until.hpp | 1406 +++--- .../asio/include/asio/impl/redirect_error.hpp | 451 +- .../include/asio/impl/serial_port_base.hpp | 2 +- .../include/asio/impl/serial_port_base.ipp | 2 +- 3rdparty/asio/include/asio/impl/spawn.hpp | 1513 +++++-- 3rdparty/asio/include/asio/impl/src.hpp | 16 +- .../asio/include/asio/impl/system_context.hpp | 4 +- .../asio/include/asio/impl/system_context.ipp | 4 +- .../include/asio/impl/system_executor.hpp | 44 +- .../asio/include/asio/impl/thread_pool.hpp | 141 +- .../asio/include/asio/impl/thread_pool.ipp | 9 +- .../asio/include/asio/impl/use_awaitable.hpp | 28 +- .../asio/include/asio/impl/use_future.hpp | 515 +-- 3rdparty/asio/include/asio/impl/write.hpp | 699 ++- 3rdparty/asio/include/asio/impl/write_at.hpp | 283 +- 3rdparty/asio/include/asio/io_context.hpp | 415 +- .../asio/include/asio/io_context_strand.hpp | 62 +- 3rdparty/asio/include/asio/io_service.hpp | 2 +- .../asio/include/asio/io_service_strand.hpp | 2 +- 3rdparty/asio/include/asio/ip/address.hpp | 61 +- 3rdparty/asio/include/asio/ip/address_v4.hpp | 138 +- .../include/asio/ip/address_v4_iterator.hpp | 32 +- .../asio/include/asio/ip/address_v4_range.hpp | 38 +- 3rdparty/asio/include/asio/ip/address_v6.hpp | 109 +- .../include/asio/ip/address_v6_iterator.hpp | 31 +- .../asio/include/asio/ip/address_v6_range.hpp | 35 +- .../asio/include/asio/ip/bad_address_cast.hpp | 16 +- .../asio/include/asio/ip/basic_endpoint.hpp | 61 +- .../asio/include/asio/ip/basic_resolver.hpp | 250 +- .../include/asio/ip/basic_resolver_entry.hpp | 2 +- .../asio/ip/basic_resolver_iterator.hpp | 12 +- .../include/asio/ip/basic_resolver_query.hpp | 18 +- .../asio/ip/basic_resolver_results.hpp | 22 +- .../asio/include/asio/ip/detail/endpoint.hpp | 34 +- .../include/asio/ip/detail/impl/endpoint.ipp | 24 +- .../include/asio/ip/detail/socket_option.hpp | 2 +- 3rdparty/asio/include/asio/ip/host_name.hpp | 2 +- 3rdparty/asio/include/asio/ip/icmp.hpp | 14 +- .../asio/include/asio/ip/impl/address.hpp | 2 +- .../asio/include/asio/ip/impl/address.ipp | 40 +- .../asio/include/asio/ip/impl/address_v4.hpp | 2 +- .../asio/include/asio/ip/impl/address_v4.ipp | 22 +- .../asio/include/asio/ip/impl/address_v6.hpp | 2 +- .../asio/include/asio/ip/impl/address_v6.ipp | 56 +- .../include/asio/ip/impl/basic_endpoint.hpp | 2 +- .../asio/include/asio/ip/impl/host_name.ipp | 2 +- .../asio/include/asio/ip/impl/network_v4.hpp | 2 +- .../asio/include/asio/ip/impl/network_v4.ipp | 10 +- .../asio/include/asio/ip/impl/network_v6.hpp | 2 +- .../asio/include/asio/ip/impl/network_v6.ipp | 10 +- 3rdparty/asio/include/asio/ip/multicast.hpp | 2 +- 3rdparty/asio/include/asio/ip/network_v4.hpp | 38 +- 3rdparty/asio/include/asio/ip/network_v6.hpp | 32 +- .../asio/include/asio/ip/resolver_base.hpp | 2 +- .../include/asio/ip/resolver_query_base.hpp | 2 +- 3rdparty/asio/include/asio/ip/tcp.hpp | 14 +- 3rdparty/asio/include/asio/ip/udp.hpp | 14 +- 3rdparty/asio/include/asio/ip/unicast.hpp | 2 +- 3rdparty/asio/include/asio/ip/v6_only.hpp | 4 +- .../include/asio/is_applicable_property.hpp | 12 +- .../include/asio/is_contiguous_iterator.hpp | 45 + 3rdparty/asio/include/asio/is_executor.hpp | 2 +- .../asio/include/asio/is_read_buffered.hpp | 2 +- .../asio/include/asio/is_write_buffered.hpp | 2 +- .../include/asio/local/basic_endpoint.hpp | 8 +- .../asio/include/asio/local/connect_pair.hpp | 2 +- .../include/asio/local/datagram_protocol.hpp | 8 +- .../include/asio/local/detail/endpoint.hpp | 2 +- .../asio/local/detail/impl/endpoint.ipp | 2 +- .../asio/local/seq_packet_protocol.hpp | 84 + .../include/asio/local/stream_protocol.hpp | 8 +- .../asio/include/asio/multiple_exceptions.hpp | 12 +- 3rdparty/asio/include/asio/packaged_task.hpp | 62 +- 3rdparty/asio/include/asio/placeholders.hpp | 134 +- .../include/asio/posix/basic_descriptor.hpp | 135 +- .../asio/posix/basic_stream_descriptor.hpp | 150 +- .../asio/include/asio/posix/descriptor.hpp | 2 +- .../include/asio/posix/descriptor_base.hpp | 2 +- .../include/asio/posix/stream_descriptor.hpp | 2 +- 3rdparty/asio/include/asio/post.hpp | 197 +- 3rdparty/asio/include/asio/prefer.hpp | 509 +-- 3rdparty/asio/include/asio/prepend.hpp | 66 + 3rdparty/asio/include/asio/query.hpp | 127 +- .../asio/include/asio/random_access_file.hpp | 35 + 3rdparty/asio/include/asio/read.hpp | 578 +-- 3rdparty/asio/include/asio/read_at.hpp | 192 +- 3rdparty/asio/include/asio/read_until.hpp | 843 ++-- 3rdparty/asio/include/asio/readable_pipe.hpp | 35 + .../asio/include/asio/recycling_allocator.hpp | 138 + 3rdparty/asio/include/asio/redirect_error.hpp | 20 +- .../asio/include/asio/registered_buffer.hpp | 344 ++ 3rdparty/asio/include/asio/require.hpp | 354 +- .../asio/include/asio/require_concept.hpp | 149 +- 3rdparty/asio/include/asio/serial_port.hpp | 2 +- .../asio/include/asio/serial_port_base.hpp | 2 +- 3rdparty/asio/include/asio/signal_set.hpp | 2 +- .../asio/include/asio/signal_set_base.hpp | 171 + 3rdparty/asio/include/asio/socket_base.hpp | 2 +- 3rdparty/asio/include/asio/spawn.hpp | 742 +++- 3rdparty/asio/include/asio/ssl.hpp | 2 +- 3rdparty/asio/include/asio/ssl/context.hpp | 7 +- .../asio/include/asio/ssl/context_base.hpp | 48 +- .../asio/ssl/detail/buffered_handshake_op.hpp | 6 +- .../asio/include/asio/ssl/detail/engine.hpp | 13 +- .../include/asio/ssl/detail/handshake_op.hpp | 6 +- .../include/asio/ssl/detail/impl/engine.ipp | 28 +- .../asio/ssl/detail/impl/openssl_init.ipp | 12 +- 3rdparty/asio/include/asio/ssl/detail/io.hpp | 87 +- .../include/asio/ssl/detail/openssl_init.hpp | 2 +- .../include/asio/ssl/detail/openssl_types.hpp | 2 +- .../asio/ssl/detail/password_callback.hpp | 2 +- .../asio/include/asio/ssl/detail/read_op.hpp | 6 +- .../include/asio/ssl/detail/shutdown_op.hpp | 8 +- .../include/asio/ssl/detail/stream_core.hpp | 49 +- .../asio/ssl/detail/verify_callback.hpp | 4 +- .../asio/include/asio/ssl/detail/write_op.hpp | 6 +- 3rdparty/asio/include/asio/ssl/error.hpp | 4 +- .../asio/ssl/host_name_verification.hpp | 2 +- .../asio/include/asio/ssl/impl/context.hpp | 2 +- .../asio/include/asio/ssl/impl/context.ipp | 208 +- 3rdparty/asio/include/asio/ssl/impl/error.ipp | 32 +- .../asio/ssl/impl/host_name_verification.ipp | 2 +- .../asio/ssl/impl/rfc2818_verification.ipp | 2 +- 3rdparty/asio/include/asio/ssl/impl/src.hpp | 2 +- .../include/asio/ssl/rfc2818_verification.hpp | 2 +- 3rdparty/asio/include/asio/ssl/stream.hpp | 280 +- .../asio/include/asio/ssl/stream_base.hpp | 2 +- .../asio/include/asio/ssl/verify_context.hpp | 2 +- .../asio/include/asio/ssl/verify_mode.hpp | 2 +- .../asio/include/asio/static_thread_pool.hpp | 2 +- 3rdparty/asio/include/asio/steady_timer.hpp | 7 +- 3rdparty/asio/include/asio/strand.hpp | 220 +- 3rdparty/asio/include/asio/stream_file.hpp | 35 + 3rdparty/asio/include/asio/streambuf.hpp | 2 +- 3rdparty/asio/include/asio/system_context.hpp | 6 +- 3rdparty/asio/include/asio/system_error.hpp | 104 +- .../asio/include/asio/system_executor.hpp | 137 +- 3rdparty/asio/include/asio/system_timer.hpp | 7 +- 3rdparty/asio/include/asio/this_coro.hpp | 91 +- 3rdparty/asio/include/asio/thread.hpp | 2 +- 3rdparty/asio/include/asio/thread_pool.hpp | 368 +- 3rdparty/asio/include/asio/time_traits.hpp | 2 +- .../include/asio/traits/bulk_execute_free.hpp | 114 - .../asio/traits/bulk_execute_member.hpp | 114 - .../asio/include/asio/traits/connect_free.hpp | 112 - .../include/asio/traits/connect_member.hpp | 112 - .../asio/traits/equality_comparable.hpp | 32 +- .../asio/include/asio/traits/execute_free.hpp | 108 - .../include/asio/traits/execute_member.hpp | 36 +- .../asio/include/asio/traits/prefer_free.hpp | 36 +- .../include/asio/traits/prefer_member.hpp | 36 +- .../asio/include/asio/traits/query_free.hpp | 36 +- .../asio/include/asio/traits/query_member.hpp | 36 +- .../traits/query_static_constexpr_member.hpp | 37 +- .../asio/traits/require_concept_free.hpp | 36 +- .../asio/traits/require_concept_member.hpp | 36 +- .../asio/include/asio/traits/require_free.hpp | 36 +- .../include/asio/traits/require_member.hpp | 36 +- .../include/asio/traits/schedule_free.hpp | 108 - .../include/asio/traits/schedule_member.hpp | 108 - .../include/asio/traits/set_done_free.hpp | 108 - .../include/asio/traits/set_done_member.hpp | 108 - .../include/asio/traits/set_error_free.hpp | 112 - .../include/asio/traits/set_error_member.hpp | 112 - .../include/asio/traits/set_value_free.hpp | 234 - .../include/asio/traits/set_value_member.hpp | 234 - .../asio/include/asio/traits/start_free.hpp | 108 - .../asio/include/asio/traits/start_member.hpp | 108 - .../asio/include/asio/traits/static_query.hpp | 46 +- .../include/asio/traits/static_require.hpp | 52 +- .../asio/traits/static_require_concept.hpp | 52 +- .../asio/include/asio/traits/submit_free.hpp | 112 - .../include/asio/traits/submit_member.hpp | 112 - 3rdparty/asio/include/asio/ts/buffer.hpp | 2 +- 3rdparty/asio/include/asio/ts/executor.hpp | 2 +- 3rdparty/asio/include/asio/ts/internet.hpp | 2 +- 3rdparty/asio/include/asio/ts/io_context.hpp | 2 +- 3rdparty/asio/include/asio/ts/net.hpp | 2 +- 3rdparty/asio/include/asio/ts/netfwd.hpp | 30 +- 3rdparty/asio/include/asio/ts/socket.hpp | 2 +- 3rdparty/asio/include/asio/ts/timer.hpp | 2 +- 3rdparty/asio/include/asio/unyield.hpp | 2 +- 3rdparty/asio/include/asio/use_awaitable.hpp | 41 +- 3rdparty/asio/include/asio/use_future.hpp | 35 +- 3rdparty/asio/include/asio/uses_executor.hpp | 8 +- 3rdparty/asio/include/asio/version.hpp | 4 +- 3rdparty/asio/include/asio/wait_traits.hpp | 2 +- .../asio/windows/basic_object_handle.hpp | 110 +- .../asio/windows/basic_overlapped_handle.hpp | 122 +- .../windows/basic_random_access_handle.hpp | 155 +- .../asio/windows/basic_stream_handle.hpp | 149 +- .../include/asio/windows/object_handle.hpp | 2 +- .../asio/windows/overlapped_handle.hpp | 2 +- .../include/asio/windows/overlapped_ptr.hpp | 34 +- .../asio/windows/random_access_handle.hpp | 2 +- .../include/asio/windows/stream_handle.hpp | 2 +- 3rdparty/asio/include/asio/writable_pipe.hpp | 35 + 3rdparty/asio/include/asio/write.hpp | 554 +-- 3rdparty/asio/include/asio/write_at.hpp | 191 +- 3rdparty/asio/include/asio/yield.hpp | 2 +- 3rdparty/asio/install-sh | 422 +- 3rdparty/asio/missing | 16 +- 3rdparty/asio/src/Makefile.am | 22 +- 3rdparty/asio/src/Makefile.in | 33 +- 3rdparty/asio/src/Makefile.mgw | 176 +- 3rdparty/asio/src/Makefile.msc | 289 +- 3rdparty/asio/src/asio.cpp | 2 +- 3rdparty/asio/src/asio_ssl.cpp | 2 +- 3rdparty/asio/src/examples/cpp03/Makefile.am | 251 -- 3rdparty/asio/src/examples/cpp03/Makefile.in | 2339 ---------- .../src/examples/cpp03/allocation/server.cpp | 285 -- .../cpp03/buffers/reference_counted.cpp | 131 - .../src/examples/cpp03/chat/chat_client.cpp | 177 - .../src/examples/cpp03/chat/chat_message.hpp | 93 - .../src/examples/cpp03/chat/chat_server.cpp | 249 -- .../examples/cpp03/chat/posix_chat_client.cpp | 204 - .../cpp03/echo/async_tcp_echo_server.cpp | 137 - .../cpp03/echo/async_udp_echo_server.cpp | 92 - .../cpp03/echo/blocking_tcp_echo_client.cpp | 59 - .../cpp03/echo/blocking_tcp_echo_server.cpp | 79 - .../cpp03/echo/blocking_udp_echo_client.cpp | 59 - .../cpp03/echo/blocking_udp_echo_server.cpp | 53 - .../asio/src/examples/cpp03/fork/daemon.cpp | 190 - .../cpp03/fork/process_per_connection.cpp | 161 - .../examples/cpp03/http/server/connection.cpp | 99 - .../examples/cpp03/http/server/connection.hpp | 83 - .../cpp03/http/server/connection_manager.cpp | 38 - .../cpp03/http/server/connection_manager.hpp | 44 - .../src/examples/cpp03/http/server/header.hpp | 28 - .../src/examples/cpp03/http/server/main.cpp | 44 - .../examples/cpp03/http/server/mime_types.cpp | 46 - .../examples/cpp03/http/server/mime_types.hpp | 27 - .../src/examples/cpp03/http/server/reply.cpp | 256 -- .../src/examples/cpp03/http/server/reply.hpp | 64 - .../cpp03/http/server/request_handler.cpp | 122 - .../cpp03/http/server/request_handler.hpp | 46 - .../src/examples/cpp03/http/server/server.cpp | 94 - .../src/examples/cpp03/http/server/server.hpp | 69 - .../cpp03/http/server2/connection.cpp | 93 - .../cpp03/http/server3/connection.cpp | 94 - .../examples/cpp03/http/server4/request.hpp | 46 - .../cpp03/http/server4/request_parser.cpp | 226 - .../cpp03/http/server4/request_parser.hpp | 78 - .../cpp03/invocation/prioritised_handlers.cpp | 171 - .../examples/cpp03/iostreams/http_client.cpp | 91 - .../src/examples/cpp03/local/connect_pair.cpp | 141 - .../examples/cpp03/local/iostream_client.cpp | 62 - .../examples/cpp03/local/stream_client.cpp | 61 - .../examples/cpp03/local/stream_server.cpp | 141 - .../src/examples/cpp03/multicast/receiver.cpp | 93 - .../src/examples/cpp03/multicast/sender.cpp | 98 - .../cpp03/nonblocking/third_party_lib.cpp | 240 -- .../asio/src/examples/cpp03/socks4/socks4.hpp | 144 - .../src/examples/cpp03/socks4/sync_client.cpp | 94 - .../src/examples/cpp03/spawn/echo_server.cpp | 122 - .../examples/cpp03/spawn/parallel_grep.cpp | 89 - 3rdparty/asio/src/examples/cpp03/ssl/ca.pem | 49 - .../asio/src/examples/cpp03/ssl/client.cpp | 157 - .../asio/src/examples/cpp03/ssl/dh2048.pem | 8 - .../asio/src/examples/cpp03/ssl/server.cpp | 170 - .../asio/src/examples/cpp03/ssl/server.pem | 71 - .../cpp03/timeouts/async_tcp_client.cpp | 311 -- .../cpp03/timeouts/blocking_tcp_client.cpp | 191 - .../timeouts/blocking_token_tcp_client.cpp | 201 - .../cpp03/timeouts/blocking_udp_client.cpp | 154 - .../src/examples/cpp03/timeouts/server.cpp | 433 -- .../examples/cpp03/timers/time_t_timer.cpp | 106 - 3rdparty/asio/src/examples/cpp11/Makefile.am | 171 +- 3rdparty/asio/src/examples/cpp11/Makefile.in | 1256 +++++- .../src/examples/cpp11/allocation/server.cpp | 48 +- .../cpp11/buffers/reference_counted.cpp | 2 +- .../src/examples/cpp11/chat/chat_client.cpp | 2 +- .../src/examples/cpp11/chat/chat_message.hpp | 6 +- .../src/examples/cpp11/chat/chat_server.cpp | 2 +- .../examples/cpp11/chat/posix_chat_client.cpp | 198 + .../examples/cpp11/deferred/deferred_1.cpp | 35 + .../examples/cpp11/deferred/deferred_2.cpp | 44 + .../cpp11/echo/async_tcp_echo_server.cpp | 2 +- .../cpp11/echo/async_udp_echo_server.cpp | 2 +- .../cpp11/echo/blocking_tcp_echo_client.cpp | 2 +- .../cpp11/echo/blocking_tcp_echo_server.cpp | 6 +- .../cpp11/echo/blocking_udp_echo_client.cpp | 2 +- .../cpp11/echo/blocking_udp_echo_server.cpp | 2 +- .../cpp11/executors/bank_account_1.cpp | 9 +- .../cpp11/executors/bank_account_2.cpp | 12 +- .../examples/cpp11/executors/fork_join.cpp | 7 +- .../examples/cpp11/files/async_file_copy.cpp | 101 + .../cpp11/files/blocking_file_copy.cpp | 65 + .../asio/src/examples/cpp11/fork/daemon.cpp | 2 +- .../cpp11/fork/process_per_connection.cpp | 2 +- .../examples/cpp11/futures/daytime_client.cpp | 5 +- .../async_tcp_echo_server.cpp | 2 +- .../handler_tracking/custom_tracking.hpp | 6 +- .../http/client/async_client.cpp | 30 +- .../http/client/sync_client.cpp | 6 +- .../examples/cpp11/http/server/connection.cpp | 5 +- .../examples/cpp11/http/server/connection.hpp | 4 +- .../cpp11/http/server/connection_manager.cpp | 2 +- .../cpp11/http/server/connection_manager.hpp | 2 +- .../src/examples/cpp11/http/server/header.hpp | 2 +- .../src/examples/cpp11/http/server/main.cpp | 2 +- .../examples/cpp11/http/server/mime_types.cpp | 2 +- .../examples/cpp11/http/server/mime_types.hpp | 2 +- .../src/examples/cpp11/http/server/reply.cpp | 2 +- .../src/examples/cpp11/http/server/reply.hpp | 2 +- .../examples/cpp11/http/server/request.hpp | 2 +- .../cpp11/http/server/request_handler.cpp | 2 +- .../cpp11/http/server/request_handler.hpp | 2 +- .../cpp11/http/server/request_parser.cpp | 2 +- .../cpp11/http/server/request_parser.hpp | 2 +- .../src/examples/cpp11/http/server/server.cpp | 2 +- .../src/examples/cpp11/http/server/server.hpp | 2 +- .../cpp11/http/server2/connection.cpp | 89 + .../http/server2/connection.hpp | 34 +- .../{cpp03 => cpp11}/http/server2/header.hpp | 2 +- .../http/server2/io_context_pool.cpp | 18 +- .../http/server2/io_context_pool.hpp | 17 +- .../{cpp03 => cpp11}/http/server2/main.cpp | 6 +- .../http/server2/mime_types.cpp | 2 +- .../http/server2/mime_types.hpp | 2 +- .../{cpp03 => cpp11}/http/server2/reply.cpp | 5 +- .../{cpp03 => cpp11}/http/server2/reply.hpp | 2 +- .../{cpp03 => cpp11}/http/server2/request.hpp | 2 +- .../http/server2/request_handler.cpp | 5 +- .../http/server2/request_handler.hpp | 7 +- .../http/server2/request_parser.cpp | 104 +- .../http/server2/request_parser.hpp | 29 +- .../{cpp03 => cpp11}/http/server2/server.cpp | 51 +- .../{cpp03 => cpp11}/http/server2/server.hpp | 24 +- .../cpp11/http/server3/connection.cpp | 89 + .../http/server3/connection.hpp | 37 +- .../{cpp03 => cpp11}/http/server3/header.hpp | 2 +- .../{cpp03 => cpp11}/http/server3/main.cpp | 6 +- .../http/server3/mime_types.cpp | 2 +- .../http/server3/mime_types.hpp | 2 +- .../{cpp03 => cpp11}/http/server3/reply.cpp | 5 +- .../{cpp03 => cpp11}/http/server3/reply.hpp | 2 +- .../{cpp03 => cpp11}/http/server3/request.hpp | 2 +- .../http/server3/request_handler.cpp | 5 +- .../http/server3/request_handler.hpp | 7 +- .../http/server3/request_parser.cpp | 104 +- .../http/server3/request_parser.hpp | 29 +- .../{cpp03 => cpp11}/http/server3/server.cpp | 66 +- .../{cpp03 => cpp11}/http/server3/server.hpp | 24 +- .../http/server4/file_handler.cpp | 5 +- .../http/server4/file_handler.hpp | 2 +- .../{cpp03 => cpp11}/http/server4/header.hpp | 2 +- .../{cpp03 => cpp11}/http/server4/main.cpp | 10 +- .../http/server4/mime_types.cpp | 2 +- .../http/server4/mime_types.hpp | 2 +- .../{cpp03 => cpp11}/http/server4/reply.cpp | 5 +- .../{cpp03 => cpp11}/http/server4/reply.hpp | 2 +- .../server => cpp11/http/server4}/request.hpp | 12 +- .../http/server4}/request_parser.cpp | 108 +- .../http/server4}/request_parser.hpp | 39 +- .../{cpp03 => cpp11}/http/server4/server.cpp | 14 +- .../{cpp03 => cpp11}/http/server4/server.hpp | 26 +- .../{cpp03 => cpp11}/icmp/icmp_header.hpp | 2 +- .../{cpp03 => cpp11}/icmp/ipv4_header.hpp | 2 +- .../examples/{cpp03 => cpp11}/icmp/ping.cpp | 9 +- .../cpp11/invocation/prioritised_handlers.cpp | 6 +- .../iostreams/daytime_client.cpp | 2 +- .../iostreams/daytime_server.cpp | 4 +- .../examples/cpp11/iostreams/http_client.cpp | 2 +- .../src/examples/cpp11/local/connect_pair.cpp | 6 +- .../cpp11/local/fd_passing_stream_client.cpp | 102 + .../cpp11/local/fd_passing_stream_server.cpp | 160 + .../examples/cpp11/local/iostream_client.cpp | 2 +- .../examples/cpp11/local/stream_client.cpp | 2 +- .../examples/cpp11/local/stream_server.cpp | 2 +- .../src/examples/cpp11/multicast/receiver.cpp | 2 +- .../src/examples/cpp11/multicast/sender.cpp | 2 +- .../cpp11/nonblocking/third_party_lib.cpp | 2 +- .../examples/cpp11/operations/composed_1.cpp | 64 +- .../examples/cpp11/operations/composed_2.cpp | 162 +- .../examples/cpp11/operations/composed_3.cpp | 64 +- .../examples/cpp11/operations/composed_4.cpp | 63 +- .../examples/cpp11/operations/composed_5.cpp | 64 +- .../examples/cpp11/operations/composed_6.cpp | 75 +- .../examples/cpp11/operations/composed_7.cpp | 64 +- .../examples/cpp11/operations/composed_8.cpp | 64 +- .../parallel_group/ranged_wait_for_all.cpp | 70 + .../cpp11/parallel_group/wait_for_all.cpp | 62 + .../cpp11/parallel_group/wait_for_one.cpp | 62 + .../parallel_group/wait_for_one_error.cpp | 62 + .../parallel_group/wait_for_one_success.cpp | 62 + .../{cpp03 => cpp11}/porthopper/client.cpp | 76 +- .../{cpp03 => cpp11}/porthopper/protocol.hpp | 12 +- .../{cpp03 => cpp11}/porthopper/server.cpp | 34 +- .../{cpp03 => cpp11}/serialization/client.cpp | 8 +- .../serialization/connection.hpp | 60 +- .../{cpp03 => cpp11}/serialization/server.cpp | 17 +- .../{cpp03 => cpp11}/serialization/stock.hpp | 2 +- .../services/basic_logger.hpp | 7 +- .../services/daytime_client.cpp | 10 +- .../{cpp03 => cpp11}/services/logger.hpp | 2 +- .../services/logger_service.cpp | 2 +- .../services/logger_service.hpp | 42 +- .../asio/src/examples/cpp11/socks4/socks4.hpp | 4 +- .../src/examples/cpp11/socks4/sync_client.cpp | 2 +- .../src/examples/cpp11/spawn/echo_server.cpp | 20 +- .../examples/cpp11/spawn/parallel_grep.cpp | 6 +- .../src/examples/{cpp03 => cpp11}/ssl/README | 2 +- 3rdparty/asio/src/examples/cpp11/ssl/ca.pem | 50 + .../asio/src/examples/cpp11/ssl/client.cpp | 2 +- .../asio/src/examples/cpp11/ssl/dh4096.pem | 25 + .../asio/src/examples/cpp11/ssl/server.cpp | 4 +- .../asio/src/examples/cpp11/ssl/server.pem | 99 + .../cpp11/timeouts/async_tcp_client.cpp | 2 +- .../cpp11/timeouts/blocking_tcp_client.cpp | 2 +- .../timeouts/blocking_token_tcp_client.cpp | 79 +- .../cpp11/timeouts/blocking_udp_client.cpp | 2 +- .../src/examples/cpp11/timeouts/server.cpp | 2 +- .../examples/cpp11/timers/time_t_timer.cpp | 2 +- .../tutorial/daytime1/client.cpp | 10 +- .../tutorial/daytime2/server.cpp | 4 +- .../tutorial/daytime3/server.cpp | 19 +- .../tutorial/daytime4/client.cpp | 8 +- .../tutorial/daytime5/server.cpp | 8 +- .../tutorial/daytime6/server.cpp | 22 +- .../tutorial/daytime7/server.cpp | 31 +- .../tutorial/timer1/timer.cpp | 2 +- .../tutorial/timer2/timer.cpp | 4 +- .../tutorial/timer3/timer.cpp | 10 +- .../tutorial/timer4/timer.cpp | 8 +- .../tutorial/timer5/timer.cpp | 15 +- .../cpp11/type_erasure/line_reader.hpp | 48 + .../src/examples/cpp11/type_erasure/main.cpp | 60 + .../src/examples/cpp11/type_erasure/sleep.cpp | 22 + .../src/examples/cpp11/type_erasure/sleep.hpp | 35 + .../cpp11/type_erasure/stdin_line_reader.cpp | 44 + .../cpp11/type_erasure/stdin_line_reader.hpp | 30 + .../windows/transmit_file.cpp | 25 +- 3rdparty/asio/src/examples/cpp14/Makefile.am | 7 + 3rdparty/asio/src/examples/cpp14/Makefile.in | 82 +- .../examples/cpp14/deferred/deferred_1.cpp | 5 +- .../examples/cpp14/deferred/deferred_2.cpp | 5 +- .../examples/cpp14/deferred/deferred_3.cpp | 5 +- .../examples/cpp14/deferred/deferred_4.cpp | 5 +- .../examples/cpp14/deferred/deferred_5.cpp | 5 +- .../examples/cpp14/deferred/deferred_6.cpp | 8 +- .../examples/cpp14/deferred/deferred_7.cpp | 8 +- .../cpp14/echo/async_tcp_echo_server.cpp | 2 +- .../cpp14/echo/async_udp_echo_server.cpp | 2 +- .../cpp14/echo/blocking_tcp_echo_client.cpp | 2 +- .../cpp14/echo/blocking_tcp_echo_server.cpp | 2 +- .../cpp14/echo/blocking_udp_echo_client.cpp | 2 +- .../cpp14/echo/blocking_udp_echo_server.cpp | 2 +- .../src/examples/cpp14/executors/async_1.cpp | 6 +- .../src/examples/cpp14/executors/async_2.cpp | 6 +- .../cpp14/executors/bank_account_1.cpp | 9 +- .../cpp14/executors/bank_account_2.cpp | 13 +- .../examples/cpp14/executors/fork_join.cpp | 7 +- .../src/examples/cpp14/executors/pipeline.cpp | 10 +- .../cpp14/executors/priority_scheduler.cpp | 20 +- .../examples/cpp14/iostreams/http_client.cpp | 2 +- .../cpp14/operations/c_callback_wrapper.cpp | 230 + .../cpp14/operations/callback_wrapper.cpp | 152 + .../examples/cpp14/operations/composed_1.cpp | 56 +- .../examples/cpp14/operations/composed_2.cpp | 146 +- .../examples/cpp14/operations/composed_3.cpp | 54 +- .../examples/cpp14/operations/composed_4.cpp | 53 +- .../examples/cpp14/operations/composed_5.cpp | 54 +- .../examples/cpp14/operations/composed_6.cpp | 64 +- .../examples/cpp14/operations/composed_7.cpp | 56 +- .../examples/cpp14/operations/composed_8.cpp | 56 +- .../cpp14/parallel_group/parallel_sort.cpp | 5 +- .../parallel_group/ranged_wait_for_all.cpp | 70 + .../cpp14/parallel_group/wait_for_all.cpp | 8 +- .../cpp14/parallel_group/wait_for_one.cpp | 8 +- .../parallel_group/wait_for_one_error.cpp | 8 +- .../parallel_group/wait_for_one_success.cpp | 8 +- 3rdparty/asio/src/examples/cpp17/Makefile.in | 15 +- .../cpp17/coroutines_ts/chat_server.cpp | 2 +- .../cpp17/coroutines_ts/echo_server.cpp | 2 +- .../echo_server_with_as_single_default.cpp | 2 +- .../echo_server_with_as_tuple_default.cpp | 6 +- .../echo_server_with_default.cpp | 2 +- .../cpp17/coroutines_ts/range_based_for.cpp | 2 +- .../coroutines_ts/refactored_echo_server.cpp | 2 +- 3rdparty/asio/src/examples/cpp20/Makefile.am | 79 + 3rdparty/asio/src/examples/cpp20/Makefile.in | 1173 +++++ .../cpp20/channels/mutual_exclusion_1.cpp | 182 + .../cpp20/channels/mutual_exclusion_2.cpp | 192 + .../cpp20/channels/throttling_proxy.cpp | 135 + .../examples/cpp20/coroutines/chat_server.cpp | 222 + .../examples/cpp20/coroutines/echo_server.cpp | 76 + .../echo_server_with_as_single_default.cpp | 71 + .../echo_server_with_as_tuple_default.cpp | 71 + .../coroutines/echo_server_with_default.cpp | 73 + .../coroutines/echo_server_with_deferred.cpp | 72 + .../echo_server_with_deferred_default.cpp | 74 + .../coroutines/refactored_echo_server.cpp | 80 + .../src/examples/cpp20/coroutines/timeout.cpp | 66 + .../cpp20/invocation/completion_executor.cpp | 83 + .../cpp20/operations/c_callback_wrapper.cpp | 232 + .../cpp20/operations/callback_wrapper.cpp | 154 + .../examples/cpp20/operations/composed_1.cpp | 157 + .../examples/cpp20/operations/composed_2.cpp | 225 + .../examples/cpp20/operations/composed_3.cpp | 232 + .../examples/cpp20/operations/composed_4.cpp | 247 ++ .../examples/cpp20/operations/composed_5.cpp | 284 ++ .../examples/cpp20/operations/composed_6.cpp | 345 ++ .../examples/cpp20/operations/composed_7.cpp | 262 ++ .../examples/cpp20/operations/composed_8.cpp | 255 ++ .../cpp20/type_erasure/line_reader.hpp | 39 + .../src/examples/cpp20/type_erasure/main.cpp | 35 + .../src/examples/cpp20/type_erasure/sleep.cpp | 22 + .../src/examples/cpp20/type_erasure/sleep.hpp | 32 + .../cpp20/type_erasure/stdin_line_reader.cpp | 44 + .../cpp20/type_erasure/stdin_line_reader.hpp | 30 + 3rdparty/asio/src/tests/Makefile.am | 162 +- 3rdparty/asio/src/tests/Makefile.in | 1679 +++++--- 3rdparty/asio/src/tests/latency/allocator.hpp | 2 +- .../asio/src/tests/latency/high_res_clock.hpp | 2 +- .../asio/src/tests/latency/tcp_client.cpp | 2 +- .../asio/src/tests/latency/tcp_server.cpp | 2 +- .../asio/src/tests/latency/udp_client.cpp | 2 +- .../asio/src/tests/latency/udp_server.cpp | 2 +- .../asio/src/tests/performance/client.cpp | 2 +- .../tests/performance/handler_allocator.hpp | 2 +- .../asio/src/tests/performance/server.cpp | 2 +- .../asio/src/tests/properties/Makefile.in | 18 +- .../cpp03/can_prefer_free_prefer.cpp | 2 +- .../cpp03/can_prefer_free_require.cpp | 2 +- .../cpp03/can_prefer_member_prefer.cpp | 2 +- .../cpp03/can_prefer_member_require.cpp | 2 +- .../can_prefer_not_applicable_free_prefer.cpp | 2 +- ...can_prefer_not_applicable_free_require.cpp | 2 +- ...an_prefer_not_applicable_member_prefer.cpp | 2 +- ...n_prefer_not_applicable_member_require.cpp | 2 +- .../can_prefer_not_applicable_static.cpp | 2 +- .../can_prefer_not_applicable_unsupported.cpp | 2 +- .../can_prefer_not_preferable_free_prefer.cpp | 2 +- ...can_prefer_not_preferable_free_require.cpp | 2 +- ...an_prefer_not_preferable_member_prefer.cpp | 2 +- ...n_prefer_not_preferable_member_require.cpp | 2 +- .../can_prefer_not_preferable_static.cpp | 2 +- .../can_prefer_not_preferable_unsupported.cpp | 2 +- .../properties/cpp03/can_prefer_static.cpp | 2 +- .../cpp03/can_prefer_unsupported.cpp | 2 +- .../tests/properties/cpp03/can_query_free.cpp | 2 +- .../properties/cpp03/can_query_member.cpp | 2 +- .../cpp03/can_query_not_applicable_free.cpp | 2 +- .../cpp03/can_query_not_applicable_member.cpp | 2 +- .../cpp03/can_query_not_applicable_static.cpp | 2 +- .../can_query_not_applicable_unsupported.cpp | 2 +- .../properties/cpp03/can_query_static.cpp | 2 +- .../cpp03/can_query_unsupported.cpp | 2 +- .../cpp03/can_require_concept_free.cpp | 2 +- .../cpp03/can_require_concept_member.cpp | 2 +- ...an_require_concept_not_applicable_free.cpp | 2 +- ..._require_concept_not_applicable_member.cpp | 2 +- ..._require_concept_not_applicable_static.cpp | 2 +- ...ire_concept_not_applicable_unsupported.cpp | 2 +- .../cpp03/can_require_concept_static.cpp | 2 +- .../cpp03/can_require_concept_unsupported.cpp | 2 +- .../properties/cpp03/can_require_free.cpp | 2 +- .../properties/cpp03/can_require_member.cpp | 2 +- .../cpp03/can_require_not_applicable_free.cpp | 2 +- .../can_require_not_applicable_member.cpp | 2 +- .../can_require_not_applicable_static.cpp | 2 +- ...can_require_not_applicable_unsupported.cpp | 2 +- .../properties/cpp03/can_require_static.cpp | 2 +- .../cpp03/can_require_unsupported.cpp | 2 +- .../properties/cpp03/prefer_free_prefer.cpp | 2 +- .../properties/cpp03/prefer_free_require.cpp | 2 +- .../properties/cpp03/prefer_member_prefer.cpp | 2 +- .../cpp03/prefer_member_require.cpp | 2 +- .../tests/properties/cpp03/prefer_static.cpp | 2 +- .../properties/cpp03/prefer_unsupported.cpp | 2 +- .../src/tests/properties/cpp03/query_free.cpp | 2 +- .../tests/properties/cpp03/query_member.cpp | 2 +- .../tests/properties/cpp03/query_static.cpp | 2 +- .../properties/cpp03/require_concept_free.cpp | 2 +- .../cpp03/require_concept_member.cpp | 2 +- .../cpp03/require_concept_static.cpp | 2 +- .../tests/properties/cpp03/require_free.cpp | 2 +- .../tests/properties/cpp03/require_member.cpp | 2 +- .../tests/properties/cpp03/require_static.cpp | 2 +- .../cpp11/can_prefer_free_prefer.cpp | 2 +- .../cpp11/can_prefer_free_require.cpp | 2 +- .../cpp11/can_prefer_member_prefer.cpp | 2 +- .../cpp11/can_prefer_member_require.cpp | 2 +- .../can_prefer_not_applicable_free_prefer.cpp | 2 +- ...can_prefer_not_applicable_free_require.cpp | 2 +- ...an_prefer_not_applicable_member_prefer.cpp | 2 +- ...n_prefer_not_applicable_member_require.cpp | 2 +- .../can_prefer_not_applicable_static.cpp | 2 +- .../can_prefer_not_applicable_unsupported.cpp | 2 +- .../can_prefer_not_preferable_free_prefer.cpp | 2 +- ...can_prefer_not_preferable_free_require.cpp | 2 +- ...an_prefer_not_preferable_member_prefer.cpp | 2 +- ...n_prefer_not_preferable_member_require.cpp | 2 +- .../can_prefer_not_preferable_static.cpp | 2 +- .../can_prefer_not_preferable_unsupported.cpp | 2 +- .../properties/cpp11/can_prefer_static.cpp | 2 +- .../cpp11/can_prefer_unsupported.cpp | 2 +- .../tests/properties/cpp11/can_query_free.cpp | 2 +- .../properties/cpp11/can_query_member.cpp | 2 +- .../cpp11/can_query_not_applicable_free.cpp | 2 +- .../cpp11/can_query_not_applicable_member.cpp | 2 +- .../cpp11/can_query_not_applicable_static.cpp | 2 +- .../can_query_not_applicable_unsupported.cpp | 2 +- .../properties/cpp11/can_query_static.cpp | 2 +- .../cpp11/can_query_unsupported.cpp | 2 +- .../cpp11/can_require_concept_free.cpp | 2 +- .../cpp11/can_require_concept_member.cpp | 2 +- ...an_require_concept_not_applicable_free.cpp | 2 +- ..._require_concept_not_applicable_member.cpp | 2 +- ..._require_concept_not_applicable_static.cpp | 2 +- ...ire_concept_not_applicable_unsupported.cpp | 2 +- .../cpp11/can_require_concept_static.cpp | 2 +- .../cpp11/can_require_concept_unsupported.cpp | 2 +- .../properties/cpp11/can_require_free.cpp | 2 +- .../properties/cpp11/can_require_member.cpp | 2 +- .../cpp11/can_require_not_applicable_free.cpp | 2 +- .../can_require_not_applicable_member.cpp | 2 +- .../can_require_not_applicable_static.cpp | 2 +- ...can_require_not_applicable_unsupported.cpp | 2 +- .../properties/cpp11/can_require_static.cpp | 2 +- .../cpp11/can_require_unsupported.cpp | 2 +- .../properties/cpp11/prefer_free_prefer.cpp | 2 +- .../properties/cpp11/prefer_free_require.cpp | 2 +- .../properties/cpp11/prefer_member_prefer.cpp | 2 +- .../cpp11/prefer_member_require.cpp | 2 +- .../tests/properties/cpp11/prefer_static.cpp | 2 +- .../properties/cpp11/prefer_unsupported.cpp | 2 +- .../src/tests/properties/cpp11/query_free.cpp | 2 +- .../tests/properties/cpp11/query_member.cpp | 2 +- .../tests/properties/cpp11/query_static.cpp | 2 +- .../properties/cpp11/require_concept_free.cpp | 2 +- .../cpp11/require_concept_member.cpp | 2 +- .../cpp11/require_concept_static.cpp | 2 +- .../tests/properties/cpp11/require_free.cpp | 2 +- .../tests/properties/cpp11/require_member.cpp | 2 +- .../tests/properties/cpp11/require_static.cpp | 2 +- .../cpp14/can_prefer_free_prefer.cpp | 2 +- .../cpp14/can_prefer_free_require.cpp | 2 +- .../cpp14/can_prefer_member_prefer.cpp | 2 +- .../cpp14/can_prefer_member_require.cpp | 2 +- .../can_prefer_not_applicable_free_prefer.cpp | 2 +- ...can_prefer_not_applicable_free_require.cpp | 2 +- ...an_prefer_not_applicable_member_prefer.cpp | 2 +- ...n_prefer_not_applicable_member_require.cpp | 2 +- .../can_prefer_not_applicable_static.cpp | 2 +- .../can_prefer_not_applicable_unsupported.cpp | 2 +- .../can_prefer_not_preferable_free_prefer.cpp | 2 +- ...can_prefer_not_preferable_free_require.cpp | 2 +- ...an_prefer_not_preferable_member_prefer.cpp | 2 +- ...n_prefer_not_preferable_member_require.cpp | 2 +- .../can_prefer_not_preferable_static.cpp | 2 +- .../can_prefer_not_preferable_unsupported.cpp | 2 +- .../properties/cpp14/can_prefer_static.cpp | 2 +- .../cpp14/can_prefer_unsupported.cpp | 2 +- .../tests/properties/cpp14/can_query_free.cpp | 2 +- .../properties/cpp14/can_query_member.cpp | 2 +- .../cpp14/can_query_not_applicable_free.cpp | 2 +- .../cpp14/can_query_not_applicable_member.cpp | 2 +- .../cpp14/can_query_not_applicable_static.cpp | 2 +- .../can_query_not_applicable_unsupported.cpp | 2 +- .../properties/cpp14/can_query_static.cpp | 2 +- .../cpp14/can_query_unsupported.cpp | 2 +- .../cpp14/can_require_concept_free.cpp | 2 +- .../cpp14/can_require_concept_member.cpp | 2 +- ...an_require_concept_not_applicable_free.cpp | 2 +- ..._require_concept_not_applicable_member.cpp | 2 +- ..._require_concept_not_applicable_static.cpp | 2 +- ...ire_concept_not_applicable_unsupported.cpp | 2 +- .../cpp14/can_require_concept_static.cpp | 2 +- .../cpp14/can_require_concept_unsupported.cpp | 2 +- .../properties/cpp14/can_require_free.cpp | 2 +- .../properties/cpp14/can_require_member.cpp | 2 +- .../cpp14/can_require_not_applicable_free.cpp | 2 +- .../can_require_not_applicable_member.cpp | 2 +- .../can_require_not_applicable_static.cpp | 2 +- ...can_require_not_applicable_unsupported.cpp | 2 +- .../properties/cpp14/can_require_static.cpp | 2 +- .../cpp14/can_require_unsupported.cpp | 2 +- .../properties/cpp14/prefer_free_prefer.cpp | 2 +- .../properties/cpp14/prefer_free_require.cpp | 2 +- .../properties/cpp14/prefer_member_prefer.cpp | 2 +- .../cpp14/prefer_member_require.cpp | 2 +- .../tests/properties/cpp14/prefer_static.cpp | 2 +- .../properties/cpp14/prefer_unsupported.cpp | 2 +- .../src/tests/properties/cpp14/query_free.cpp | 2 +- .../tests/properties/cpp14/query_member.cpp | 2 +- .../tests/properties/cpp14/query_static.cpp | 2 +- .../properties/cpp14/require_concept_free.cpp | 2 +- .../cpp14/require_concept_member.cpp | 2 +- .../cpp14/require_concept_static.cpp | 2 +- .../tests/properties/cpp14/require_free.cpp | 2 +- .../tests/properties/cpp14/require_member.cpp | 2 +- .../tests/properties/cpp14/require_static.cpp | 2 +- .../tests/unit/any_completion_executor.cpp | 463 ++ .../src/tests/unit/any_completion_handler.cpp | 260 ++ .../asio/src/tests/unit/any_io_executor.cpp | 515 +++ 3rdparty/asio/src/tests/unit/append.cpp | 58 + .../src/tests/unit/archetypes/async_ops.hpp | 132 +- .../tests/unit/archetypes/async_result.hpp | 82 +- .../archetypes/gettable_socket_option.hpp | 2 +- .../unit/archetypes/io_control_command.hpp | 2 +- .../archetypes/settable_socket_option.hpp | 2 +- 3rdparty/asio/src/tests/unit/as_tuple.cpp | 122 + .../src/tests/unit/associated_allocator.cpp | 2 +- .../unit/associated_cancellation_slot.cpp | 2 +- .../src/tests/unit/associated_executor.cpp | 2 +- .../unit/associated_immediate_executor.cpp | 25 + 3rdparty/asio/src/tests/unit/associator.cpp | 2 +- 3rdparty/asio/src/tests/unit/async_result.cpp | 2 +- 3rdparty/asio/src/tests/unit/awaitable.cpp | 2 +- .../src/tests/unit/basic_datagram_socket.cpp | 2 +- .../src/tests/unit/basic_deadline_timer.cpp | 2 +- 3rdparty/asio/src/tests/unit/basic_file.cpp | 25 + .../tests/unit/basic_random_access_file.cpp | 25 + .../asio/src/tests/unit/basic_raw_socket.cpp | 2 +- .../src/tests/unit/basic_readable_pipe.cpp | 25 + .../tests/unit/basic_seq_packet_socket.cpp | 2 +- .../asio/src/tests/unit/basic_serial_port.cpp | 2 +- .../asio/src/tests/unit/basic_signal_set.cpp | 2 +- 3rdparty/asio/src/tests/unit/basic_socket.cpp | 2 +- .../src/tests/unit/basic_socket_acceptor.cpp | 2 +- .../asio/src/tests/unit/basic_stream_file.cpp | 25 + .../src/tests/unit/basic_stream_socket.cpp | 2 +- .../asio/src/tests/unit/basic_streambuf.cpp | 2 +- .../src/tests/unit/basic_waitable_timer.cpp | 2 +- .../src/tests/unit/basic_writable_pipe.cpp | 25 + .../asio/src/tests/unit/bind_allocator.cpp | 237 ++ .../src/tests/unit/bind_cancellation_slot.cpp | 133 +- .../asio/src/tests/unit/bind_executor.cpp | 123 +- .../tests/unit/bind_immediate_executor.cpp | 199 + 3rdparty/asio/src/tests/unit/buffer.cpp | 133 +- .../src/tests/unit/buffer_registration.cpp | 25 + .../src/tests/unit/buffered_read_stream.cpp | 15 +- .../asio/src/tests/unit/buffered_stream.cpp | 15 +- .../src/tests/unit/buffered_write_stream.cpp | 15 +- .../asio/src/tests/unit/buffers_iterator.cpp | 17 +- .../src/tests/unit/cancellation_signal.cpp | 2 +- .../src/tests/unit/cancellation_state.cpp | 2 +- .../asio/src/tests/unit/cancellation_type.cpp | 2 +- 3rdparty/asio/src/tests/unit/co_spawn.cpp | 110 +- .../src/tests/unit/completion_condition.cpp | 2 +- 3rdparty/asio/src/tests/unit/compose.cpp | 44 +- 3rdparty/asio/src/tests/unit/connect.cpp | 14 +- 3rdparty/asio/src/tests/unit/connect_pipe.cpp | 154 + 3rdparty/asio/src/tests/unit/consign.cpp | 56 + 3rdparty/asio/src/tests/unit/coroutine.cpp | 2 +- .../asio/src/tests/unit/deadline_timer.cpp | 14 +- 3rdparty/asio/src/tests/unit/defer.cpp | 2 +- .../unit/{experimental => }/deferred.cpp | 10 +- 3rdparty/asio/src/tests/unit/detached.cpp | 2 +- 3rdparty/asio/src/tests/unit/dispatch.cpp | 2 +- 3rdparty/asio/src/tests/unit/error.cpp | 2 +- .../src/tests/unit/execution/any_executor.cpp | 428 +- .../src/tests/unit/execution/blocking.cpp | 151 +- .../unit/execution/blocking_adaptation.cpp | 194 +- .../src/tests/unit/execution/bulk_execute.cpp | 320 -- .../tests/unit/execution/bulk_guarantee.cpp | 1978 --------- .../asio/src/tests/unit/execution/connect.cpp | 481 --- .../src/tests/unit/execution/context_as.cpp | 14 +- .../asio/src/tests/unit/execution/execute.cpp | 388 -- .../src/tests/unit/execution/executor.cpp | 98 +- .../unit/execution/invocable_archetype.cpp | 2 +- .../asio/src/tests/unit/execution/mapping.cpp | 151 +- .../tests/unit/execution/operation_state.cpp | 104 - .../tests/unit/execution/outstanding_work.cpp | 146 +- .../src/tests/unit/execution/prefer_only.cpp | 94 +- .../src/tests/unit/execution/receiver.cpp | 549 --- .../src/tests/unit/execution/relationship.cpp | 146 +- .../src/tests/unit/execution/schedule.cpp | 490 --- .../src/tests/unit/execution/scheduler.cpp | 99 - .../asio/src/tests/unit/execution/sender.cpp | 231 - .../src/tests/unit/execution/set_done.cpp | 228 - .../src/tests/unit/execution/set_error.cpp | 244 -- .../src/tests/unit/execution/set_value.cpp | 820 ---- .../asio/src/tests/unit/execution/start.cpp | 228 - .../asio/src/tests/unit/execution/submit.cpp | 546 --- .../asio/src/tests/unit/execution_context.cpp | 2 +- 3rdparty/asio/src/tests/unit/executor.cpp | 2 +- .../src/tests/unit/executor_work_guard.cpp | 2 +- .../unit/experimental/awaitable_operators.cpp | 2 +- .../tests/unit/experimental/basic_channel.cpp | 25 + .../experimental/basic_concurrent_channel.cpp | 25 + .../src/tests/unit/experimental/channel.cpp | 888 ++++ .../unit/experimental/channel_traits.cpp | 25 + .../tests/unit/experimental/co_composed.cpp | 518 +++ .../unit/experimental/concurrent_channel.cpp | 165 + .../unit/experimental/coro/allocator.cpp | 113 + .../tests/unit/experimental/coro/cancel.cpp | 39 +- .../tests/unit/experimental/coro/co_spawn.cpp | 67 + .../unit/experimental/coro/exception.cpp | 6 +- .../tests/unit/experimental/coro/executor.cpp | 116 + .../tests/unit/experimental/coro/partial.cpp | 6 +- .../unit/experimental/coro/simple_test.cpp | 4 +- .../unit/experimental/coro/stack_test.cpp | 4 +- .../tests/unit/experimental/coro/use_coro.cpp | 6 +- .../unit/experimental/parallel_group.cpp | 25 + .../src/tests/unit/experimental/promise.cpp | 326 +- 3rdparty/asio/src/tests/unit/file_base.cpp | 25 + .../src/tests/unit/generic/basic_endpoint.cpp | 2 +- .../tests/unit/generic/datagram_protocol.cpp | 41 +- .../src/tests/unit/generic/raw_protocol.cpp | 42 +- .../unit/generic/seq_packet_protocol.cpp | 19 +- .../tests/unit/generic/stream_protocol.cpp | 27 +- .../src/tests/unit/high_resolution_timer.cpp | 2 +- 3rdparty/asio/src/tests/unit/io_context.cpp | 103 +- .../asio/src/tests/unit/io_context_strand.cpp | 15 +- 3rdparty/asio/src/tests/unit/ip/address.cpp | 6 +- .../asio/src/tests/unit/ip/address_v4.cpp | 4 +- .../src/tests/unit/ip/address_v4_iterator.cpp | 2 +- .../src/tests/unit/ip/address_v4_range.cpp | 2 +- .../asio/src/tests/unit/ip/address_v6.cpp | 4 +- .../src/tests/unit/ip/address_v6_iterator.cpp | 2 +- .../src/tests/unit/ip/address_v6_range.cpp | 2 +- .../asio/src/tests/unit/ip/basic_endpoint.cpp | 2 +- .../asio/src/tests/unit/ip/basic_resolver.cpp | 2 +- .../tests/unit/ip/basic_resolver_entry.cpp | 2 +- .../tests/unit/ip/basic_resolver_iterator.cpp | 2 +- .../tests/unit/ip/basic_resolver_query.cpp | 2 +- 3rdparty/asio/src/tests/unit/ip/host_name.cpp | 4 +- 3rdparty/asio/src/tests/unit/ip/icmp.cpp | 67 +- 3rdparty/asio/src/tests/unit/ip/multicast.cpp | 4 +- .../asio/src/tests/unit/ip/network_v4.cpp | 4 +- .../asio/src/tests/unit/ip/network_v6.cpp | 4 +- .../src/tests/unit/ip/resolver_query_base.cpp | 2 +- 3rdparty/asio/src/tests/unit/ip/tcp.cpp | 111 +- 3rdparty/asio/src/tests/unit/ip/udp.cpp | 81 +- 3rdparty/asio/src/tests/unit/ip/unicast.cpp | 4 +- 3rdparty/asio/src/tests/unit/ip/v6_only.cpp | 4 +- .../asio/src/tests/unit/is_read_buffered.cpp | 2 +- .../asio/src/tests/unit/is_write_buffered.cpp | 2 +- .../src/tests/unit/local/basic_endpoint.cpp | 2 +- .../src/tests/unit/local/connect_pair.cpp | 4 +- .../tests/unit/local/datagram_protocol.cpp | 4 +- .../tests/unit/local/seq_packet_protocol.cpp | 209 + .../src/tests/unit/local/stream_protocol.cpp | 4 +- .../asio/src/tests/unit/packaged_task.cpp | 2 +- 3rdparty/asio/src/tests/unit/placeholders.cpp | 2 +- .../src/tests/unit/posix/basic_descriptor.cpp | 2 +- .../unit/posix/basic_stream_descriptor.cpp | 2 +- .../asio/src/tests/unit/posix/descriptor.cpp | 2 +- .../src/tests/unit/posix/descriptor_base.cpp | 2 +- .../tests/unit/posix/stream_descriptor.cpp | 23 +- 3rdparty/asio/src/tests/unit/post.cpp | 2 +- 3rdparty/asio/src/tests/unit/prepend.cpp | 58 + .../src/tests/unit/random_access_file.cpp | 171 + 3rdparty/asio/src/tests/unit/read.cpp | 76 +- 3rdparty/asio/src/tests/unit/read_at.cpp | 68 +- 3rdparty/asio/src/tests/unit/read_until.cpp | 37 +- .../asio/src/tests/unit/readable_pipe.cpp | 131 + .../src/tests/unit/recycling_allocator.cpp | 80 + .../asio/src/tests/unit/redirect_error.cpp | 100 +- .../asio/src/tests/unit/registered_buffer.cpp | 111 + 3rdparty/asio/src/tests/unit/serial_port.cpp | 20 +- .../asio/src/tests/unit/serial_port_base.cpp | 4 +- 3rdparty/asio/src/tests/unit/signal_set.cpp | 7 +- .../asio/src/tests/unit/signal_set_base.cpp | 30 + 3rdparty/asio/src/tests/unit/socket_base.cpp | 4 +- 3rdparty/asio/src/tests/unit/ssl/context.cpp | 2 +- .../asio/src/tests/unit/ssl/context_base.cpp | 2 +- 3rdparty/asio/src/tests/unit/ssl/error.cpp | 2 +- .../tests/unit/ssl/host_name_verification.cpp | 2 +- .../tests/unit/ssl/rfc2818_verification.cpp | 2 +- 3rdparty/asio/src/tests/unit/ssl/stream.cpp | 8 +- .../asio/src/tests/unit/ssl/stream_base.cpp | 2 +- .../src/tests/unit/static_thread_pool.cpp | 2 +- 3rdparty/asio/src/tests/unit/steady_timer.cpp | 2 +- 3rdparty/asio/src/tests/unit/strand.cpp | 94 +- 3rdparty/asio/src/tests/unit/stream_file.cpp | 173 + 3rdparty/asio/src/tests/unit/streambuf.cpp | 2 +- .../asio/src/tests/unit/system_context.cpp | 2 +- .../asio/src/tests/unit/system_executor.cpp | 93 +- 3rdparty/asio/src/tests/unit/system_timer.cpp | 39 +- 3rdparty/asio/src/tests/unit/this_coro.cpp | 2 +- 3rdparty/asio/src/tests/unit/thread.cpp | 2 +- 3rdparty/asio/src/tests/unit/thread_pool.cpp | 315 +- 3rdparty/asio/src/tests/unit/time_traits.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/buffer.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/executor.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/internet.cpp | 2 +- .../asio/src/tests/unit/ts/io_context.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/net.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/netfwd.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/socket.cpp | 2 +- 3rdparty/asio/src/tests/unit/ts/timer.cpp | 2 +- 3rdparty/asio/src/tests/unit/unit_test.hpp | 2 +- .../asio/src/tests/unit/use_awaitable.cpp | 2 +- 3rdparty/asio/src/tests/unit/use_future.cpp | 8 +- .../asio/src/tests/unit/uses_executor.cpp | 2 +- 3rdparty/asio/src/tests/unit/wait_traits.cpp | 2 +- .../unit/windows/basic_object_handle.cpp | 2 +- .../unit/windows/basic_overlapped_handle.cpp | 2 +- .../windows/basic_random_access_handle.cpp | 2 +- .../unit/windows/basic_stream_handle.cpp | 2 +- .../src/tests/unit/windows/object_handle.cpp | 16 +- .../tests/unit/windows/overlapped_handle.cpp | 2 +- .../src/tests/unit/windows/overlapped_ptr.cpp | 4 +- .../unit/windows/random_access_handle.cpp | 25 +- .../src/tests/unit/windows/stream_handle.cpp | 25 +- .../asio/src/tests/unit/writable_pipe.cpp | 136 + 3rdparty/asio/src/tests/unit/write.cpp | 84 +- 3rdparty/asio/src/tests/unit/write_at.cpp | 76 +- 3rdparty/asio/src/tools/handlerlive.pl | 2 +- 3rdparty/asio/src/tools/handlertree.pl | 2 +- 3rdparty/asio/src/tools/handlerviz.pl | 2 +- 3rdparty/asio/test-driver | 38 +- COPYING | 2 +- 1404 files changed, 71542 insertions(+), 58845 deletions(-) create mode 100644 3rdparty/asio/asio.pc.in create mode 100644 3rdparty/asio/include/asio/any_completion_executor.hpp create mode 100644 3rdparty/asio/include/asio/any_completion_handler.hpp create mode 100644 3rdparty/asio/include/asio/append.hpp create mode 100644 3rdparty/asio/include/asio/as_tuple.hpp create mode 100644 3rdparty/asio/include/asio/associated_immediate_executor.hpp create mode 100644 3rdparty/asio/include/asio/basic_file.hpp create mode 100644 3rdparty/asio/include/asio/basic_random_access_file.hpp create mode 100644 3rdparty/asio/include/asio/basic_readable_pipe.hpp create mode 100644 3rdparty/asio/include/asio/basic_stream_file.hpp create mode 100644 3rdparty/asio/include/asio/basic_writable_pipe.hpp create mode 100644 3rdparty/asio/include/asio/bind_allocator.hpp create mode 100644 3rdparty/asio/include/asio/bind_immediate_executor.hpp create mode 100644 3rdparty/asio/include/asio/buffer_registration.hpp create mode 100644 3rdparty/asio/include/asio/connect_pipe.hpp create mode 100644 3rdparty/asio/include/asio/consign.hpp create mode 100644 3rdparty/asio/include/asio/deferred.hpp delete mode 100644 3rdparty/asio/include/asio/detail/bulk_executor_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/composed_work.hpp create mode 100644 3rdparty/asio/include/asio/detail/exception.hpp delete mode 100644 3rdparty/asio/include/asio/detail/gcc_arm_fenced_block.hpp delete mode 100644 3rdparty/asio/include/asio/detail/gcc_hppa_fenced_block.hpp delete mode 100644 3rdparty/asio/include/asio/detail/gcc_sync_fenced_block.hpp delete mode 100644 3rdparty/asio/include/asio/detail/gcc_x86_fenced_block.hpp delete mode 100644 3rdparty/asio/include/asio/detail/handler_invoke_helpers.hpp create mode 100644 3rdparty/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp create mode 100644 3rdparty/asio/include/asio/detail/impl/io_uring_file_service.ipp create mode 100644 3rdparty/asio/include/asio/detail/impl/io_uring_service.hpp create mode 100644 3rdparty/asio/include/asio/detail/impl/io_uring_service.ipp create mode 100644 3rdparty/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp rename 3rdparty/asio/include/asio/detail/impl/{reactive_serial_port_service.ipp => posix_serial_port_service.ipp} (68%) create mode 100644 3rdparty/asio/include/asio/detail/impl/win_iocp_file_service.ipp create mode 100644 3rdparty/asio/include/asio/detail/initiate_defer.hpp create mode 100644 3rdparty/asio/include/asio/detail/initiate_dispatch.hpp create mode 100644 3rdparty/asio/include/asio/detail/initiate_post.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_descriptor_read_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_descriptor_service.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_descriptor_write_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_file_service.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_null_buffers_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_operation.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_service.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_accept_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_connect_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_recv_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_send_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_sendto_op.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_service.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_socket_service_base.hpp create mode 100644 3rdparty/asio/include/asio/detail/io_uring_wait_op.hpp delete mode 100644 3rdparty/asio/include/asio/detail/macos_fenced_block.hpp rename 3rdparty/asio/include/asio/detail/{reactive_serial_port_service.hpp => posix_serial_port_service.hpp} (81%) delete mode 100644 3rdparty/asio/include/asio/detail/reactor_fwd.hpp create mode 100644 3rdparty/asio/include/asio/detail/scheduler_task.hpp delete mode 100644 3rdparty/asio/include/asio/detail/solaris_fenced_block.hpp create mode 100644 3rdparty/asio/include/asio/detail/utility.hpp delete mode 100644 3rdparty/asio/include/asio/detail/variadic_templates.hpp delete mode 100644 3rdparty/asio/include/asio/detail/win_fenced_block.hpp create mode 100644 3rdparty/asio/include/asio/detail/win_iocp_file_service.hpp delete mode 100644 3rdparty/asio/include/asio/execution/bulk_execute.hpp delete mode 100644 3rdparty/asio/include/asio/execution/bulk_guarantee.hpp delete mode 100644 3rdparty/asio/include/asio/execution/connect.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/as_invocable.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/as_operation.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/as_receiver.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/bulk_sender.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/submit_receiver.hpp delete mode 100644 3rdparty/asio/include/asio/execution/detail/void_receiver.hpp delete mode 100644 3rdparty/asio/include/asio/execution/execute.hpp delete mode 100644 3rdparty/asio/include/asio/execution/impl/receiver_invocation_error.ipp delete mode 100644 3rdparty/asio/include/asio/execution/operation_state.hpp delete mode 100644 3rdparty/asio/include/asio/execution/receiver.hpp delete mode 100644 3rdparty/asio/include/asio/execution/receiver_invocation_error.hpp delete mode 100644 3rdparty/asio/include/asio/execution/schedule.hpp delete mode 100644 3rdparty/asio/include/asio/execution/scheduler.hpp delete mode 100644 3rdparty/asio/include/asio/execution/sender.hpp delete mode 100644 3rdparty/asio/include/asio/execution/set_done.hpp delete mode 100644 3rdparty/asio/include/asio/execution/set_error.hpp delete mode 100644 3rdparty/asio/include/asio/execution/set_value.hpp delete mode 100644 3rdparty/asio/include/asio/execution/start.hpp delete mode 100644 3rdparty/asio/include/asio/execution/submit.hpp create mode 100644 3rdparty/asio/include/asio/experimental/basic_channel.hpp create mode 100644 3rdparty/asio/include/asio/experimental/basic_concurrent_channel.hpp create mode 100644 3rdparty/asio/include/asio/experimental/channel.hpp create mode 100644 3rdparty/asio/include/asio/experimental/channel_error.hpp create mode 100644 3rdparty/asio/include/asio/experimental/channel_traits.hpp create mode 100644 3rdparty/asio/include/asio/experimental/co_composed.hpp create mode 100644 3rdparty/asio/include/asio/experimental/co_spawn.hpp create mode 100644 3rdparty/asio/include/asio/experimental/concurrent_channel.hpp rename 3rdparty/asio/include/asio/experimental/{detail => }/coro_traits.hpp (60%) create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_handler.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_message.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_operation.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_payload.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_receive_op.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_send_functions.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_send_op.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/channel_service.hpp delete mode 100644 3rdparty/asio/include/asio/experimental/detail/completion_handler_erasure.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/coro_completion_handler.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/has_signature.hpp create mode 100644 3rdparty/asio/include/asio/experimental/detail/impl/channel_service.hpp delete mode 100644 3rdparty/asio/include/asio/experimental/impl/append.hpp delete mode 100644 3rdparty/asio/include/asio/experimental/impl/as_tuple.hpp create mode 100644 3rdparty/asio/include/asio/experimental/impl/channel_error.ipp create mode 100644 3rdparty/asio/include/asio/experimental/impl/co_composed.hpp create mode 100644 3rdparty/asio/include/asio/experimental/impl/coro.hpp delete mode 100644 3rdparty/asio/include/asio/experimental/impl/deferred.hpp delete mode 100644 3rdparty/asio/include/asio/experimental/impl/prepend.hpp create mode 100644 3rdparty/asio/include/asio/experimental/impl/use_coro.hpp create mode 100644 3rdparty/asio/include/asio/experimental/impl/use_promise.hpp create mode 100644 3rdparty/asio/include/asio/experimental/use_promise.hpp create mode 100644 3rdparty/asio/include/asio/file_base.hpp delete mode 100644 3rdparty/asio/include/asio/handler_alloc_hook.hpp delete mode 100644 3rdparty/asio/include/asio/handler_invoke_hook.hpp create mode 100644 3rdparty/asio/include/asio/impl/any_completion_executor.ipp create mode 100644 3rdparty/asio/include/asio/impl/any_io_executor.ipp create mode 100644 3rdparty/asio/include/asio/impl/append.hpp create mode 100644 3rdparty/asio/include/asio/impl/as_tuple.hpp create mode 100644 3rdparty/asio/include/asio/impl/cancellation_signal.ipp delete mode 100644 3rdparty/asio/include/asio/impl/compose.hpp create mode 100644 3rdparty/asio/include/asio/impl/connect_pipe.hpp create mode 100644 3rdparty/asio/include/asio/impl/connect_pipe.ipp create mode 100644 3rdparty/asio/include/asio/impl/consign.hpp delete mode 100644 3rdparty/asio/include/asio/impl/defer.hpp create mode 100644 3rdparty/asio/include/asio/impl/deferred.hpp delete mode 100644 3rdparty/asio/include/asio/impl/dispatch.hpp delete mode 100644 3rdparty/asio/include/asio/impl/handler_alloc_hook.ipp delete mode 100644 3rdparty/asio/include/asio/impl/post.hpp create mode 100644 3rdparty/asio/include/asio/impl/prepend.hpp create mode 100644 3rdparty/asio/include/asio/is_contiguous_iterator.hpp create mode 100644 3rdparty/asio/include/asio/local/seq_packet_protocol.hpp create mode 100644 3rdparty/asio/include/asio/prepend.hpp create mode 100644 3rdparty/asio/include/asio/random_access_file.hpp create mode 100644 3rdparty/asio/include/asio/readable_pipe.hpp create mode 100644 3rdparty/asio/include/asio/recycling_allocator.hpp create mode 100644 3rdparty/asio/include/asio/registered_buffer.hpp create mode 100644 3rdparty/asio/include/asio/signal_set_base.hpp create mode 100644 3rdparty/asio/include/asio/stream_file.hpp delete mode 100644 3rdparty/asio/include/asio/traits/bulk_execute_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/bulk_execute_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/connect_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/connect_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/execute_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/schedule_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/schedule_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_done_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_done_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_error_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_error_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_value_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/set_value_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/start_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/start_member.hpp delete mode 100644 3rdparty/asio/include/asio/traits/submit_free.hpp delete mode 100644 3rdparty/asio/include/asio/traits/submit_member.hpp create mode 100644 3rdparty/asio/include/asio/writable_pipe.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/Makefile.am delete mode 100644 3rdparty/asio/src/examples/cpp03/Makefile.in delete mode 100644 3rdparty/asio/src/examples/cpp03/allocation/server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/buffers/reference_counted.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/chat/chat_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/chat/chat_message.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/chat/chat_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/chat/posix_chat_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/fork/daemon.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/fork/process_per_connection.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/connection.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/connection.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/connection_manager.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/connection_manager.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/header.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/main.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/mime_types.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/mime_types.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/reply.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/reply.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/request_handler.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/request_handler.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server/server.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server2/connection.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server3/connection.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server4/request.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server4/request_parser.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/http/server4/request_parser.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/iostreams/http_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/local/connect_pair.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/local/iostream_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/local/stream_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/local/stream_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/multicast/receiver.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/multicast/sender.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/socks4/socks4.hpp delete mode 100644 3rdparty/asio/src/examples/cpp03/socks4/sync_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/spawn/echo_server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/spawn/parallel_grep.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/ssl/ca.pem delete mode 100644 3rdparty/asio/src/examples/cpp03/ssl/client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/ssl/dh2048.pem delete mode 100644 3rdparty/asio/src/examples/cpp03/ssl/server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/ssl/server.pem delete mode 100644 3rdparty/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/timeouts/server.cpp delete mode 100644 3rdparty/asio/src/examples/cpp03/timers/time_t_timer.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/chat/posix_chat_client.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/deferred/deferred_1.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/deferred/deferred_2.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/files/async_file_copy.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/files/blocking_file_copy.cpp rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/client/async_client.cpp (85%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/client/sync_client.cpp (95%) create mode 100644 3rdparty/asio/src/examples/cpp11/http/server2/connection.cpp rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/connection.hpp (58%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/header.hpp (88%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/io_context_pool.cpp (75%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/io_context_pool.hpp (69%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/main.cpp (82%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/mime_types.cpp (92%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/mime_types.hpp (90%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/reply.cpp (97%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/reply.hpp (95%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/request.hpp (90%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/request_handler.cpp (94%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/request_handler.hpp (85%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/request_parser.cpp (74%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/request_parser.hpp (68%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/server.cpp (63%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server2/server.hpp (71%) create mode 100644 3rdparty/asio/src/examples/cpp11/http/server3/connection.cpp rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/connection.hpp (54%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/header.hpp (88%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/main.cpp (82%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/mime_types.cpp (92%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/mime_types.hpp (90%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/reply.cpp (97%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/reply.hpp (95%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/request.hpp (90%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/request_handler.cpp (94%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/request_handler.hpp (85%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/request_parser.cpp (74%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/request_parser.hpp (68%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/server.cpp (56%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server3/server.hpp (71%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/file_handler.cpp (93%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/file_handler.hpp (94%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/header.hpp (88%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/main.cpp (87%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/mime_types.cpp (92%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/mime_types.hpp (90%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/reply.cpp (97%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/reply.hpp (95%) rename 3rdparty/asio/src/examples/{cpp03/http/server => cpp11/http/server4}/request.hpp (70%) rename 3rdparty/asio/src/examples/{cpp03/http/server => cpp11/http/server4}/request_parser.cpp (74%) rename 3rdparty/asio/src/examples/{cpp03/http/server => cpp11/http/server4}/request_parser.hpp (62%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/server.cpp (91%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/http/server4/server.hpp (69%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/icmp/icmp_header.hpp (98%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/icmp/ipv4_header.hpp (98%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/icmp/ping.cpp (93%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/iostreams/daytime_client.cpp (92%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/iostreams/daytime_server.cpp (90%) create mode 100644 3rdparty/asio/src/examples/cpp11/local/fd_passing_stream_client.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/local/fd_passing_stream_server.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/parallel_group/ranged_wait_for_all.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/parallel_group/wait_for_all.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/parallel_group/wait_for_one.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/parallel_group/wait_for_one_error.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/parallel_group/wait_for_one_success.cpp rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/porthopper/client.cpp (74%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/porthopper/protocol.hpp (93%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/porthopper/server.cpp (84%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/serialization/client.cpp (94%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/serialization/connection.hpp (73%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/serialization/server.cpp (86%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/serialization/stock.hpp (93%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/services/basic_logger.hpp (91%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/services/daytime_client.cpp (89%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/services/logger.hpp (88%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/services/logger_service.cpp (79%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/services/logger_service.hpp (76%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/ssl/README (82%) create mode 100644 3rdparty/asio/src/examples/cpp11/ssl/ca.pem create mode 100644 3rdparty/asio/src/examples/cpp11/ssl/dh4096.pem create mode 100644 3rdparty/asio/src/examples/cpp11/ssl/server.pem rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime1/client.cpp (82%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime2/server.cpp (89%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime3/server.cpp (78%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime4/client.cpp (84%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime5/server.cpp (84%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime6/server.cpp (73%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/daytime7/server.cpp (74%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/timer1/timer.cpp (86%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/timer2/timer.cpp (80%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/timer3/timer.cpp (77%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/timer4/timer.cpp (78%) rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/tutorial/timer5/timer.cpp (79%) create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/line_reader.hpp create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/main.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/sleep.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/sleep.hpp create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/stdin_line_reader.cpp create mode 100644 3rdparty/asio/src/examples/cpp11/type_erasure/stdin_line_reader.hpp rename 3rdparty/asio/src/examples/{cpp03 => cpp11}/windows/transmit_file.cpp (86%) create mode 100644 3rdparty/asio/src/examples/cpp14/operations/c_callback_wrapper.cpp create mode 100644 3rdparty/asio/src/examples/cpp14/operations/callback_wrapper.cpp create mode 100644 3rdparty/asio/src/examples/cpp14/parallel_group/ranged_wait_for_all.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/Makefile.am create mode 100644 3rdparty/asio/src/examples/cpp20/Makefile.in create mode 100644 3rdparty/asio/src/examples/cpp20/channels/mutual_exclusion_1.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/channels/mutual_exclusion_2.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/channels/throttling_proxy.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/chat_server.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server_with_as_single_default.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server_with_as_tuple_default.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server_with_default.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server_with_deferred.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/echo_server_with_deferred_default.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/refactored_echo_server.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/coroutines/timeout.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/invocation/completion_executor.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/c_callback_wrapper.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/callback_wrapper.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_1.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_2.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_3.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_4.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_5.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_6.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_7.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/operations/composed_8.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/line_reader.hpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/main.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/sleep.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/sleep.hpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/stdin_line_reader.cpp create mode 100644 3rdparty/asio/src/examples/cpp20/type_erasure/stdin_line_reader.hpp create mode 100644 3rdparty/asio/src/tests/unit/any_completion_executor.cpp create mode 100644 3rdparty/asio/src/tests/unit/any_completion_handler.cpp create mode 100644 3rdparty/asio/src/tests/unit/any_io_executor.cpp create mode 100644 3rdparty/asio/src/tests/unit/append.cpp create mode 100644 3rdparty/asio/src/tests/unit/as_tuple.cpp create mode 100644 3rdparty/asio/src/tests/unit/associated_immediate_executor.cpp create mode 100644 3rdparty/asio/src/tests/unit/basic_file.cpp create mode 100644 3rdparty/asio/src/tests/unit/basic_random_access_file.cpp create mode 100644 3rdparty/asio/src/tests/unit/basic_readable_pipe.cpp create mode 100644 3rdparty/asio/src/tests/unit/basic_stream_file.cpp create mode 100644 3rdparty/asio/src/tests/unit/basic_writable_pipe.cpp create mode 100644 3rdparty/asio/src/tests/unit/bind_allocator.cpp create mode 100644 3rdparty/asio/src/tests/unit/bind_immediate_executor.cpp create mode 100644 3rdparty/asio/src/tests/unit/buffer_registration.cpp create mode 100644 3rdparty/asio/src/tests/unit/connect_pipe.cpp create mode 100644 3rdparty/asio/src/tests/unit/consign.cpp rename 3rdparty/asio/src/tests/unit/{experimental => }/deferred.cpp (69%) delete mode 100644 3rdparty/asio/src/tests/unit/execution/bulk_execute.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/bulk_guarantee.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/connect.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/execute.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/operation_state.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/receiver.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/schedule.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/scheduler.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/sender.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/set_done.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/set_error.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/set_value.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/start.cpp delete mode 100644 3rdparty/asio/src/tests/unit/execution/submit.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/basic_channel.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/basic_concurrent_channel.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/channel.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/channel_traits.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/co_composed.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/concurrent_channel.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/coro/allocator.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/coro/co_spawn.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/coro/executor.cpp create mode 100644 3rdparty/asio/src/tests/unit/experimental/parallel_group.cpp create mode 100644 3rdparty/asio/src/tests/unit/file_base.cpp create mode 100644 3rdparty/asio/src/tests/unit/local/seq_packet_protocol.cpp create mode 100644 3rdparty/asio/src/tests/unit/prepend.cpp create mode 100644 3rdparty/asio/src/tests/unit/random_access_file.cpp create mode 100644 3rdparty/asio/src/tests/unit/readable_pipe.cpp create mode 100644 3rdparty/asio/src/tests/unit/recycling_allocator.cpp create mode 100644 3rdparty/asio/src/tests/unit/registered_buffer.cpp create mode 100644 3rdparty/asio/src/tests/unit/signal_set_base.cpp create mode 100644 3rdparty/asio/src/tests/unit/stream_file.cpp create mode 100644 3rdparty/asio/src/tests/unit/writable_pipe.cpp diff --git a/3rdparty/asio/COPYING b/3rdparty/asio/COPYING index 532cec6c8f9db..da1a2db4d7bbe 100644 --- a/3rdparty/asio/COPYING +++ b/3rdparty/asio/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/3rdparty/asio/Makefile.am b/3rdparty/asio/Makefile.am index 0acdc02d9a1e2..bc4f75b355359 100644 --- a/3rdparty/asio/Makefile.am +++ b/3rdparty/asio/Makefile.am @@ -1,5 +1,8 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip +pkgconfig_DATA = asio.pc +pkgconfigdir = $(libdir)/pkgconfig + SUBDIRS = include src MAINTAINERCLEANFILES = \ diff --git a/3rdparty/asio/Makefile.in b/3rdparty/asio/Makefile.in index 6d79b0ec1d4ab..e3f325123c4a4 100644 --- a/3rdparty/asio/Makefile.in +++ b/3rdparty/asio/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -13,6 +13,7 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -97,7 +98,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = asio.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -126,6 +127,35 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgconfigdir)" +DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -151,12 +181,10 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in COPYING INSTALL README compile \ - config.guess config.sub depcomp install-sh missing +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/asio.pc.in COPYING \ + INSTALL README compile config.guess config.sub depcomp \ + install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -195,6 +223,8 @@ am__relativize = \ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip GZIP_ENV = --best DIST_TARGETS = dist-bzip2 dist-gzip dist-zip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -210,8 +240,9 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -220,9 +251,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ -GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -289,9 +319,11 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = $(libdir)/pkgconfig prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -301,6 +333,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip +pkgconfig_DATA = asio.pc SUBDIRS = include src MAINTAINERCLEANFILES = \ $(srcdir)/aclocal.m4 \ @@ -354,6 +387,29 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): +asio.pc: $(top_builddir)/config.status $(srcdir)/asio.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -460,7 +516,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am @@ -543,6 +598,10 @@ dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -584,6 +643,8 @@ distcheck: dist eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -599,7 +660,7 @@ distcheck: dist $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -652,9 +713,12 @@ distcleancheck: distclean exit 1; } >&2 check-am: all-am check: check-recursive -all-am: Makefile +all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive @@ -707,7 +771,7 @@ info: info-recursive info-am: -install-data-am: +install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive @@ -753,7 +817,7 @@ ps: ps-recursive ps-am: -uninstall-am: +uninstall-am: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) install-am install-strip @@ -761,16 +825,17 @@ uninstall-am: am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ + dist-zstd distcheck distclean distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgconfigDATA .PRECIOUS: Makefile diff --git a/3rdparty/asio/README b/3rdparty/asio/README index a5aa5cb4cf140..7c7d49dd49ecb 100644 --- a/3rdparty/asio/README +++ b/3rdparty/asio/README @@ -1,4 +1,4 @@ -asio version 1.20.0 -Released Saturday, 16 October 2021. +asio version 1.30.2 +Released Tuesday, 16 April 2024. See doc/index.html for API documentation and a tutorial. diff --git a/3rdparty/asio/aclocal.m4 b/3rdparty/asio/aclocal.m4 index a49964a8b4485..00ffbd53c14c9 100644 --- a/3rdparty/asio/aclocal.m4 +++ b/3rdparty/asio/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,13 +14,289 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, +[m4_warning([this file was generated for autoconf 2.71. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.2]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $2]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR + +# Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +311,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], +m4_if([$1], [1.16.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +327,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl +[AM_AUTOMAKE_VERSION([1.16.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +386,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +417,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,7 +608,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -371,7 +647,9 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi @@ -398,7 +676,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -426,6 +704,10 @@ m4_defn([AC_PROG_CC]) # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl @@ -462,7 +744,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl @@ -514,6 +796,20 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This @@ -595,7 +891,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -616,7 +912,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -638,7 +934,7 @@ AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -673,7 +969,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -716,7 +1012,7 @@ AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -737,12 +1033,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -755,7 +1046,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -784,7 +1075,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -831,7 +1122,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -850,7 +1141,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -931,7 +1222,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -991,7 +1282,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1019,7 +1310,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1038,7 +1329,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/3rdparty/asio/asio.pc.in b/3rdparty/asio/asio.pc.in new file mode 100644 index 0000000000000..b93eb673dacc5 --- /dev/null +++ b/3rdparty/asio/asio.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ +Description: A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} +Lflags: +Requires: +Requires.private: diff --git a/3rdparty/asio/compile b/3rdparty/asio/compile index 531136b068ef0..df363c8fbfbcb 100755 --- a/3rdparty/asio/compile +++ b/3rdparty/asio/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -53,7 +53,7 @@ func_file_conv () MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ func_file_conv () mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/3rdparty/asio/config.guess b/3rdparty/asio/config.guess index 9afd676206481..e81d3ae7c210b 100755 --- a/3rdparty/asio/config.guess +++ b/3rdparty/asio/config.guess @@ -1,8 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2013-11-29' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-06-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ timestamp='2013-11-29' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -24,12 +26,20 @@ timestamp='2013-11-29' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` @@ -39,7 +49,7 @@ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,7 +94,8 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 +# Just in case it came from the environment. +GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -96,66 +107,90 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval $set_cc_for_build - cat <<-EOF > $dummy.c + set_cc_for_build + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -167,22 +202,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -197,45 +242,80 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -249,163 +329,158 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" + set_cc_for_build + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -415,44 +490,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -461,95 +536,96 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux${UNAME_RELEASE} + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux${UNAME_RELEASE} + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -560,76 +636,77 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -662,13 +739,13 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if test "$HP_ARCH" = hppa2.0w then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -679,23 +756,23 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -720,38 +797,38 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -759,139 +836,145 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case $UNAME_PROCESSOR in amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; esac - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case $UNAME_MACHINE in x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -901,172 +984,226 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) - eval $set_cc_for_build + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - or1k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; - or32:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1074,12 +1211,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1089,43 +1226,43 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo ${UNAME_MACHINE}-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) @@ -1133,9 +1270,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1144,238 +1281,281 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv${UNAME_RELEASE} + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; + GUESS=i586-pc-haiku + ;; x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=x86_64-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-?:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac -eval $set_cc_for_build -cat >$dummy.c < "$dummy.c" < -# include +#include +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif #endif main () { @@ -1388,20 +1568,12 @@ main () #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" -#endif - ); exit (0); -#endif + "" #endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); + ); exit (0); #endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) @@ -1443,39 +1615,54 @@ main () #endif #if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); + struct utsname un; + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif #endif #if defined (alliant) && defined (i860) @@ -1486,54 +1673,46 @@ main () } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } +echo "$0: unable to guess system type" >&2 -# Convex versions that predate uname can use getsysinfo(1) +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 < in order to provide the needed -information to handle your system. +our_year=`echo $timestamp | sed 's,-.*,,'` +thisyear=`date +%Y` +# shellcheck disable=SC2003 +script_age=`expr "$thisyear" - "$our_year"` +if test "$script_age" -lt 3 ; then + cat >&2 </dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF +fi exit 1 # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/3rdparty/asio/config.sub b/3rdparty/asio/config.sub index 61cb4bc22db8e..d74fb6deac942 100755 --- a/3rdparty/asio/config.sub +++ b/3rdparty/asio/config.sub @@ -1,8 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2013 Free Software Foundation, Inc. +# Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2013-10-01' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2021-08-14' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -15,7 +17,7 @@ timestamp='2013-10-01' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -25,7 +27,7 @@ timestamp='2013-10-01' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -33,7 +35,7 @@ timestamp='2013-10-01' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -50,15 +52,21 @@ timestamp='2013-10-01' # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. -Operation modes: +Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit @@ -68,7 +76,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2013 Free Software Foundation, Inc. +Copyright 1992-2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -90,12 +98,12 @@ while test $# -gt 0 ; do - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -111,1211 +119,1181 @@ case $# in exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 \ - | or1k | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | we32k \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + op50n) + cpu=hppa1.1 + vendor=oki ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + op60c) + cpu=hppa1.1 + vendor=oki ;; - xscaleeb) - basic_machine=armeb-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - - xscaleel) - basic_machine=armel-unknown + orion105) + cpu=clipper + vendor=highlevel ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; + # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 + cpu=m68k + vendor=motorola ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent + cpu=m68000 + vendor=convergent ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=m68k + vendor=tti ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + pc532) + cpu=ns32k + vendor=pc532 ;; pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + cpu=pn + vendor=gould ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff + cpu=i386 + vendor=ibm ;; rm[46]00) - basic_machine=mips-siemens + cpu=mips + vendor=siemens ;; rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi + cpu=romp + vendor=ibm ;; - sb1) - basic_machine=mipsisa64sb1-unknown + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - sde) - basic_machine=mipsisa32-sde - os=-elf + tower | tower-32) + cpu=m68k + vendor=ncr ;; - sei) - basic_machine=mips-sei - os=-seiux + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - sequent) - basic_machine=i386-sequent + w65) + cpu=w65 + vendor=wdc ;; - sh) - basic_machine=sh-hitachi - os=-hms + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - sh5el) - basic_machine=sh5le-unknown + none) + cpu=none + vendor=none ;; - sh64) - basic_machine=sh64-unknown + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb | arc32 | arc64 \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1323,200 +1301,215 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1529,264 +1522,362 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf - ;; - or1k-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; - *-be) - os=-beos + pru-*) + os=elf ;; - *-haiku) - os=-haiku + *-be) + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; - *-next ) - os=-nextstep + *-next) + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/3rdparty/asio/configure b/3rdparty/asio/configure index bd9b1ca164492..3f97eb5ce3fbb 100755 --- a/3rdparty/asio/configure +++ b/3rdparty/asio/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for asio 1.20.0. +# Generated by GNU Autoconf 2.71 for asio 1.30.2. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -185,42 +167,52 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -228,14 +220,21 @@ fi esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -253,18 +252,19 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -291,6 +291,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -308,6 +309,14 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -322,7 +331,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -331,7 +340,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -370,12 +379,13 @@ as_fn_executable_p () # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -387,18 +397,27 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -410,9 +429,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,7 +458,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -483,7 +502,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -497,6 +516,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -510,6 +533,13 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -577,48 +607,44 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='asio' PACKAGE_TARNAME='asio' -PACKAGE_VERSION='1.20.0' -PACKAGE_STRING='asio 1.20.0' +PACKAGE_VERSION='1.30.2' +PACKAGE_STRING='asio 1.30.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="include/asio.hpp" # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_cxx_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS @@ -643,9 +669,7 @@ STANDALONE_FALSE STANDALONE_TRUE HAVE_OPENSSL_FALSE HAVE_OPENSSL_TRUE -EGREP -GREP -CXXCPP +pkgconfigdir RANLIB am__fastdepCXX_FALSE am__fastdepCXX_TRUE @@ -681,6 +705,9 @@ AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V +CSCOPE +ETAGS +CTAGS am__untar am__tar AMTAR @@ -726,6 +753,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -752,6 +780,7 @@ enable_option_checking enable_maintainer_mode enable_silent_rules enable_dependency_tracking +with_pkgconfigdir with_boost enable_separate_compilation enable_boost_coroutine @@ -767,8 +796,7 @@ LIBS CPPFLAGS CXX CXXFLAGS -CCC -CXXCPP' +CCC' # Initialize some variables set by options. @@ -807,6 +835,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -836,8 +865,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -878,9 +905,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -904,9 +931,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1059,6 +1086,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1108,9 +1144,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1124,9 +1160,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1170,9 +1206,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1188,7 +1224,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1196,7 +1232,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1252,7 +1288,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1309,7 +1345,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures asio 1.20.0 to adapt to many kinds of systems. +\`configure' configures asio 1.30.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1349,6 +1385,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1379,7 +1416,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of asio 1.20.0:";; + short | recursive ) echo "Configuration of asio 1.30.2:";; esac cat <<\_ACEOF @@ -1402,6 +1439,8 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pkgconfigdir pkg-config installation directory + ['${libdir}/pkgconfig'] --with-boost=DIR location of boost distribution --with-openssl=DIR location of openssl @@ -1415,7 +1454,6 @@ Some influential environment variables: you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1436,9 +1474,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1466,7 +1504,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1474,7 +1513,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1483,10 +1522,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -asio configure 1.20.0 -generated by GNU Autoconf 2.69 +asio configure 1.30.2 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1503,14 +1542,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1518,14 +1557,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1541,14 +1581,14 @@ fi ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1556,14 +1596,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1573,172 +1614,6 @@ fi } # ac_fn_cxx_try_compile -# ac_fn_cxx_try_cpp LINENO -# ------------------------ -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_cpp - -# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_cxx_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_mongrel - -# ac_fn_cxx_try_run LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_cxx_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_run - # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in @@ -1746,37 +1621,59 @@ fi ac_fn_cxx_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_compile +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by asio $as_me 1.20.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +It was created by asio $as_me 1.30.2, which was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1809,8 +1706,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1845,7 +1746,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -1880,11 +1781,13 @@ done # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -1895,8 +1798,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -1920,7 +1823,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -1928,14 +1831,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -1943,15 +1846,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -1959,8 +1862,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -1974,63 +1877,48 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2040,143 +1928,749 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif - MAINT=$MAINTAINER_MODE_TRUE +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; -am__api_version='1.16' +struct incomplete_array +{ + int datasize; + double data[]; +}; -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +# Test code for whether the C++ compiler supports C++98 (global declarations) +ac_cxx_conftest_cxx98_globals=' +// Does the compiler advertise C++98 conformance? +#if !defined __cplusplus || __cplusplus < 199711L +# error "Compiler does not advertise C++98 conformance" +#endif + +// These inclusions are to reject old compilers that +// lack the unsuffixed header files. +#include +#include + +// and are *not* freestanding headers in C++98. +extern void assert (int); +namespace std { + extern int strcmp (const char *, const char *); +} + +// Namespaces, exceptions, and templates were all added after "C++ 2.0". +using std::exception; +using std::strcmp; + +namespace { + +void test_exception_syntax() +{ + try { + throw "test"; + } catch (const char *s) { + // Extra parentheses suppress a warning when building autoconf itself, + // due to lint rules shared with more typical C programs. + assert (!(strcmp) (s, "test")); + } +} + +template struct test_template +{ + T const val; + explicit test_template(T t) : val(t) {} + template T add(U u) { return static_cast(u) + val; } +}; + +} // anonymous namespace +' + +# Test code for whether the C++ compiler supports C++98 (body of main) +ac_cxx_conftest_cxx98_main=' + assert (argc); + assert (! argv[0]); +{ + test_exception_syntax (); + test_template tt (2.0); + assert (tt.add (4) == 6.0); + assert (true && !false); +} +' + +# Test code for whether the C++ compiler supports C++11 (global declarations) +ac_cxx_conftest_cxx11_globals=' +// Does the compiler advertise C++ 2011 conformance? +#if !defined __cplusplus || __cplusplus < 201103L +# error "Compiler does not advertise C++11 conformance" +#endif + +namespace cxx11test +{ + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate + { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate + { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy + { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; + + // for testing lambda expressions + template Ret eval(Fn f, Ret v) + { + return f(v); + } + + // for testing variadic templates and trailing return types + template auto sum(V first) -> V + { + return first; + } + template auto sum(V first, Args... rest) -> V + { + return first + sum(rest...); + } +} +' + +# Test code for whether the C++ compiler supports C++11 (body of main) +ac_cxx_conftest_cxx11_main=' +{ + // Test auto and decltype + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + int total = 0; + for (auto i = a3; *i; ++i) { total += *i; } + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for + int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, + 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (auto &x : array) { x += 23; } +} +{ + // Test lambda expressions + using cxx11test::eval; + assert (eval ([](int x) { return x*2; }, 21) == 42); + double d = 2.0; + assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); + assert (d == 5.0); + assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); + assert (d == 5.0); +} +{ + // Test use of variadic templates + using cxx11test::sum; + auto a = sum(1); + auto b = sum(1, 2); + auto c = sum(1.0, 2.0, 3.0); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + test_template<::test_template> v(test_template(12)); +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +' + +# Test code for whether the C compiler supports C++11 (complete). +ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} +${ac_cxx_conftest_cxx11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + ${ac_cxx_conftest_cxx11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C++98 (complete). +ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + return ok; +} +" + +as_fn_append ac_header_cxx_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_cxx_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_cxx_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_cxx_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_cxx_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_cxx_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_cxx_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_cxx_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_cxx_list " unistd.h unistd_h HAVE_UNISTD_H" + +# Auxiliary files required by this configure script. +ac_aux_files="compile config.guess config.sub missing install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" break fi + ac_first_candidate=false + + as_found=false done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 fi + # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test ${enable_maintainer_mode+y} +then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else $as_nop + USE_MAINTAINER_MODE=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +am__api_version='1.16' -# Find a good install program. We prefer a C program (faster), + + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install @@ -2190,20 +2684,25 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -2213,13 +2712,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else @@ -2227,12 +2726,12 @@ case $as_dir/ in #(( echo one > conftest.one echo two > conftest.two mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -2248,7 +2747,7 @@ IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -2258,8 +2757,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2269,8 +2768,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' @@ -2324,8 +2823,8 @@ else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= @@ -2344,26 +2843,23 @@ test "$program_suffix" != NONE && # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` +program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` + # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then @@ -2383,11 +2879,12 @@ if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else @@ -2395,11 +2892,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2410,11 +2911,11 @@ fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2423,11 +2924,12 @@ if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else @@ -2435,11 +2937,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2450,11 +2956,11 @@ fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2462,8 +2968,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2475,25 +2981,31 @@ fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done @@ -2504,7 +3016,7 @@ IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then + if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a @@ -2514,18 +3026,19 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else @@ -2533,11 +3046,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2548,24 +3065,25 @@ fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @@ -2581,12 +3099,12 @@ esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } SET_MAKE= else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2600,7 +3118,8 @@ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : +if test ${enable_silent_rules+y} +then : enableval=$enable_silent_rules; fi @@ -2610,12 +3129,13 @@ case $enable_silent_rules in # ((( *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 @@ -2627,8 +3147,8 @@ else am_cv_make_support_nested_variables=no fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' @@ -2660,17 +3180,13 @@ fi # Define the identity of the package. PACKAGE='asio' - VERSION='1.20.0' + VERSION='1.30.2' -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. @@ -2702,47 +3218,16 @@ AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar plaintar pax cpio none' - -# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 -$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } - if test $am_uid -le $am_max_uid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 -$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } - if test $am_gid -le $am_max_gid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi +_am_tools='gnutar pax cpio none' + + - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 -$as_echo_n "checking how to create a ustar tar archive... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 +printf %s "checking how to create a pax tar archive... " >&6; } # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + _am_tools=${am_cv_prog_tar_pax-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in @@ -2754,8 +3239,8 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && break done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) @@ -2767,14 +3252,14 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } am__untar='tar xf -' ;; pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' + am__tar='pax -L -x pax -w "$$tardir"' + am__tar_='pax -L -x pax -w "$tardir"' am__untar='pax -r' ;; cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' + am__tar='find "$$tardir" -print | cpio -o -H pax -L' + am__tar_='find "$tardir" -print | cpio -o -H pax -L' + am__untar='cpio -i -H pax -d' ;; none) am__tar=false @@ -2785,7 +3270,7 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break + test -n "${am_cv_prog_tar_pax}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir @@ -2813,17 +3298,32 @@ $as_echo_n "checking how to create a ustar tar archive... " >&6; } done rm -rf conftest.dir - if ${am_cv_prog_tar_ustar+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_prog_tar_ustar=$_am_tool + if test ${am_cv_prog_tar_pax+y} +then : + printf %s "(cached) " >&6 +else $as_nop + am_cv_prog_tar_pax=$_am_tool fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 -$as_echo "$am_cv_prog_tar_ustar" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +printf "%s\n" "$am_cv_prog_tar_pax" >&6; } + + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi @@ -2870,26 +3370,29 @@ END fi -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_build_alias=$build_alias test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -2908,21 +3411,22 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -2941,12 +3445,21 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + + + + + + + DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out @@ -2982,11 +3495,12 @@ esac fi done rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : +if test ${enable_dependency_tracking+y} +then : enableval=$enable_dependency_tracking; fi @@ -3012,11 +3526,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3024,11 +3539,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3039,11 +3558,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3052,11 +3571,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3064,11 +3584,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3079,11 +3603,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3091,8 +3615,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3105,11 +3629,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3117,11 +3642,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3132,11 +3661,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3145,11 +3674,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3158,15 +3688,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3182,18 +3716,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3204,11 +3738,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3216,11 +3751,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3231,11 +3770,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3248,11 +3787,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3260,11 +3800,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3275,11 +3819,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3291,8 +3835,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3300,25 +3844,129 @@ esac fi fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3328,7 +3976,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3336,7 +3984,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3348,9 +3996,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -3371,11 +4019,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -3392,7 +4041,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -3408,44 +4057,46 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -3459,15 +4110,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -3476,7 +4127,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -3488,8 +4139,8 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -3497,10 +4148,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -3508,39 +4159,40 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3554,11 +4206,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -3567,31 +4220,32 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -3601,29 +4255,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -3632,57 +4290,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3697,94 +4358,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -3793,21 +4504,23 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_ext=c + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3835,8 +4548,8 @@ _ACEOF rm -f core conftest* unset am_i fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. @@ -3854,11 +4567,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For @@ -3965,8 +4679,8 @@ else fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -3981,6 +4695,12 @@ fi + + + + + + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3991,15 +4711,16 @@ if test -z "$CXX"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else @@ -4007,11 +4728,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4022,11 +4747,11 @@ fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4035,15 +4760,16 @@ fi fi if test -z "$CXX"; then ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else @@ -4051,11 +4777,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4066,11 +4796,11 @@ fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4082,8 +4812,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -4093,7 +4823,7 @@ fi fi fi # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do @@ -4103,7 +4833,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -4113,20 +4843,21 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 +printf %s "checking whether the compiler supports GNU C++... " >&6; } +if test ${ac_cv_cxx_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -4136,29 +4867,33 @@ main () return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi -ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_test_CXXFLAGS=${CXXFLAGS+y} ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +printf %s "checking whether $CXX accepts -g... " >&6; } +if test ${ac_cv_prog_cxx_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no @@ -4167,57 +4902,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_cv_prog_cxx_g=yes -else +else $as_nop CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : -else +else $as_nop ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : +if ac_fn_cxx_try_compile "$LINENO" +then : ac_cv_prog_cxx_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } +if test $ac_test_CXXFLAGS; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then @@ -4232,6 +4970,100 @@ else CXXFLAGS= fi fi +ac_prog_cxx_stdcxx=no +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 +printf %s "checking for $CXX option to enable C++11 features... " >&6; } +if test ${ac_cv_prog_cxx_11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_11=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx11_program +_ACEOF +for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx11" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx11" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_prog_cxx_stdcxx=cxx11 +fi +fi +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 +printf %s "checking for $CXX option to enable C++98 features... " >&6; } +if test ${ac_cv_prog_cxx_98+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_98=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx98_program +_ACEOF +for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx98=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx98" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx98" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx98" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx98" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 + ac_prog_cxx_stdcxx=cxx98 +fi +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -4240,11 +5072,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CXX_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For @@ -4351,8 +5184,8 @@ else fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if @@ -4375,11 +5208,12 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else @@ -4387,11 +5221,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4402,11 +5240,11 @@ fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4415,11 +5253,12 @@ if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else @@ -4427,11 +5266,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4442,11 +5285,11 @@ fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -4454,8 +5297,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -4466,12 +5309,29 @@ fi -$as_echo "#define _REENTRANT 1" >>confdefs.h + +# Check whether --with-pkgconfigdir was given. +if test ${with_pkgconfigdir+y} +then : + withval=$with_pkgconfigdir; +else $as_nop + with_pkgconfigdir='${libdir}/pkgconfig' +fi + +pkgconfigdir=$with_pkgconfigdir + + + + + + +printf "%s\n" "#define _REENTRANT 1" >>confdefs.h # Check whether --with-boost was given. -if test "${with_boost+set}" = set; then : +if test ${with_boost+y} +then : withval=$with_boost; if test "${withval}" = no; then STANDALONE="yes" @@ -4483,7 +5343,7 @@ if test "${with_boost+set}" = set; then : CPPFLAGS="$CPPFLAGS -DASIO_ENABLE_BOOST -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" fi -else +else $as_nop STANDALONE="yes" @@ -4491,7 +5351,8 @@ fi # Check whether --enable-separate-compilation was given. -if test "${enable_separate_compilation+set}" = set; then : +if test ${enable_separate_compilation+y} +then : enableval=$enable_separate_compilation; SEPARATE_COMPILATION=yes @@ -4499,7 +5360,8 @@ fi # Check whether --enable-boost-coroutine was given. -if test "${enable_boost_coroutine+set}" = set; then : +if test ${enable_boost_coroutine+y} +then : enableval=$enable_boost_coroutine; HAVE_BOOST_COROUTINE=yes @@ -4508,403 +5370,40 @@ fi if test "$STANDALONE" != yes; then -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if ${ac_cv_prog_CXXCPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 -$as_echo "$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +ac_header= ac_cache= +for ac_item in $ac_header_cxx_list do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count + if test $ac_cache; then + ac_fn_cxx_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : +done -else - ac_cv_header_stdc=no -fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then -$as_echo "#define STDC_HEADERS 1" >>confdefs.h -fi +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi +ac_fn_cxx_check_header_compile "$LINENO" "boost/noncopyable.hpp" "ac_cv_header_boost_noncopyable_hpp" "$ac_includes_default" +if test "x$ac_cv_header_boost_noncopyable_hpp" = xyes +then : -done - - -ac_fn_cxx_check_header_mongrel "$LINENO" "boost/noncopyable.hpp" "ac_cv_header_boost_noncopyable_hpp" "$ac_includes_default" -if test "x$ac_cv_header_boost_noncopyable_hpp" = xyes; then : - -else +else $as_nop echo "Can't find boost headers. Please check the location of the boost" echo "distribution and rerun configure using the --with-boost=DIR option." @@ -4913,12 +5412,12 @@ else fi - fi # Check whether --with-openssl was given. -if test "${with_openssl+set}" = set; then : +if test ${with_openssl+y} +then : withval=$with_openssl; CPPFLAGS="$CPPFLAGS -I${withval}/include" LIBS="$LIBS -L${withval}/lib" @@ -4926,17 +5425,17 @@ if test "${with_openssl+set}" = set; then : fi -ac_fn_cxx_check_header_mongrel "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_ssl_h" = xyes; then : +ac_fn_cxx_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default" +if test "x$ac_cv_header_openssl_ssl_h" = xyes +then : -else +else $as_nop OPENSSL_FOUND=no fi - if test x$OPENSSL_FOUND != xno; then LIBS="$LIBS -lssl -lcrypto" fi @@ -5013,34 +5512,35 @@ if test "$SEPARATE_COMPILATION" = yes; then CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++11 is enabled" >&5 -$as_echo_n "checking whether C++11 is enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++11 is enabled" >&5 +printf %s "checking whether C++11 is enabled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if __cplusplus < 201103L #error C++11 not available #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } HAVE_CXX11=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } HAVE_CXX11=no; fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++14 is enabled" >&5 -$as_echo_n "checking whether C++14 is enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++14 is enabled" >&5 +printf %s "checking whether C++14 is enabled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined(__GNUC__) && !defined(__clang__) @@ -5052,84 +5552,99 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #error C++14 not available #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } HAVE_CXX14=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } HAVE_CXX14=no; fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++17 is enabled" >&5 -$as_echo_n "checking whether C++17 is enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++17 is enabled" >&5 +printf %s "checking whether C++17 is enabled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if __cplusplus < 201703L #error C++17 not available #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } HAVE_CXX17=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } HAVE_CXX17=no; fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++20 is enabled" >&5 -$as_echo_n "checking whether C++20 is enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C++20 is enabled" >&5 +printf %s "checking whether C++20 is enabled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if __cplusplus < 202002L #error C++20 not available #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } HAVE_CXX20=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } HAVE_CXX20=no; fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether coroutines are enabled" >&5 -$as_echo_n "checking whether coroutines are enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether coroutines are enabled" >&5 +printf %s "checking whether coroutines are enabled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined(__clang__) - # if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703) - # if __has_include() - # define ASIO_HAS_CO_AWAIT 1 + # if (__clang_major__ >= 14) + # if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif + # endif + # else + # if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703) + # if __has_include() + # define ASIO_HAS_CO_AWAIT 1 + # endif # endif # endif #elif defined(__GNUC__) @@ -5143,23 +5658,24 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext # error coroutines not available #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_cxx_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } HAVE_COROUTINES=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } HAVE_COROUTINES=no; fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test "$GXX" = yes; then if test "$STANDALONE" = yes; then @@ -5251,7 +5767,10 @@ else fi -ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile src/tests/properties/Makefile src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile src/examples/cpp17/Makefile" +ac_config_files="$ac_config_files asio.pc" + + +ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile src/tests/properties/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile src/examples/cpp17/Makefile src/examples/cpp20/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -5280,8 +5799,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -5311,15 +5830,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -5333,8 +5852,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -5387,7 +5906,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -5402,14 +5921,14 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' @@ -5475,8 +5994,8 @@ fi ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -5499,14 +6018,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -5516,46 +6037,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -5564,13 +6085,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -5579,8 +6093,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -5592,30 +6110,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -5628,13 +6126,14 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -5661,18 +6160,20 @@ as_fn_unset () { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -5684,12 +6185,13 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -5720,7 +6222,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -5742,6 +6244,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -5755,6 +6261,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -5796,7 +6308,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -5805,7 +6317,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5867,8 +6379,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by asio $as_me 1.20.0, which was -generated by GNU Autoconf 2.69. Invocation command line was +This file was extended by asio $as_me 1.30.2, which was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5921,14 +6433,16 @@ $config_commands Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -asio config.status 1.20.0 -configured by $0, generated by GNU Autoconf 2.69, +asio config.status 1.30.2 +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -5968,21 +6482,21 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -6010,7 +6524,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -6024,7 +6538,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -6043,15 +6557,16 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "asio.pc") CONFIG_FILES="$CONFIG_FILES asio.pc" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; "src/tests/properties/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/properties/Makefile" ;; - "src/examples/cpp03/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp03/Makefile" ;; "src/examples/cpp11/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp11/Makefile" ;; "src/examples/cpp14/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp14/Makefile" ;; "src/examples/cpp17/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp17/Makefile" ;; + "src/examples/cpp20/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp20/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac @@ -6063,8 +6578,8 @@ done # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree @@ -6292,7 +6807,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -6300,17 +6815,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -6327,7 +6842,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -6351,9 +6866,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -6415,8 +6930,8 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -6460,9 +6975,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -6474,8 +6989,8 @@ which seems to be undefined. Please make sure it is defined" >&2;} ;; - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac @@ -6501,7 +7016,7 @@ esac for am_mf do # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line @@ -6513,7 +7028,7 @@ $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | +printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -6535,7 +7050,7 @@ $as_echo X"$am_mf" | $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | +printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -6560,10 +7075,12 @@ $as_echo X/"$am_mf" | (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } @@ -6609,7 +7126,8 @@ if test "$no_create" != yes; then $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff --git a/3rdparty/asio/configure.ac b/3rdparty/asio/configure.ac index 036e41a1b78e1..15e470fd1a483 100644 --- a/3rdparty/asio/configure.ac +++ b/3rdparty/asio/configure.ac @@ -1,13 +1,14 @@ -AC_INIT(asio, [1.20.0]) +AC_INIT(asio, [1.30.2]) AC_CONFIG_SRCDIR(include/asio.hpp) AM_MAINTAINER_MODE -AM_INIT_AUTOMAKE([tar-ustar]) +AM_INIT_AUTOMAKE([tar-pax]) AC_CANONICAL_HOST AM_PROG_CC_C_O AC_PROG_CXX AC_LANG(C++) AC_PROG_RANLIB +PKG_INSTALLDIR AC_DEFINE(_REENTRANT, [1], [Define this]) @@ -184,9 +185,21 @@ AC_MSG_CHECKING([whether coroutines are enabled]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if defined(__clang__)]] - [[# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] - [[# if __has_include()]] - [[# define ASIO_HAS_CO_AWAIT 1]] + [[# if (__clang_major__ >= 14)]] + [[# if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# endif]] + [[# else]] + [[# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] [[# endif]] [[# endif]] [[#elif defined(__GNUC__)]] @@ -231,13 +244,15 @@ AM_CONDITIONAL(HAVE_CXX20,test x$HAVE_CXX20 = xyes) AM_CONDITIONAL(HAVE_COROUTINES,test x$HAVE_COROUTINES = xyes) +AC_CONFIG_FILES([asio.pc]) + AC_OUTPUT([ Makefile include/Makefile src/Makefile src/tests/Makefile src/tests/properties/Makefile - src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile - src/examples/cpp17/Makefile]) + src/examples/cpp17/Makefile + src/examples/cpp20/Makefile]) diff --git a/3rdparty/asio/depcomp b/3rdparty/asio/depcomp index 4ebd5b3a2f2d6..715e34311ed2d 100644 --- a/3rdparty/asio/depcomp +++ b/3rdparty/asio/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2013-05-30.07; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ scriptversion=2013-05-30.07; # UTC # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,9 +783,9 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/3rdparty/asio/include/Makefile.am b/3rdparty/asio/include/Makefile.am index 74933ee7d3548..8f43766563e59 100644 --- a/3rdparty/asio/include/Makefile.am +++ b/3rdparty/asio/include/Makefile.am @@ -1,16 +1,24 @@ # find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort nobase_include_HEADERS = \ + asio/any_completion_executor.hpp \ + asio/any_completion_handler.hpp \ asio/any_io_executor.hpp \ + asio/append.hpp \ + asio/as_tuple.hpp \ asio/associated_allocator.hpp \ asio/associated_cancellation_slot.hpp \ asio/associated_executor.hpp \ + asio/associated_immediate_executor.hpp \ asio/associator.hpp \ asio/async_result.hpp \ asio/awaitable.hpp \ asio/basic_datagram_socket.hpp \ asio/basic_deadline_timer.hpp \ + asio/basic_file.hpp \ asio/basic_io_object.hpp \ + asio/basic_random_access_file.hpp \ asio/basic_raw_socket.hpp \ + asio/basic_readable_pipe.hpp \ asio/basic_seq_packet_socket.hpp \ asio/basic_serial_port.hpp \ asio/basic_signal_set.hpp \ @@ -20,10 +28,14 @@ nobase_include_HEADERS = \ asio/basic_socket_streambuf.hpp \ asio/basic_streambuf_fwd.hpp \ asio/basic_streambuf.hpp \ + asio/basic_stream_file.hpp \ asio/basic_stream_socket.hpp \ asio/basic_waitable_timer.hpp \ + asio/basic_writable_pipe.hpp \ + asio/bind_allocator.hpp \ asio/bind_cancellation_slot.hpp \ asio/bind_executor.hpp \ + asio/bind_immediate_executor.hpp \ asio/buffered_read_stream_fwd.hpp \ asio/buffered_read_stream.hpp \ asio/buffered_stream_fwd.hpp \ @@ -31,6 +43,7 @@ nobase_include_HEADERS = \ asio/buffered_write_stream_fwd.hpp \ asio/buffered_write_stream.hpp \ asio/buffer.hpp \ + asio/buffer_registration.hpp \ asio/buffers_iterator.hpp \ asio/cancellation_signal.hpp \ asio/cancellation_state.hpp \ @@ -39,9 +52,12 @@ nobase_include_HEADERS = \ asio/completion_condition.hpp \ asio/compose.hpp \ asio/connect.hpp \ + asio/connect_pipe.hpp \ + asio/consign.hpp \ asio/coroutine.hpp \ asio/deadline_timer.hpp \ asio/defer.hpp \ + asio/deferred.hpp \ asio/detached.hpp \ asio/detail/array_fwd.hpp \ asio/detail/array.hpp \ @@ -54,11 +70,11 @@ nobase_include_HEADERS = \ asio/detail/buffered_stream_storage.hpp \ asio/detail/buffer_resize_guard.hpp \ asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/bulk_executor_op.hpp \ asio/detail/call_stack.hpp \ asio/detail/chrono.hpp \ asio/detail/chrono_time_traits.hpp \ asio/detail/completion_handler.hpp \ + asio/detail/composed_work.hpp \ asio/detail/concurrency_hint.hpp \ asio/detail/conditionally_enabled_event.hpp \ asio/detail/conditionally_enabled_mutex.hpp \ @@ -76,20 +92,16 @@ nobase_include_HEADERS = \ asio/detail/epoll_reactor.hpp \ asio/detail/eventfd_select_interrupter.hpp \ asio/detail/event.hpp \ + asio/detail/exception.hpp \ asio/detail/executor_function.hpp \ asio/detail/executor_op.hpp \ asio/detail/fd_set_adapter.hpp \ asio/detail/fenced_block.hpp \ asio/detail/functional.hpp \ asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ asio/detail/global.hpp \ asio/detail/handler_alloc_helpers.hpp \ asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ asio/detail/handler_tracking.hpp \ asio/detail/handler_type_requirements.hpp \ asio/detail/handler_work.hpp \ @@ -102,16 +114,21 @@ nobase_include_HEADERS = \ asio/detail/impl/epoll_reactor.ipp \ asio/detail/impl/eventfd_select_interrupter.ipp \ asio/detail/impl/handler_tracking.ipp \ + asio/detail/impl/io_uring_descriptor_service.ipp \ + asio/detail/impl/io_uring_file_service.ipp \ + asio/detail/impl/io_uring_service.hpp \ + asio/detail/impl/io_uring_service.ipp \ + asio/detail/impl/io_uring_socket_service_base.ipp \ asio/detail/impl/kqueue_reactor.hpp \ asio/detail/impl/kqueue_reactor.ipp \ asio/detail/impl/null_event.ipp \ asio/detail/impl/pipe_select_interrupter.ipp \ asio/detail/impl/posix_event.ipp \ asio/detail/impl/posix_mutex.ipp \ + asio/detail/impl/posix_serial_port_service.ipp \ asio/detail/impl/posix_thread.ipp \ asio/detail/impl/posix_tss_ptr.ipp \ asio/detail/impl/reactive_descriptor_service.ipp \ - asio/detail/impl/reactive_serial_port_service.ipp \ asio/detail/impl/reactive_socket_service_base.ipp \ asio/detail/impl/resolver_service_base.ipp \ asio/detail/impl/scheduler.ipp \ @@ -131,6 +148,7 @@ nobase_include_HEADERS = \ asio/detail/impl/timer_queue_ptime.ipp \ asio/detail/impl/timer_queue_set.ipp \ asio/detail/impl/win_event.ipp \ + asio/detail/impl/win_iocp_file_service.ipp \ asio/detail/impl/win_iocp_handle_service.ipp \ asio/detail/impl/win_iocp_io_context.hpp \ asio/detail/impl/win_iocp_io_context.ipp \ @@ -145,15 +163,36 @@ nobase_include_HEADERS = \ asio/detail/impl/win_static_mutex.ipp \ asio/detail/impl/win_thread.ipp \ asio/detail/impl/win_tss_ptr.ipp \ + asio/detail/initiate_defer.hpp \ + asio/detail/initiate_dispatch.hpp \ + asio/detail/initiate_post.hpp \ asio/detail/io_control.hpp \ asio/detail/io_object_impl.hpp \ + asio/detail/io_uring_descriptor_read_at_op.hpp \ + asio/detail/io_uring_descriptor_read_op.hpp \ + asio/detail/io_uring_descriptor_service.hpp \ + asio/detail/io_uring_descriptor_write_at_op.hpp \ + asio/detail/io_uring_descriptor_write_op.hpp \ + asio/detail/io_uring_file_service.hpp \ + asio/detail/io_uring_null_buffers_op.hpp \ + asio/detail/io_uring_operation.hpp \ + asio/detail/io_uring_service.hpp \ + asio/detail/io_uring_socket_accept_op.hpp \ + asio/detail/io_uring_socket_connect_op.hpp \ + asio/detail/io_uring_socket_recvfrom_op.hpp \ + asio/detail/io_uring_socket_recvmsg_op.hpp \ + asio/detail/io_uring_socket_recv_op.hpp \ + asio/detail/io_uring_socket_send_op.hpp \ + asio/detail/io_uring_socket_sendto_op.hpp \ + asio/detail/io_uring_socket_service_base.hpp \ + asio/detail/io_uring_socket_service.hpp \ + asio/detail/io_uring_wait_op.hpp \ asio/detail/is_buffer_sequence.hpp \ asio/detail/is_executor.hpp \ asio/detail/keyword_tss_ptr.hpp \ asio/detail/kqueue_reactor.hpp \ asio/detail/limits.hpp \ asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ asio/detail/memory.hpp \ asio/detail/mutex.hpp \ asio/detail/non_const_lvalue.hpp \ @@ -178,6 +217,7 @@ nobase_include_HEADERS = \ asio/detail/posix_fd_set_adapter.hpp \ asio/detail/posix_global.hpp \ asio/detail/posix_mutex.hpp \ + asio/detail/posix_serial_port_service.hpp \ asio/detail/posix_signal_blocker.hpp \ asio/detail/posix_static_mutex.hpp \ asio/detail/posix_thread.hpp \ @@ -185,7 +225,6 @@ nobase_include_HEADERS = \ asio/detail/push_options.hpp \ asio/detail/reactive_descriptor_service.hpp \ asio/detail/reactive_null_buffers_op.hpp \ - asio/detail/reactive_serial_port_service.hpp \ asio/detail/reactive_socket_accept_op.hpp \ asio/detail/reactive_socket_connect_op.hpp \ asio/detail/reactive_socket_recvfrom_op.hpp \ @@ -196,7 +235,6 @@ nobase_include_HEADERS = \ asio/detail/reactive_socket_service_base.hpp \ asio/detail/reactive_socket_service.hpp \ asio/detail/reactive_wait_op.hpp \ - asio/detail/reactor_fwd.hpp \ asio/detail/reactor.hpp \ asio/detail/reactor_op.hpp \ asio/detail/reactor_op_queue.hpp \ @@ -209,6 +247,7 @@ nobase_include_HEADERS = \ asio/detail/resolver_service.hpp \ asio/detail/scheduler.hpp \ asio/detail/scheduler_operation.hpp \ + asio/detail/scheduler_task.hpp \ asio/detail/scheduler_thread_info.hpp \ asio/detail/scoped_lock.hpp \ asio/detail/scoped_ptr.hpp \ @@ -225,7 +264,6 @@ nobase_include_HEADERS = \ asio/detail/socket_option.hpp \ asio/detail/socket_select_interrupter.hpp \ asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ asio/detail/source_location.hpp \ asio/detail/static_mutex.hpp \ asio/detail/std_event.hpp \ @@ -251,15 +289,15 @@ nobase_include_HEADERS = \ asio/detail/timer_scheduler.hpp \ asio/detail/tss_ptr.hpp \ asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ + asio/detail/utility.hpp \ asio/detail/wait_handler.hpp \ asio/detail/wait_op.hpp \ asio/detail/winapp_thread.hpp \ asio/detail/wince_thread.hpp \ asio/detail/win_event.hpp \ asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ asio/detail/win_global.hpp \ + asio/detail/win_iocp_file_service.hpp \ asio/detail/win_iocp_handle_read_op.hpp \ asio/detail/win_iocp_handle_service.hpp \ asio/detail/win_iocp_handle_write_op.hpp \ @@ -308,62 +346,61 @@ nobase_include_HEADERS = \ asio/execution/bad_executor.hpp \ asio/execution/blocking.hpp \ asio/execution/blocking_adaptation.hpp \ - asio/execution/bulk_execute.hpp \ - asio/execution/bulk_guarantee.hpp \ - asio/execution/connect.hpp \ asio/execution/context.hpp \ asio/execution/context_as.hpp \ - asio/execution/detail/as_invocable.hpp \ - asio/execution/detail/as_operation.hpp \ - asio/execution/detail/as_receiver.hpp \ - asio/execution/detail/bulk_sender.hpp \ - asio/execution/detail/submit_receiver.hpp \ - asio/execution/detail/void_receiver.hpp \ - asio/execution/execute.hpp \ asio/execution/executor.hpp \ asio/execution/impl/bad_executor.ipp \ - asio/execution/impl/receiver_invocation_error.ipp \ asio/execution/invocable_archetype.hpp \ asio/execution/mapping.hpp \ asio/execution/occupancy.hpp \ - asio/execution/operation_state.hpp \ asio/execution/outstanding_work.hpp \ asio/execution/prefer_only.hpp \ - asio/execution/receiver.hpp \ - asio/execution/receiver_invocation_error.hpp \ asio/execution/relationship.hpp \ - asio/execution/schedule.hpp \ - asio/execution/scheduler.hpp \ - asio/execution/sender.hpp \ - asio/execution/set_done.hpp \ - asio/execution/set_error.hpp \ - asio/execution/set_value.hpp \ - asio/execution/start.hpp \ - asio/execution/submit.hpp \ asio/executor.hpp \ asio/executor_work_guard.hpp \ asio/experimental/append.hpp \ asio/experimental/as_single.hpp \ asio/experimental/as_tuple.hpp \ asio/experimental/awaitable_operators.hpp \ + asio/experimental/basic_channel.hpp \ + asio/experimental/basic_concurrent_channel.hpp \ asio/experimental/cancellation_condition.hpp \ + asio/experimental/channel.hpp \ + asio/experimental/channel_error.hpp \ + asio/experimental/channel_traits.hpp \ + asio/experimental/co_composed.hpp \ + asio/experimental/co_spawn.hpp \ + asio/experimental/concurrent_channel.hpp \ asio/experimental/coro.hpp \ + asio/experimental/coro_traits.hpp \ asio/experimental/deferred.hpp \ - asio/experimental/detail/completion_handler_erasure.hpp \ + asio/experimental/detail/channel_handler.hpp \ + asio/experimental/detail/channel_message.hpp \ + asio/experimental/detail/channel_operation.hpp \ + asio/experimental/detail/channel_payload.hpp \ + asio/experimental/detail/channel_receive_op.hpp \ + asio/experimental/detail/channel_send_functions.hpp \ + asio/experimental/detail/channel_send_op.hpp \ + asio/experimental/detail/channel_service.hpp \ + asio/experimental/detail/coro_completion_handler.hpp \ asio/experimental/detail/coro_promise_allocator.hpp \ - asio/experimental/detail/coro_traits.hpp \ + asio/experimental/detail/has_signature.hpp \ + asio/experimental/detail/impl/channel_service.hpp \ asio/experimental/detail/partial_promise.hpp \ - asio/experimental/impl/append.hpp \ asio/experimental/impl/as_single.hpp \ - asio/experimental/impl/as_tuple.hpp \ - asio/experimental/impl/deferred.hpp \ + asio/experimental/impl/channel_error.ipp \ + asio/experimental/impl/co_composed.hpp \ + asio/experimental/impl/coro.hpp \ asio/experimental/impl/parallel_group.hpp \ - asio/experimental/impl/prepend.hpp \ asio/experimental/impl/promise.hpp \ + asio/experimental/impl/use_coro.hpp \ + asio/experimental/impl/use_promise.hpp \ asio/experimental/parallel_group.hpp \ asio/experimental/prepend.hpp \ asio/experimental/promise.hpp \ asio/experimental/use_coro.hpp \ + asio/experimental/use_promise.hpp \ + asio/file_base.hpp \ asio/generic/basic_endpoint.hpp \ asio/generic/datagram_protocol.hpp \ asio/generic/detail/endpoint.hpp \ @@ -371,31 +408,34 @@ nobase_include_HEADERS = \ asio/generic/raw_protocol.hpp \ asio/generic/seq_packet_protocol.hpp \ asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ asio/high_resolution_timer.hpp \ asio.hpp \ + asio/impl/any_completion_executor.ipp \ + asio/impl/any_io_executor.ipp \ + asio/impl/append.hpp \ + asio/impl/as_tuple.hpp \ asio/impl/awaitable.hpp \ asio/impl/buffered_read_stream.hpp \ asio/impl/buffered_write_stream.hpp \ + asio/impl/cancellation_signal.ipp \ asio/impl/co_spawn.hpp \ - asio/impl/compose.hpp \ asio/impl/connect.hpp \ - asio/impl/defer.hpp \ + asio/impl/connect_pipe.hpp \ + asio/impl/connect_pipe.ipp \ + asio/impl/consign.hpp \ + asio/impl/deferred.hpp \ asio/impl/detached.hpp \ - asio/impl/dispatch.hpp \ asio/impl/error_code.ipp \ asio/impl/error.ipp \ asio/impl/execution_context.hpp \ asio/impl/execution_context.ipp \ asio/impl/executor.hpp \ asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ asio/impl/io_context.hpp \ asio/impl/io_context.ipp \ asio/impl/multiple_exceptions.ipp \ - asio/impl/post.hpp \ + asio/impl/prepend.hpp \ asio/impl/read_at.hpp \ asio/impl/read.hpp \ asio/impl/read_until.hpp \ @@ -458,6 +498,7 @@ nobase_include_HEADERS = \ asio/ip/unicast.hpp \ asio/ip/v6_only.hpp \ asio/is_applicable_property.hpp \ + asio/is_contiguous_iterator.hpp \ asio/is_executor.hpp \ asio/is_read_buffered.hpp \ asio/is_write_buffered.hpp \ @@ -466,6 +507,7 @@ nobase_include_HEADERS = \ asio/local/datagram_protocol.hpp \ asio/local/detail/endpoint.hpp \ asio/local/detail/impl/endpoint.ipp \ + asio/local/seq_packet_protocol.hpp \ asio/local/stream_protocol.hpp \ asio/multiple_exceptions.hpp \ asio/packaged_task.hpp \ @@ -477,15 +519,21 @@ nobase_include_HEADERS = \ asio/posix/stream_descriptor.hpp \ asio/post.hpp \ asio/prefer.hpp \ + asio/prepend.hpp \ asio/query.hpp \ + asio/random_access_file.hpp \ asio/read_at.hpp \ asio/read.hpp \ asio/read_until.hpp \ + asio/readable_pipe.hpp \ + asio/recycling_allocator.hpp \ asio/redirect_error.hpp \ + asio/registered_buffer.hpp \ asio/require.hpp \ asio/require_concept.hpp \ asio/serial_port_base.hpp \ asio/serial_port.hpp \ + asio/signal_set_base.hpp \ asio/signal_set.hpp \ asio/socket_base.hpp \ asio/spawn.hpp \ @@ -523,6 +571,7 @@ nobase_include_HEADERS = \ asio/steady_timer.hpp \ asio/strand.hpp \ asio/streambuf.hpp \ + asio/stream_file.hpp \ asio/system_context.hpp \ asio/system_error.hpp \ asio/system_executor.hpp \ @@ -531,12 +580,7 @@ nobase_include_HEADERS = \ asio/thread.hpp \ asio/thread_pool.hpp \ asio/time_traits.hpp \ - asio/traits/bulk_execute_free.hpp \ - asio/traits/bulk_execute_member.hpp \ - asio/traits/connect_free.hpp \ - asio/traits/connect_member.hpp \ asio/traits/equality_comparable.hpp \ - asio/traits/execute_free.hpp \ asio/traits/execute_member.hpp \ asio/traits/prefer_free.hpp \ asio/traits/prefer_member.hpp \ @@ -547,21 +591,9 @@ nobase_include_HEADERS = \ asio/traits/require_concept_member.hpp \ asio/traits/require_free.hpp \ asio/traits/require_member.hpp \ - asio/traits/schedule_free.hpp \ - asio/traits/schedule_member.hpp \ - asio/traits/set_done_free.hpp \ - asio/traits/set_done_member.hpp \ - asio/traits/set_error_free.hpp \ - asio/traits/set_error_member.hpp \ - asio/traits/set_value_free.hpp \ - asio/traits/set_value_member.hpp \ - asio/traits/start_free.hpp \ - asio/traits/start_member.hpp \ asio/traits/static_query.hpp \ asio/traits/static_require.hpp \ asio/traits/static_require_concept.hpp \ - asio/traits/submit_free.hpp \ - asio/traits/submit_member.hpp \ asio/ts/buffer.hpp \ asio/ts/executor.hpp \ asio/ts/internet.hpp \ @@ -585,6 +617,7 @@ nobase_include_HEADERS = \ asio/windows/overlapped_ptr.hpp \ asio/windows/random_access_handle.hpp \ asio/windows/stream_handle.hpp \ + asio/writable_pipe.hpp \ asio/write_at.hpp \ asio/write.hpp \ asio/yield.hpp diff --git a/3rdparty/asio/include/Makefile.in b/3rdparty/asio/include/Makefile.in index 4bb29452b71c2..e71be1bf5905c 100644 --- a/3rdparty/asio/include/Makefile.in +++ b/3rdparty/asio/include/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.5 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2021 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -163,8 +163,6 @@ am__define_uniq_tagged_files = \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -178,8 +176,9 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ CXX = @CXX@ -CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ @@ -188,9 +187,8 @@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -EGREP = @EGREP@ +ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ -GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -257,9 +255,11 @@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ +pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -271,17 +271,25 @@ top_srcdir = @top_srcdir@ # find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort nobase_include_HEADERS = \ + asio/any_completion_executor.hpp \ + asio/any_completion_handler.hpp \ asio/any_io_executor.hpp \ + asio/append.hpp \ + asio/as_tuple.hpp \ asio/associated_allocator.hpp \ asio/associated_cancellation_slot.hpp \ asio/associated_executor.hpp \ + asio/associated_immediate_executor.hpp \ asio/associator.hpp \ asio/async_result.hpp \ asio/awaitable.hpp \ asio/basic_datagram_socket.hpp \ asio/basic_deadline_timer.hpp \ + asio/basic_file.hpp \ asio/basic_io_object.hpp \ + asio/basic_random_access_file.hpp \ asio/basic_raw_socket.hpp \ + asio/basic_readable_pipe.hpp \ asio/basic_seq_packet_socket.hpp \ asio/basic_serial_port.hpp \ asio/basic_signal_set.hpp \ @@ -291,10 +299,14 @@ nobase_include_HEADERS = \ asio/basic_socket_streambuf.hpp \ asio/basic_streambuf_fwd.hpp \ asio/basic_streambuf.hpp \ + asio/basic_stream_file.hpp \ asio/basic_stream_socket.hpp \ asio/basic_waitable_timer.hpp \ + asio/basic_writable_pipe.hpp \ + asio/bind_allocator.hpp \ asio/bind_cancellation_slot.hpp \ asio/bind_executor.hpp \ + asio/bind_immediate_executor.hpp \ asio/buffered_read_stream_fwd.hpp \ asio/buffered_read_stream.hpp \ asio/buffered_stream_fwd.hpp \ @@ -302,6 +314,7 @@ nobase_include_HEADERS = \ asio/buffered_write_stream_fwd.hpp \ asio/buffered_write_stream.hpp \ asio/buffer.hpp \ + asio/buffer_registration.hpp \ asio/buffers_iterator.hpp \ asio/cancellation_signal.hpp \ asio/cancellation_state.hpp \ @@ -310,9 +323,12 @@ nobase_include_HEADERS = \ asio/completion_condition.hpp \ asio/compose.hpp \ asio/connect.hpp \ + asio/connect_pipe.hpp \ + asio/consign.hpp \ asio/coroutine.hpp \ asio/deadline_timer.hpp \ asio/defer.hpp \ + asio/deferred.hpp \ asio/detached.hpp \ asio/detail/array_fwd.hpp \ asio/detail/array.hpp \ @@ -325,11 +341,11 @@ nobase_include_HEADERS = \ asio/detail/buffered_stream_storage.hpp \ asio/detail/buffer_resize_guard.hpp \ asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/bulk_executor_op.hpp \ asio/detail/call_stack.hpp \ asio/detail/chrono.hpp \ asio/detail/chrono_time_traits.hpp \ asio/detail/completion_handler.hpp \ + asio/detail/composed_work.hpp \ asio/detail/concurrency_hint.hpp \ asio/detail/conditionally_enabled_event.hpp \ asio/detail/conditionally_enabled_mutex.hpp \ @@ -347,20 +363,16 @@ nobase_include_HEADERS = \ asio/detail/epoll_reactor.hpp \ asio/detail/eventfd_select_interrupter.hpp \ asio/detail/event.hpp \ + asio/detail/exception.hpp \ asio/detail/executor_function.hpp \ asio/detail/executor_op.hpp \ asio/detail/fd_set_adapter.hpp \ asio/detail/fenced_block.hpp \ asio/detail/functional.hpp \ asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ asio/detail/global.hpp \ asio/detail/handler_alloc_helpers.hpp \ asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ asio/detail/handler_tracking.hpp \ asio/detail/handler_type_requirements.hpp \ asio/detail/handler_work.hpp \ @@ -373,16 +385,21 @@ nobase_include_HEADERS = \ asio/detail/impl/epoll_reactor.ipp \ asio/detail/impl/eventfd_select_interrupter.ipp \ asio/detail/impl/handler_tracking.ipp \ + asio/detail/impl/io_uring_descriptor_service.ipp \ + asio/detail/impl/io_uring_file_service.ipp \ + asio/detail/impl/io_uring_service.hpp \ + asio/detail/impl/io_uring_service.ipp \ + asio/detail/impl/io_uring_socket_service_base.ipp \ asio/detail/impl/kqueue_reactor.hpp \ asio/detail/impl/kqueue_reactor.ipp \ asio/detail/impl/null_event.ipp \ asio/detail/impl/pipe_select_interrupter.ipp \ asio/detail/impl/posix_event.ipp \ asio/detail/impl/posix_mutex.ipp \ + asio/detail/impl/posix_serial_port_service.ipp \ asio/detail/impl/posix_thread.ipp \ asio/detail/impl/posix_tss_ptr.ipp \ asio/detail/impl/reactive_descriptor_service.ipp \ - asio/detail/impl/reactive_serial_port_service.ipp \ asio/detail/impl/reactive_socket_service_base.ipp \ asio/detail/impl/resolver_service_base.ipp \ asio/detail/impl/scheduler.ipp \ @@ -402,6 +419,7 @@ nobase_include_HEADERS = \ asio/detail/impl/timer_queue_ptime.ipp \ asio/detail/impl/timer_queue_set.ipp \ asio/detail/impl/win_event.ipp \ + asio/detail/impl/win_iocp_file_service.ipp \ asio/detail/impl/win_iocp_handle_service.ipp \ asio/detail/impl/win_iocp_io_context.hpp \ asio/detail/impl/win_iocp_io_context.ipp \ @@ -416,15 +434,36 @@ nobase_include_HEADERS = \ asio/detail/impl/win_static_mutex.ipp \ asio/detail/impl/win_thread.ipp \ asio/detail/impl/win_tss_ptr.ipp \ + asio/detail/initiate_defer.hpp \ + asio/detail/initiate_dispatch.hpp \ + asio/detail/initiate_post.hpp \ asio/detail/io_control.hpp \ asio/detail/io_object_impl.hpp \ + asio/detail/io_uring_descriptor_read_at_op.hpp \ + asio/detail/io_uring_descriptor_read_op.hpp \ + asio/detail/io_uring_descriptor_service.hpp \ + asio/detail/io_uring_descriptor_write_at_op.hpp \ + asio/detail/io_uring_descriptor_write_op.hpp \ + asio/detail/io_uring_file_service.hpp \ + asio/detail/io_uring_null_buffers_op.hpp \ + asio/detail/io_uring_operation.hpp \ + asio/detail/io_uring_service.hpp \ + asio/detail/io_uring_socket_accept_op.hpp \ + asio/detail/io_uring_socket_connect_op.hpp \ + asio/detail/io_uring_socket_recvfrom_op.hpp \ + asio/detail/io_uring_socket_recvmsg_op.hpp \ + asio/detail/io_uring_socket_recv_op.hpp \ + asio/detail/io_uring_socket_send_op.hpp \ + asio/detail/io_uring_socket_sendto_op.hpp \ + asio/detail/io_uring_socket_service_base.hpp \ + asio/detail/io_uring_socket_service.hpp \ + asio/detail/io_uring_wait_op.hpp \ asio/detail/is_buffer_sequence.hpp \ asio/detail/is_executor.hpp \ asio/detail/keyword_tss_ptr.hpp \ asio/detail/kqueue_reactor.hpp \ asio/detail/limits.hpp \ asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ asio/detail/memory.hpp \ asio/detail/mutex.hpp \ asio/detail/non_const_lvalue.hpp \ @@ -449,6 +488,7 @@ nobase_include_HEADERS = \ asio/detail/posix_fd_set_adapter.hpp \ asio/detail/posix_global.hpp \ asio/detail/posix_mutex.hpp \ + asio/detail/posix_serial_port_service.hpp \ asio/detail/posix_signal_blocker.hpp \ asio/detail/posix_static_mutex.hpp \ asio/detail/posix_thread.hpp \ @@ -456,7 +496,6 @@ nobase_include_HEADERS = \ asio/detail/push_options.hpp \ asio/detail/reactive_descriptor_service.hpp \ asio/detail/reactive_null_buffers_op.hpp \ - asio/detail/reactive_serial_port_service.hpp \ asio/detail/reactive_socket_accept_op.hpp \ asio/detail/reactive_socket_connect_op.hpp \ asio/detail/reactive_socket_recvfrom_op.hpp \ @@ -467,7 +506,6 @@ nobase_include_HEADERS = \ asio/detail/reactive_socket_service_base.hpp \ asio/detail/reactive_socket_service.hpp \ asio/detail/reactive_wait_op.hpp \ - asio/detail/reactor_fwd.hpp \ asio/detail/reactor.hpp \ asio/detail/reactor_op.hpp \ asio/detail/reactor_op_queue.hpp \ @@ -480,6 +518,7 @@ nobase_include_HEADERS = \ asio/detail/resolver_service.hpp \ asio/detail/scheduler.hpp \ asio/detail/scheduler_operation.hpp \ + asio/detail/scheduler_task.hpp \ asio/detail/scheduler_thread_info.hpp \ asio/detail/scoped_lock.hpp \ asio/detail/scoped_ptr.hpp \ @@ -496,7 +535,6 @@ nobase_include_HEADERS = \ asio/detail/socket_option.hpp \ asio/detail/socket_select_interrupter.hpp \ asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ asio/detail/source_location.hpp \ asio/detail/static_mutex.hpp \ asio/detail/std_event.hpp \ @@ -522,15 +560,15 @@ nobase_include_HEADERS = \ asio/detail/timer_scheduler.hpp \ asio/detail/tss_ptr.hpp \ asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ + asio/detail/utility.hpp \ asio/detail/wait_handler.hpp \ asio/detail/wait_op.hpp \ asio/detail/winapp_thread.hpp \ asio/detail/wince_thread.hpp \ asio/detail/win_event.hpp \ asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ asio/detail/win_global.hpp \ + asio/detail/win_iocp_file_service.hpp \ asio/detail/win_iocp_handle_read_op.hpp \ asio/detail/win_iocp_handle_service.hpp \ asio/detail/win_iocp_handle_write_op.hpp \ @@ -579,62 +617,61 @@ nobase_include_HEADERS = \ asio/execution/bad_executor.hpp \ asio/execution/blocking.hpp \ asio/execution/blocking_adaptation.hpp \ - asio/execution/bulk_execute.hpp \ - asio/execution/bulk_guarantee.hpp \ - asio/execution/connect.hpp \ asio/execution/context.hpp \ asio/execution/context_as.hpp \ - asio/execution/detail/as_invocable.hpp \ - asio/execution/detail/as_operation.hpp \ - asio/execution/detail/as_receiver.hpp \ - asio/execution/detail/bulk_sender.hpp \ - asio/execution/detail/submit_receiver.hpp \ - asio/execution/detail/void_receiver.hpp \ - asio/execution/execute.hpp \ asio/execution/executor.hpp \ asio/execution/impl/bad_executor.ipp \ - asio/execution/impl/receiver_invocation_error.ipp \ asio/execution/invocable_archetype.hpp \ asio/execution/mapping.hpp \ asio/execution/occupancy.hpp \ - asio/execution/operation_state.hpp \ asio/execution/outstanding_work.hpp \ asio/execution/prefer_only.hpp \ - asio/execution/receiver.hpp \ - asio/execution/receiver_invocation_error.hpp \ asio/execution/relationship.hpp \ - asio/execution/schedule.hpp \ - asio/execution/scheduler.hpp \ - asio/execution/sender.hpp \ - asio/execution/set_done.hpp \ - asio/execution/set_error.hpp \ - asio/execution/set_value.hpp \ - asio/execution/start.hpp \ - asio/execution/submit.hpp \ asio/executor.hpp \ asio/executor_work_guard.hpp \ asio/experimental/append.hpp \ asio/experimental/as_single.hpp \ asio/experimental/as_tuple.hpp \ asio/experimental/awaitable_operators.hpp \ + asio/experimental/basic_channel.hpp \ + asio/experimental/basic_concurrent_channel.hpp \ asio/experimental/cancellation_condition.hpp \ + asio/experimental/channel.hpp \ + asio/experimental/channel_error.hpp \ + asio/experimental/channel_traits.hpp \ + asio/experimental/co_composed.hpp \ + asio/experimental/co_spawn.hpp \ + asio/experimental/concurrent_channel.hpp \ asio/experimental/coro.hpp \ + asio/experimental/coro_traits.hpp \ asio/experimental/deferred.hpp \ - asio/experimental/detail/completion_handler_erasure.hpp \ + asio/experimental/detail/channel_handler.hpp \ + asio/experimental/detail/channel_message.hpp \ + asio/experimental/detail/channel_operation.hpp \ + asio/experimental/detail/channel_payload.hpp \ + asio/experimental/detail/channel_receive_op.hpp \ + asio/experimental/detail/channel_send_functions.hpp \ + asio/experimental/detail/channel_send_op.hpp \ + asio/experimental/detail/channel_service.hpp \ + asio/experimental/detail/coro_completion_handler.hpp \ asio/experimental/detail/coro_promise_allocator.hpp \ - asio/experimental/detail/coro_traits.hpp \ + asio/experimental/detail/has_signature.hpp \ + asio/experimental/detail/impl/channel_service.hpp \ asio/experimental/detail/partial_promise.hpp \ - asio/experimental/impl/append.hpp \ asio/experimental/impl/as_single.hpp \ - asio/experimental/impl/as_tuple.hpp \ - asio/experimental/impl/deferred.hpp \ + asio/experimental/impl/channel_error.ipp \ + asio/experimental/impl/co_composed.hpp \ + asio/experimental/impl/coro.hpp \ asio/experimental/impl/parallel_group.hpp \ - asio/experimental/impl/prepend.hpp \ asio/experimental/impl/promise.hpp \ + asio/experimental/impl/use_coro.hpp \ + asio/experimental/impl/use_promise.hpp \ asio/experimental/parallel_group.hpp \ asio/experimental/prepend.hpp \ asio/experimental/promise.hpp \ asio/experimental/use_coro.hpp \ + asio/experimental/use_promise.hpp \ + asio/file_base.hpp \ asio/generic/basic_endpoint.hpp \ asio/generic/datagram_protocol.hpp \ asio/generic/detail/endpoint.hpp \ @@ -642,31 +679,34 @@ nobase_include_HEADERS = \ asio/generic/raw_protocol.hpp \ asio/generic/seq_packet_protocol.hpp \ asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ asio/high_resolution_timer.hpp \ asio.hpp \ + asio/impl/any_completion_executor.ipp \ + asio/impl/any_io_executor.ipp \ + asio/impl/append.hpp \ + asio/impl/as_tuple.hpp \ asio/impl/awaitable.hpp \ asio/impl/buffered_read_stream.hpp \ asio/impl/buffered_write_stream.hpp \ + asio/impl/cancellation_signal.ipp \ asio/impl/co_spawn.hpp \ - asio/impl/compose.hpp \ asio/impl/connect.hpp \ - asio/impl/defer.hpp \ + asio/impl/connect_pipe.hpp \ + asio/impl/connect_pipe.ipp \ + asio/impl/consign.hpp \ + asio/impl/deferred.hpp \ asio/impl/detached.hpp \ - asio/impl/dispatch.hpp \ asio/impl/error_code.ipp \ asio/impl/error.ipp \ asio/impl/execution_context.hpp \ asio/impl/execution_context.ipp \ asio/impl/executor.hpp \ asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ asio/impl/io_context.hpp \ asio/impl/io_context.ipp \ asio/impl/multiple_exceptions.ipp \ - asio/impl/post.hpp \ + asio/impl/prepend.hpp \ asio/impl/read_at.hpp \ asio/impl/read.hpp \ asio/impl/read_until.hpp \ @@ -729,6 +769,7 @@ nobase_include_HEADERS = \ asio/ip/unicast.hpp \ asio/ip/v6_only.hpp \ asio/is_applicable_property.hpp \ + asio/is_contiguous_iterator.hpp \ asio/is_executor.hpp \ asio/is_read_buffered.hpp \ asio/is_write_buffered.hpp \ @@ -737,6 +778,7 @@ nobase_include_HEADERS = \ asio/local/datagram_protocol.hpp \ asio/local/detail/endpoint.hpp \ asio/local/detail/impl/endpoint.ipp \ + asio/local/seq_packet_protocol.hpp \ asio/local/stream_protocol.hpp \ asio/multiple_exceptions.hpp \ asio/packaged_task.hpp \ @@ -748,15 +790,21 @@ nobase_include_HEADERS = \ asio/posix/stream_descriptor.hpp \ asio/post.hpp \ asio/prefer.hpp \ + asio/prepend.hpp \ asio/query.hpp \ + asio/random_access_file.hpp \ asio/read_at.hpp \ asio/read.hpp \ asio/read_until.hpp \ + asio/readable_pipe.hpp \ + asio/recycling_allocator.hpp \ asio/redirect_error.hpp \ + asio/registered_buffer.hpp \ asio/require.hpp \ asio/require_concept.hpp \ asio/serial_port_base.hpp \ asio/serial_port.hpp \ + asio/signal_set_base.hpp \ asio/signal_set.hpp \ asio/socket_base.hpp \ asio/spawn.hpp \ @@ -794,6 +842,7 @@ nobase_include_HEADERS = \ asio/steady_timer.hpp \ asio/strand.hpp \ asio/streambuf.hpp \ + asio/stream_file.hpp \ asio/system_context.hpp \ asio/system_error.hpp \ asio/system_executor.hpp \ @@ -802,12 +851,7 @@ nobase_include_HEADERS = \ asio/thread.hpp \ asio/thread_pool.hpp \ asio/time_traits.hpp \ - asio/traits/bulk_execute_free.hpp \ - asio/traits/bulk_execute_member.hpp \ - asio/traits/connect_free.hpp \ - asio/traits/connect_member.hpp \ asio/traits/equality_comparable.hpp \ - asio/traits/execute_free.hpp \ asio/traits/execute_member.hpp \ asio/traits/prefer_free.hpp \ asio/traits/prefer_member.hpp \ @@ -818,21 +862,9 @@ nobase_include_HEADERS = \ asio/traits/require_concept_member.hpp \ asio/traits/require_free.hpp \ asio/traits/require_member.hpp \ - asio/traits/schedule_free.hpp \ - asio/traits/schedule_member.hpp \ - asio/traits/set_done_free.hpp \ - asio/traits/set_done_member.hpp \ - asio/traits/set_error_free.hpp \ - asio/traits/set_error_member.hpp \ - asio/traits/set_value_free.hpp \ - asio/traits/set_value_member.hpp \ - asio/traits/start_free.hpp \ - asio/traits/start_member.hpp \ asio/traits/static_query.hpp \ asio/traits/static_require.hpp \ asio/traits/static_require_concept.hpp \ - asio/traits/submit_free.hpp \ - asio/traits/submit_member.hpp \ asio/ts/buffer.hpp \ asio/ts/executor.hpp \ asio/ts/internet.hpp \ @@ -856,6 +888,7 @@ nobase_include_HEADERS = \ asio/windows/overlapped_ptr.hpp \ asio/windows/random_access_handle.hpp \ asio/windows/stream_handle.hpp \ + asio/writable_pipe.hpp \ asio/write_at.hpp \ asio/write.hpp \ asio/yield.hpp @@ -971,7 +1004,6 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am diff --git a/3rdparty/asio/include/asio.hpp b/3rdparty/asio/include/asio.hpp index 94db21e8173a4..3421b58bdae86 100644 --- a/3rdparty/asio/include/asio.hpp +++ b/3rdparty/asio/include/asio.hpp @@ -2,7 +2,7 @@ // asio.hpp // ~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -15,16 +15,25 @@ # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) +#include "asio/any_completion_executor.hpp" +#include "asio/any_completion_handler.hpp" +#include "asio/any_io_executor.hpp" +#include "asio/append.hpp" +#include "asio/as_tuple.hpp" #include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" #include "asio/associated_cancellation_slot.hpp" +#include "asio/associated_executor.hpp" +#include "asio/associated_immediate_executor.hpp" #include "asio/associator.hpp" #include "asio/async_result.hpp" #include "asio/awaitable.hpp" #include "asio/basic_datagram_socket.hpp" #include "asio/basic_deadline_timer.hpp" +#include "asio/basic_file.hpp" #include "asio/basic_io_object.hpp" +#include "asio/basic_random_access_file.hpp" #include "asio/basic_raw_socket.hpp" +#include "asio/basic_readable_pipe.hpp" #include "asio/basic_seq_packet_socket.hpp" #include "asio/basic_serial_port.hpp" #include "asio/basic_signal_set.hpp" @@ -32,12 +41,17 @@ #include "asio/basic_socket_acceptor.hpp" #include "asio/basic_socket_iostream.hpp" #include "asio/basic_socket_streambuf.hpp" +#include "asio/basic_stream_file.hpp" #include "asio/basic_stream_socket.hpp" #include "asio/basic_streambuf.hpp" #include "asio/basic_waitable_timer.hpp" +#include "asio/basic_writable_pipe.hpp" +#include "asio/bind_allocator.hpp" #include "asio/bind_cancellation_slot.hpp" #include "asio/bind_executor.hpp" +#include "asio/bind_immediate_executor.hpp" #include "asio/buffer.hpp" +#include "asio/buffer_registration.hpp" #include "asio/buffered_read_stream_fwd.hpp" #include "asio/buffered_read_stream.hpp" #include "asio/buffered_stream_fwd.hpp" @@ -52,9 +66,12 @@ #include "asio/completion_condition.hpp" #include "asio/compose.hpp" #include "asio/connect.hpp" +#include "asio/connect_pipe.hpp" +#include "asio/consign.hpp" #include "asio/coroutine.hpp" #include "asio/deadline_timer.hpp" #include "asio/defer.hpp" +#include "asio/deferred.hpp" #include "asio/detached.hpp" #include "asio/dispatch.hpp" #include "asio/error.hpp" @@ -64,40 +81,24 @@ #include "asio/execution/any_executor.hpp" #include "asio/execution/blocking.hpp" #include "asio/execution/blocking_adaptation.hpp" -#include "asio/execution/bulk_execute.hpp" -#include "asio/execution/bulk_guarantee.hpp" -#include "asio/execution/connect.hpp" #include "asio/execution/context.hpp" #include "asio/execution/context_as.hpp" -#include "asio/execution/execute.hpp" #include "asio/execution/executor.hpp" #include "asio/execution/invocable_archetype.hpp" #include "asio/execution/mapping.hpp" #include "asio/execution/occupancy.hpp" -#include "asio/execution/operation_state.hpp" #include "asio/execution/outstanding_work.hpp" #include "asio/execution/prefer_only.hpp" -#include "asio/execution/receiver.hpp" -#include "asio/execution/receiver_invocation_error.hpp" #include "asio/execution/relationship.hpp" -#include "asio/execution/schedule.hpp" -#include "asio/execution/scheduler.hpp" -#include "asio/execution/sender.hpp" -#include "asio/execution/set_done.hpp" -#include "asio/execution/set_error.hpp" -#include "asio/execution/set_value.hpp" -#include "asio/execution/start.hpp" -#include "asio/execution_context.hpp" #include "asio/executor.hpp" #include "asio/executor_work_guard.hpp" +#include "asio/file_base.hpp" #include "asio/generic/basic_endpoint.hpp" #include "asio/generic/datagram_protocol.hpp" #include "asio/generic/raw_protocol.hpp" #include "asio/generic/seq_packet_protocol.hpp" #include "asio/generic/stream_protocol.hpp" -#include "asio/handler_alloc_hook.hpp" #include "asio/handler_continuation_hook.hpp" -#include "asio/handler_invoke_hook.hpp" #include "asio/high_resolution_timer.hpp" #include "asio/io_context.hpp" #include "asio/io_context_strand.hpp" @@ -128,12 +129,14 @@ #include "asio/ip/unicast.hpp" #include "asio/ip/v6_only.hpp" #include "asio/is_applicable_property.hpp" +#include "asio/is_contiguous_iterator.hpp" #include "asio/is_executor.hpp" #include "asio/is_read_buffered.hpp" #include "asio/is_write_buffered.hpp" #include "asio/local/basic_endpoint.hpp" #include "asio/local/connect_pair.hpp" #include "asio/local/datagram_protocol.hpp" +#include "asio/local/seq_packet_protocol.hpp" #include "asio/local/stream_protocol.hpp" #include "asio/multiple_exceptions.hpp" #include "asio/packaged_task.hpp" @@ -145,20 +148,27 @@ #include "asio/posix/stream_descriptor.hpp" #include "asio/post.hpp" #include "asio/prefer.hpp" +#include "asio/prepend.hpp" #include "asio/query.hpp" +#include "asio/random_access_file.hpp" #include "asio/read.hpp" #include "asio/read_at.hpp" #include "asio/read_until.hpp" +#include "asio/readable_pipe.hpp" +#include "asio/recycling_allocator.hpp" #include "asio/redirect_error.hpp" +#include "asio/registered_buffer.hpp" #include "asio/require.hpp" #include "asio/require_concept.hpp" #include "asio/serial_port.hpp" #include "asio/serial_port_base.hpp" #include "asio/signal_set.hpp" +#include "asio/signal_set_base.hpp" #include "asio/socket_base.hpp" #include "asio/static_thread_pool.hpp" #include "asio/steady_timer.hpp" #include "asio/strand.hpp" +#include "asio/stream_file.hpp" #include "asio/streambuf.hpp" #include "asio/system_context.hpp" #include "asio/system_error.hpp" @@ -182,6 +192,7 @@ #include "asio/windows/overlapped_ptr.hpp" #include "asio/windows/random_access_handle.hpp" #include "asio/windows/stream_handle.hpp" +#include "asio/writable_pipe.hpp" #include "asio/write.hpp" #include "asio/write_at.hpp" diff --git a/3rdparty/asio/include/asio/any_completion_executor.hpp b/3rdparty/asio/include/asio/any_completion_executor.hpp new file mode 100644 index 0000000000000..650ff7bafddcf --- /dev/null +++ b/3rdparty/asio/include/asio/any_completion_executor.hpp @@ -0,0 +1,336 @@ +// +// any_completion_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_EXECUTOR_HPP +#define ASIO_ANY_COMPLETION_EXECUTOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/executor.hpp" +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/execution.hpp" +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#include "asio/detail/push_options.hpp" + +namespace asio { + +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +typedef executor any_completion_executor; + +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +/// Polymorphic executor type for use with I/O objects. +/** + * The @c any_completion_executor type is a polymorphic executor that supports + * the set of properties required for the execution of completion handlers. It + * is defined as the execution::any_executor class template parameterised as + * follows: + * @code execution::any_executor< + * execution::prefer_only, + * execution::prefer_only + * execution::prefer_only, + * execution::prefer_only + * > @endcode + */ +class any_completion_executor : +#if defined(GENERATING_DOCUMENTATION) + public execution::any_executor<...> +#else // defined(GENERATING_DOCUMENTATION) + public execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > +#endif // defined(GENERATING_DOCUMENTATION) +{ +public: +#if !defined(GENERATING_DOCUMENTATION) + typedef execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > base_type; + + typedef void supportable_properties_type( + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + ); +#endif // !defined(GENERATING_DOCUMENTATION) + + /// Default constructor. + ASIO_DECL any_completion_executor() noexcept; + + /// Construct in an empty state. Equivalent effects to default constructor. + ASIO_DECL any_completion_executor(nullptr_t) noexcept; + + /// Copy constructor. + ASIO_DECL any_completion_executor( + const any_completion_executor& e) noexcept; + + /// Move constructor. + ASIO_DECL any_completion_executor( + any_completion_executor&& e) noexcept; + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor( + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(OtherAnyExecutor e, + constraint_t< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + > = 0) + : base_type(static_cast(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, OtherAnyExecutor e, + constraint_t< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + const any_completion_executor& e) noexcept; + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + any_completion_executor&& e) noexcept; + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e, + constraint_t< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + > = 0) + : base_type(static_cast(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e, + constraint_t< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_completion_executor& operator=( + const any_completion_executor& e) noexcept; + + /// Move assignment operator. + ASIO_DECL any_completion_executor& operator=( + any_completion_executor&& e) noexcept; + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + ASIO_DECL any_completion_executor& operator=(nullptr_t); + + /// Destructor. + ASIO_DECL ~any_completion_executor(); + + /// Swap targets with another polymorphic wrapper. + ASIO_DECL void swap(any_completion_executor& other) noexcept; + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::require and asio::prefer customisation points. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::require(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor require(const Property& p, + constraint_t< + traits::require_member::is_valid + > = 0) const + { + return static_cast(*this).require(p); + } + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::prefer customisation point. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::prefer(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor prefer(const Property& p, + constraint_t< + traits::prefer_member::is_valid + > = 0) const + { + return static_cast(*this).prefer(p); + } +}; + +#if !defined(GENERATING_DOCUMENTATION) + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable +{ + static const bool is_valid = true; + static const bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template +struct execute_member +{ + static const bool is_valid = true; + static const bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template +struct query_member : + query_member +{ +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +template +struct require_member : + require_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +template +struct prefer_member : + prefer_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +} // namespace traits + +#endif // !defined(GENERATING_DOCUMENTATION) + +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_completion_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#endif // ASIO_ANY_COMPLETION_EXECUTOR_HPP diff --git a/3rdparty/asio/include/asio/any_completion_handler.hpp b/3rdparty/asio/include/asio/any_completion_handler.hpp new file mode 100644 index 0000000000000..45b3e75fec785 --- /dev/null +++ b/3rdparty/asio/include/asio/any_completion_handler.hpp @@ -0,0 +1,822 @@ +// +// any_completion_handler.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_HANDLER_HPP +#define ASIO_ANY_COMPLETION_HANDLER_HPP + +#include "asio/detail/config.hpp" +#include +#include +#include +#include +#include "asio/any_completion_executor.hpp" +#include "asio/any_io_executor.hpp" +#include "asio/associated_allocator.hpp" +#include "asio/associated_cancellation_slot.hpp" +#include "asio/associated_executor.hpp" +#include "asio/associated_immediate_executor.hpp" +#include "asio/cancellation_state.hpp" +#include "asio/recycling_allocator.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { +namespace detail { + +class any_completion_handler_impl_base +{ +public: + template + explicit any_completion_handler_impl_base(S&& slot) + : cancel_state_(static_cast(slot), enable_total_cancellation()) + { + } + + cancellation_slot get_cancellation_slot() const noexcept + { + return cancel_state_.slot(); + } + +private: + cancellation_state cancel_state_; +}; + +template +class any_completion_handler_impl : + public any_completion_handler_impl_base +{ +public: + template + any_completion_handler_impl(S&& slot, H&& h) + : any_completion_handler_impl_base(static_cast(slot)), + handler_(static_cast(h)) + { + } + + struct uninit_deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + struct deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::destroy(alloc, ptr); + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + template + static any_completion_handler_impl* create(S&& slot, H&& h) + { + uninit_deleter d{ + (get_associated_allocator)(h, + asio::recycling_allocator())}; + + std::unique_ptr uninit_ptr( + std::allocator_traits::allocate(d.alloc, 1), d); + + any_completion_handler_impl* ptr = + new (uninit_ptr.get()) any_completion_handler_impl( + static_cast(slot), static_cast(h)); + + uninit_ptr.release(); + return ptr; + } + + void destroy() + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + d(this); + } + + any_completion_executor executor( + const any_completion_executor& candidate) const noexcept + { + return any_completion_executor(std::nothrow, + (get_associated_executor)(handler_, candidate)); + } + + any_completion_executor immediate_executor( + const any_io_executor& candidate) const noexcept + { + return any_completion_executor(std::nothrow, + (get_associated_immediate_executor)(handler_, candidate)); + } + + void* allocate(std::size_t size, std::size_t align) const + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::size_t space = size + align - 1; + unsigned char* base = + std::allocator_traits::allocate( + alloc, space + sizeof(std::ptrdiff_t)); + + void* p = base; + if (detail::align(align, size, p, space)) + { + std::ptrdiff_t off = static_cast(p) - base; + std::memcpy(static_cast(p) + size, &off, sizeof(off)); + return p; + } + + std::bad_alloc ex; + asio::detail::throw_exception(ex); + return nullptr; + } + + void deallocate(void* p, std::size_t size, std::size_t align) const + { + if (p) + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::ptrdiff_t off; + std::memcpy(&off, static_cast(p) + size, sizeof(off)); + unsigned char* base = static_cast(p) - off; + + std::allocator_traits::deallocate( + alloc, base, size + align -1 + sizeof(std::ptrdiff_t)); + } + } + + template + void call(Args&&... args) + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + std::unique_ptr ptr(this, d); + Handler handler(static_cast(handler_)); + ptr.reset(); + + static_cast(handler)( + static_cast(args)...); + } + +private: + Handler handler_; +}; + +template +class any_completion_handler_call_fn; + +template +class any_completion_handler_call_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, Args...); + + constexpr any_completion_handler_call_fn(type fn) + : call_fn_(fn) + { + } + + void call(any_completion_handler_impl_base* impl, Args... args) const + { + call_fn_(impl, static_cast(args)...); + } + + template + static void impl(any_completion_handler_impl_base* impl, Args... args) + { + static_cast*>(impl)->call( + static_cast(args)...); + } + +private: + type call_fn_; +}; + +template +class any_completion_handler_call_fns; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn +{ +public: + using any_completion_handler_call_fn< + Signature>::any_completion_handler_call_fn; + using any_completion_handler_call_fn::call; +}; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn, + public any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_call_fns(CallFn fn, CallFns... fns) + : any_completion_handler_call_fn(fn), + any_completion_handler_call_fns(fns...) + { + } + + using any_completion_handler_call_fn::call; + using any_completion_handler_call_fns::call; +}; + +class any_completion_handler_destroy_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*); + + constexpr any_completion_handler_destroy_fn(type fn) + : destroy_fn_(fn) + { + } + + void destroy(any_completion_handler_impl_base* impl) const + { + destroy_fn_(impl); + } + + template + static void impl(any_completion_handler_impl_base* impl) + { + static_cast*>(impl)->destroy(); + } + +private: + type destroy_fn_; +}; + +class any_completion_handler_executor_fn +{ +public: + using type = any_completion_executor(*)( + any_completion_handler_impl_base*, const any_completion_executor&); + + constexpr any_completion_handler_executor_fn(type fn) + : executor_fn_(fn) + { + } + + any_completion_executor executor(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) const + { + return executor_fn_(impl, candidate); + } + + template + static any_completion_executor impl(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) + { + return static_cast*>(impl)->executor( + candidate); + } + +private: + type executor_fn_; +}; + +class any_completion_handler_immediate_executor_fn +{ +public: + using type = any_completion_executor(*)( + any_completion_handler_impl_base*, const any_io_executor&); + + constexpr any_completion_handler_immediate_executor_fn(type fn) + : immediate_executor_fn_(fn) + { + } + + any_completion_executor immediate_executor( + any_completion_handler_impl_base* impl, + const any_io_executor& candidate) const + { + return immediate_executor_fn_(impl, candidate); + } + + template + static any_completion_executor impl(any_completion_handler_impl_base* impl, + const any_io_executor& candidate) + { + return static_cast*>( + impl)->immediate_executor(candidate); + } + +private: + type immediate_executor_fn_; +}; + +class any_completion_handler_allocate_fn +{ +public: + using type = void*(*)(any_completion_handler_impl_base*, + std::size_t, std::size_t); + + constexpr any_completion_handler_allocate_fn(type fn) + : allocate_fn_(fn) + { + } + + void* allocate(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) const + { + return allocate_fn_(impl, size, align); + } + + template + static void* impl(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) + { + return static_cast*>(impl)->allocate( + size, align); + } + +private: + type allocate_fn_; +}; + +class any_completion_handler_deallocate_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, + void*, std::size_t, std::size_t); + + constexpr any_completion_handler_deallocate_fn(type fn) + : deallocate_fn_(fn) + { + } + + void deallocate(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) const + { + deallocate_fn_(impl, p, size, align); + } + + template + static void impl(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) + { + static_cast*>(impl)->deallocate( + p, size, align); + } + +private: + type deallocate_fn_; +}; + +template +class any_completion_handler_fn_table + : private any_completion_handler_destroy_fn, + private any_completion_handler_executor_fn, + private any_completion_handler_immediate_executor_fn, + private any_completion_handler_allocate_fn, + private any_completion_handler_deallocate_fn, + private any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_fn_table( + any_completion_handler_destroy_fn::type destroy_fn, + any_completion_handler_executor_fn::type executor_fn, + any_completion_handler_immediate_executor_fn::type immediate_executor_fn, + any_completion_handler_allocate_fn::type allocate_fn, + any_completion_handler_deallocate_fn::type deallocate_fn, + CallFns... call_fns) + : any_completion_handler_destroy_fn(destroy_fn), + any_completion_handler_executor_fn(executor_fn), + any_completion_handler_immediate_executor_fn(immediate_executor_fn), + any_completion_handler_allocate_fn(allocate_fn), + any_completion_handler_deallocate_fn(deallocate_fn), + any_completion_handler_call_fns(call_fns...) + { + } + + using any_completion_handler_destroy_fn::destroy; + using any_completion_handler_executor_fn::executor; + using any_completion_handler_immediate_executor_fn::immediate_executor; + using any_completion_handler_allocate_fn::allocate; + using any_completion_handler_deallocate_fn::deallocate; + using any_completion_handler_call_fns::call; +}; + +template +struct any_completion_handler_fn_table_instance +{ + static constexpr any_completion_handler_fn_table + value = any_completion_handler_fn_table( + &any_completion_handler_destroy_fn::impl, + &any_completion_handler_executor_fn::impl, + &any_completion_handler_immediate_executor_fn::impl, + &any_completion_handler_allocate_fn::impl, + &any_completion_handler_deallocate_fn::impl, + &any_completion_handler_call_fn::template impl...); +}; + +template +constexpr any_completion_handler_fn_table +any_completion_handler_fn_table_instance::value; + +} // namespace detail + +template +class any_completion_handler; + +/// An allocator type that forwards memory allocation operations through an +/// instance of @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) noexcept + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// The type of objects that may be allocated by the allocator. + typedef T value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + noexcept + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const noexcept + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const noexcept + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } + + /// Allocate space for @c n objects of the allocator's value type. + T* allocate(std::size_t n) const + { + if (fn_table_) + { + return static_cast( + fn_table_->allocate( + impl_, sizeof(T) * n, alignof(T))); + } + std::bad_alloc ex; + asio::detail::throw_exception(ex); + return nullptr; + } + + /// Deallocate space for @c n objects of the allocator's value type. + void deallocate(T* p, std::size_t n) const + { + fn_table_->deallocate(impl_, p, sizeof(T) * n, alignof(T)); + } +}; + +/// A protoco-allocator type that may be rebound to obtain an allocator that +/// forwards memory allocation operations through an instance of +/// @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) noexcept + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// @c void as no objects can be allocated through a proto-allocator. + typedef void value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + noexcept + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const noexcept + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const noexcept + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } +}; + +/// Polymorphic wrapper for completion handlers. +/** + * The @c any_completion_handler class template is a polymorphic wrapper for + * completion handlers that propagates the associated executor, associated + * allocator, and associated cancellation slot through a type-erasing interface. + * + * When using @c any_completion_handler, specify one or more completion + * signatures as template parameters. These will dictate the arguments that may + * be passed to the handler through the polymorphic interface. + * + * Typical uses for @c any_completion_handler include: + * + * @li Separate compilation of asynchronous operation implementations. + * + * @li Enabling interoperability between asynchronous operations and virtual + * functions. + */ +template +class any_completion_handler +{ +#if !defined(GENERATING_DOCUMENTATION) +private: + template + friend class any_completion_handler_allocator; + + template + friend struct associated_executor; + + template + friend struct associated_immediate_executor; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; +#endif // !defined(GENERATING_DOCUMENTATION) + +public: + /// The associated allocator type. + using allocator_type = any_completion_handler_allocator; + + /// The associated cancellation slot type. + using cancellation_slot_type = cancellation_slot; + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler() + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler(nullptr_t) + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler to contain the specified target. + template > + any_completion_handler(H&& h, + constraint_t< + !is_same, any_completion_handler>::value + > = 0) + : fn_table_( + &detail::any_completion_handler_fn_table_instance< + Handler, Signatures...>::value), + impl_(detail::any_completion_handler_impl::create( + (get_associated_cancellation_slot)(h), static_cast(h))) + { + } + + /// Move-construct an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler(any_completion_handler&& other) noexcept + : fn_table_(other.fn_table_), + impl_(other.impl_) + { + other.fn_table_ = nullptr; + other.impl_ = nullptr; + } + + /// Move-assign an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler& operator=( + any_completion_handler&& other) noexcept + { + any_completion_handler( + static_cast(other)).swap(*this); + return *this; + } + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + any_completion_handler& operator=(nullptr_t) noexcept + { + any_completion_handler().swap(*this); + return *this; + } + + /// Destructor. + ~any_completion_handler() + { + if (impl_) + fn_table_->destroy(impl_); + } + + /// Test if the polymorphic wrapper is empty. + constexpr explicit operator bool() const noexcept + { + return impl_ != nullptr; + } + + /// Test if the polymorphic wrapper is non-empty. + constexpr bool operator!() const noexcept + { + return impl_ == nullptr; + } + + /// Swap the content of an @c any_completion_handler with another. + void swap(any_completion_handler& other) noexcept + { + std::swap(fn_table_, other.fn_table_); + std::swap(impl_, other.impl_); + } + + /// Get the associated allocator. + allocator_type get_allocator() const noexcept + { + return allocator_type(0, *this); + } + + /// Get the associated cancellation slot. + cancellation_slot_type get_cancellation_slot() const noexcept + { + return impl_ ? impl_->get_cancellation_slot() : cancellation_slot_type(); + } + + /// Function call operator. + /** + * Invokes target completion handler with the supplied arguments. + * + * This function may only be called once, as the target handler is moved from. + * The polymorphic wrapper is left in an empty state. + * + * Throws @c std::bad_function_call if the polymorphic wrapper is empty. + */ + template + auto operator()(Args&&... args) + -> decltype(fn_table_->call(impl_, static_cast(args)...)) + { + if (detail::any_completion_handler_impl_base* impl = impl_) + { + impl_ = nullptr; + return fn_table_->call(impl, static_cast(args)...); + } + std::bad_function_call ex; + asio::detail::throw_exception(ex); + } + + /// Equality operator. + friend constexpr bool operator==( + const any_completion_handler& a, nullptr_t) noexcept + { + return a.impl_ == nullptr; + } + + /// Equality operator. + friend constexpr bool operator==( + nullptr_t, const any_completion_handler& b) noexcept + { + return nullptr == b.impl_; + } + + /// Inequality operator. + friend constexpr bool operator!=( + const any_completion_handler& a, nullptr_t) noexcept + { + return a.impl_ != nullptr; + } + + /// Inequality operator. + friend constexpr bool operator!=( + nullptr_t, const any_completion_handler& b) noexcept + { + return nullptr != b.impl_; + } +}; + +template +struct associated_executor, Candidate> +{ + using type = any_completion_executor; + + static type get(const any_completion_handler& handler, + const Candidate& candidate = Candidate()) noexcept + { + any_completion_executor any_candidate(std::nothrow, candidate); + return handler.fn_table_ + ? handler.fn_table_->executor(handler.impl_, any_candidate) + : any_candidate; + } +}; + +template +struct associated_immediate_executor< + any_completion_handler, Candidate> +{ + using type = any_completion_executor; + + static type get(const any_completion_handler& handler, + const Candidate& candidate = Candidate()) noexcept + { + any_io_executor any_candidate(std::nothrow, candidate); + return handler.fn_table_ + ? handler.fn_table_->immediate_executor(handler.impl_, any_candidate) + : any_candidate; + } +}; + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ANY_COMPLETION_HANDLER_HPP diff --git a/3rdparty/asio/include/asio/any_io_executor.hpp b/3rdparty/asio/include/asio/any_io_executor.hpp index 5f2c13f014ca4..d35acf44ae34d 100644 --- a/3rdparty/asio/include/asio/any_io_executor.hpp +++ b/3rdparty/asio/include/asio/any_io_executor.hpp @@ -2,7 +2,7 @@ // any_io_executor.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -87,30 +87,16 @@ class any_io_executor : #endif // !defined(GENERATING_DOCUMENTATION) /// Default constructor. - any_io_executor() ASIO_NOEXCEPT - : base_type() - { - } + ASIO_DECL any_io_executor() noexcept; /// Construct in an empty state. Equivalent effects to default constructor. - any_io_executor(nullptr_t) ASIO_NOEXCEPT - : base_type(nullptr_t()) - { - } + ASIO_DECL any_io_executor(nullptr_t) noexcept; /// Copy constructor. - any_io_executor(const any_io_executor& e) ASIO_NOEXCEPT - : base_type(static_cast(e)) - { - } + ASIO_DECL any_io_executor(const any_io_executor& e) noexcept; -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move constructor. - any_io_executor(any_io_executor&& e) ASIO_NOEXCEPT - : base_type(static_cast(e)) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + ASIO_DECL any_io_executor(any_io_executor&& e) noexcept; /// Construct to point to the same target as another any_executor. #if defined(GENERATING_DOCUMENTATION) @@ -119,8 +105,32 @@ class any_io_executor : #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(OtherAnyExecutor e, - typename constraint< - conditional< + constraint_t< + conditional_t< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::value + > = 0) + : base_type(static_cast(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, OtherAnyExecutor e, + constraint_t< + conditional_t< !is_same::value && is_base_of::value, @@ -128,13 +138,20 @@ class any_io_executor : 0, supportable_properties_type>::template is_valid_target, false_type - >::type::value - >::type = 0) - : base_type(ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + >::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, + const any_io_executor& e) noexcept; + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, any_io_executor&& e) noexcept; + /// Construct a polymorphic wrapper for the specified executor. #if defined(GENERATING_DOCUMENTATION) template @@ -142,54 +159,58 @@ class any_io_executor : #else // defined(GENERATING_DOCUMENTATION) template any_io_executor(Executor e, - typename constraint< - conditional< + constraint_t< + conditional_t< !is_same::value && !is_base_of::value, execution::detail::is_valid_target_executor< Executor, supportable_properties_type>, false_type - >::type::value - >::type = 0) - : base_type(ASIO_MOVE_CAST(Executor)(e)) + >::value + > = 0) + : base_type(static_cast(e)) { } #endif // defined(GENERATING_DOCUMENTATION) - /// Assignment operator. - any_io_executor& operator=(const any_io_executor& e) ASIO_NOEXCEPT + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e, + constraint_t< + conditional_t< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::value + > = 0) noexcept + : base_type(std::nothrow, static_cast(e)) { - base_type::operator=(static_cast(e)); - return *this; } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_io_executor& operator=( + const any_io_executor& e) noexcept; -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Move assignment operator. - any_io_executor& operator=(any_io_executor&& e) ASIO_NOEXCEPT - { - base_type::operator=(static_cast(e)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + ASIO_DECL any_io_executor& operator=(any_io_executor&& e) noexcept; /// Assignment operator that sets the polymorphic wrapper to the empty state. - any_io_executor& operator=(nullptr_t) - { - base_type::operator=(nullptr_t()); - return *this; - } + ASIO_DECL any_io_executor& operator=(nullptr_t); /// Destructor. - ~any_io_executor() - { - } + ASIO_DECL ~any_io_executor(); /// Swap targets with another polymorphic wrapper. - void swap(any_io_executor& other) ASIO_NOEXCEPT - { - static_cast(*this).swap(static_cast(other)); - } + ASIO_DECL void swap(any_io_executor& other) noexcept; /// Obtain a polymorphic wrapper with the specified property. /** @@ -202,9 +223,9 @@ class any_io_executor : */ template any_io_executor require(const Property& p, - typename constraint< + constraint_t< traits::require_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).require(p); } @@ -220,9 +241,9 @@ class any_io_executor : */ template any_io_executor prefer(const Property& p, - typename constraint< + constraint_t< traits::prefer_member::is_valid - >::type = 0) const + > = 0) const { return static_cast(*this).prefer(p); } @@ -230,6 +251,30 @@ class any_io_executor : #if !defined(GENERATING_DOCUMENTATION) +template <> +ASIO_DECL any_io_executor any_io_executor::require( + const execution::blocking_t::never_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::blocking_t::possibly_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + namespace traits { #if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) @@ -297,4 +342,10 @@ struct prefer_member : #include "asio/detail/pop_options.hpp" +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_io_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + #endif // ASIO_ANY_IO_EXECUTOR_HPP diff --git a/3rdparty/asio/include/asio/append.hpp b/3rdparty/asio/include/asio/append.hpp new file mode 100644 index 0000000000000..046089242801b --- /dev/null +++ b/3rdparty/asio/include/asio/append.hpp @@ -0,0 +1,65 @@ +// +// append.hpp +// ~~~~~~~~~~ +// +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_APPEND_HPP +#define ASIO_APPEND_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +class append_t +{ +public: + /// Constructor. + template + constexpr explicit append_t(T&& completion_token, V&&... values) + : token_(static_cast(completion_token)), + values_(static_cast(values)...) + { + } + +//private: + CompletionToken token_; + std::tuple values_; +}; + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +ASIO_NODISCARD inline constexpr +append_t, decay_t...> +append(CompletionToken&& completion_token, Values&&... values) +{ + return append_t, decay_t...>( + static_cast(completion_token), + static_cast(values)...); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/append.hpp" + +#endif // ASIO_APPEND_HPP diff --git a/3rdparty/asio/include/asio/as_tuple.hpp b/3rdparty/asio/include/asio/as_tuple.hpp new file mode 100644 index 0000000000000..60008bda5c2af --- /dev/null +++ b/3rdparty/asio/include/asio/as_tuple.hpp @@ -0,0 +1,126 @@ +// +// as_tuple.hpp +// ~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_AS_TUPLE_HPP +#define ASIO_AS_TUPLE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// A @ref completion_token adapter used to specify that the completion handler +/// arguments should be combined into a single tuple argument. +/** + * The as_tuple_t class is used to indicate that any arguments to the + * completion handler should be combined and passed as a single tuple argument. + * The arguments are first moved into a @c std::tuple and that tuple is then + * passed to the completion handler. + */ +template +class as_tuple_t +{ +public: + /// Tag type used to prevent the "default" constructor from being used for + /// conversions. + struct default_constructor_tag {}; + + /// Default constructor. + /** + * This constructor is only valid if the underlying completion token is + * default constructible and move constructible. The underlying completion + * token is itself defaulted as an argument to allow it to capture a source + * location. + */ + constexpr as_tuple_t( + default_constructor_tag = default_constructor_tag(), + CompletionToken token = CompletionToken()) + : token_(static_cast(token)) + { + } + + /// Constructor. + template + constexpr explicit as_tuple_t( + T&& completion_token) + : token_(static_cast(completion_token)) + { + } + + /// Adapts an executor to add the @c as_tuple_t completion token as the + /// default. + template + struct executor_with_default : InnerExecutor + { + /// Specify @c as_tuple_t as the default completion token type. + typedef as_tuple_t default_completion_token_type; + + /// Construct the adapted executor from the inner executor type. + template + executor_with_default(const InnerExecutor1& ex, + constraint_t< + conditional_t< + !is_same::value, + is_convertible, + false_type + >::value + > = 0) noexcept + : InnerExecutor(ex) + { + } + }; + + /// Type alias to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. + template + using as_default_on_t = typename T::template rebind_executor< + executor_with_default>::other; + + /// Function helper to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. + template + static typename decay_t::template rebind_executor< + executor_with_default::executor_type> + >::other + as_default_on(T&& object) + { + return typename decay_t::template rebind_executor< + executor_with_default::executor_type> + >::other(static_cast(object)); + } + +//private: + CompletionToken token_; +}; + +/// Adapt a @ref completion_token to specify that the completion handler +/// arguments should be combined into a single tuple argument. +template +ASIO_NODISCARD inline +constexpr as_tuple_t> +as_tuple(CompletionToken&& completion_token) +{ + return as_tuple_t>( + static_cast(completion_token)); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/as_tuple.hpp" + +#endif // ASIO_AS_TUPLE_HPP diff --git a/3rdparty/asio/include/asio/associated_allocator.hpp b/3rdparty/asio/include/asio/associated_allocator.hpp index 3f945834a95f2..f21ea250efb3d 100644 --- a/3rdparty/asio/include/asio/associated_allocator.hpp +++ b/3rdparty/asio/include/asio/associated_allocator.hpp @@ -2,7 +2,7 @@ // associated_allocator.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -36,43 +36,54 @@ struct has_allocator_type : false_type }; template -struct has_allocator_type::type> - : true_type +struct has_allocator_type> : true_type { }; -template +template struct associated_allocator_impl { - typedef E type; + typedef void asio_associated_allocator_is_unspecialised; - static type get(const T&, const E& e) ASIO_NOEXCEPT + typedef A type; + + static type get(const T&) noexcept + { + return type(); + } + + static const type& get(const T&, const A& a) noexcept { - return e; + return a; } }; -template -struct associated_allocator_impl::type> +template +struct associated_allocator_impl> { typedef typename T::allocator_type type; - static type get(const T& t, const E&) ASIO_NOEXCEPT + static auto get(const T& t) noexcept + -> decltype(t.get_allocator()) + { + return t.get_allocator(); + } + + static auto get(const T& t, const A&) noexcept + -> decltype(t.get_allocator()) { return t.get_allocator(); } }; -template -struct associated_allocator_impl +struct associated_allocator_impl::value - >::type, - typename void_type< - typename associator::type - >::type> : associator + >, + void_t< + typename associator::type + >> : associator { }; @@ -92,29 +103,32 @@ struct associated_allocator_impl > +template > struct associated_allocator +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_impl +#endif // !defined(GENERATING_DOCUMENTATION) { +#if defined(GENERATING_DOCUMENTATION) /// If @c T has a nested type @c allocator_type, T::allocator_type. /// Otherwise @c Allocator. -#if defined(GENERATING_DOCUMENTATION) typedef see_below type; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::associated_allocator_impl::type type; -#endif // defined(GENERATING_DOCUMENTATION) + + /// If @c T has a nested type @c allocator_type, returns + /// t.get_allocator(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) noexcept; /// If @c T has a nested type @c allocator_type, returns /// t.get_allocator(). Otherwise returns @c a. - static type get(const T& t, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return detail::associated_allocator_impl::get(t, a); - } + static decltype(auto) get(const T& t, const Allocator& a) noexcept; +#endif // defined(GENERATING_DOCUMENTATION) }; /// Helper function to obtain an object's associated allocator. @@ -122,8 +136,8 @@ struct associated_allocator * @returns associated_allocator::get(t) */ template -inline typename associated_allocator::type -get_associated_allocator(const T& t) ASIO_NOEXCEPT +ASIO_NODISCARD inline typename associated_allocator::type +get_associated_allocator(const T& t) noexcept { return associated_allocator::get(t); } @@ -133,26 +147,45 @@ get_associated_allocator(const T& t) ASIO_NOEXCEPT * @returns associated_allocator::get(t, a) */ template -inline typename associated_allocator::type -get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT +ASIO_NODISCARD inline auto get_associated_allocator( + const T& t, const Allocator& a) noexcept + -> decltype(associated_allocator::get(t, a)) { return associated_allocator::get(t, a); } -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - -template > +template > using associated_allocator_t = typename associated_allocator::type; -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) +namespace detail { + +template +struct associated_allocator_forwarding_base +{ +}; -#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) +template +struct associated_allocator_forwarding_base::asio_associated_allocator_is_unspecialised, + void + >::value + >> +{ + typedef void asio_associated_allocator_is_unspecialised; +}; + +} // namespace detail /// Specialisation of associated_allocator for @c std::reference_wrapper. template struct associated_allocator, Allocator> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) { /// Forwards @c type to the associator specialisation for the unwrapped type /// @c T. @@ -160,16 +193,20 @@ struct associated_allocator, Allocator> /// Forwards the request to get the allocator to the associator specialisation /// for the unwrapped type @c T. - static type get(reference_wrapper t, - const Allocator& a = Allocator()) ASIO_NOEXCEPT + static type get(reference_wrapper t) noexcept + { + return associated_allocator::get(t.get()); + } + + /// Forwards the request to get the allocator to the associator specialisation + /// for the unwrapped type @c T. + static auto get(reference_wrapper t, const Allocator& a) noexcept + -> decltype(associated_allocator::get(t.get(), a)) { return associated_allocator::get(t.get(), a); } }; -#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio #include "asio/detail/pop_options.hpp" diff --git a/3rdparty/asio/include/asio/associated_cancellation_slot.hpp b/3rdparty/asio/include/asio/associated_cancellation_slot.hpp index 6a809e71104b4..518bd881eaffd 100644 --- a/3rdparty/asio/include/asio/associated_cancellation_slot.hpp +++ b/3rdparty/asio/include/asio/associated_cancellation_slot.hpp @@ -2,7 +2,7 @@ // associated_cancellation_slot.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -18,6 +18,7 @@ #include "asio/detail/config.hpp" #include "asio/associator.hpp" #include "asio/cancellation_signal.hpp" +#include "asio/detail/functional.hpp" #include "asio/detail/type_traits.hpp" #include "asio/detail/push_options.hpp" @@ -35,9 +36,8 @@ struct has_cancellation_slot_type : false_type }; template -struct has_cancellation_slot_type::type> - : true_type +struct has_cancellation_slot_type> + : true_type { }; @@ -48,7 +48,12 @@ struct associated_cancellation_slot_impl typedef S type; - static type get(const T&, const S& s = S()) ASIO_NOEXCEPT + static type get(const T&) noexcept + { + return type(); + } + + static const type& get(const T&, const S& s) noexcept { return s; } @@ -56,11 +61,18 @@ struct associated_cancellation_slot_impl template struct associated_cancellation_slot_impl::type> + void_t> { typedef typename T::cancellation_slot_type type; - static type get(const T& t, const S& = S()) ASIO_NOEXCEPT + static auto get(const T& t) noexcept + -> decltype(t.get_cancellation_slot()) + { + return t.get_cancellation_slot(); + } + + static auto get(const T& t, const S&) noexcept + -> decltype(t.get_cancellation_slot()) { return t.get_cancellation_slot(); } @@ -68,12 +80,12 @@ struct associated_cancellation_slot_impl struct associated_cancellation_slot_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -93,10 +105,12 @@ struct associated_cancellation_slot_impl struct associated_cancellation_slot @@ -110,10 +124,14 @@ struct associated_cancellation_slot /// @c CancellationSlot. typedef see_below type; + /// If @c T has a nested type @c cancellation_slot_type, returns + /// t.get_cancellation_slot(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) noexcept; + /// If @c T has a nested type @c cancellation_slot_type, returns /// t.get_cancellation_slot(). Otherwise returns @c s. - static type get(const T& t, - const CancellationSlot& s = CancellationSlot()) ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, + const CancellationSlot& s) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -122,8 +140,8 @@ struct associated_cancellation_slot * @returns associated_cancellation_slot::get(t) */ template -inline typename associated_cancellation_slot::type -get_associated_cancellation_slot(const T& t) ASIO_NOEXCEPT +ASIO_NODISCARD inline typename associated_cancellation_slot::type +get_associated_cancellation_slot(const T& t) noexcept { return associated_cancellation_slot::get(t); } @@ -134,21 +152,17 @@ get_associated_cancellation_slot(const T& t) ASIO_NOEXCEPT * CancellationSlot>::get(t, st) */ template -inline typename associated_cancellation_slot::type -get_associated_cancellation_slot(const T& t, - const CancellationSlot& st) ASIO_NOEXCEPT +ASIO_NODISCARD inline auto get_associated_cancellation_slot( + const T& t, const CancellationSlot& st) noexcept + -> decltype(associated_cancellation_slot::get(t, st)) { return associated_cancellation_slot::get(t, st); } -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - template using associated_cancellation_slot_t = typename associated_cancellation_slot::type; -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -158,18 +172,48 @@ struct associated_cancellation_slot_forwarding_base template struct associated_cancellation_slot_forwarding_base::asio_associated_cancellation_slot_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_cancellation_slot_is_unspecialised; }; } // namespace detail + +/// Specialisation of associated_cancellation_slot for @c +/// std::reference_wrapper. +template +struct associated_cancellation_slot, CancellationSlot> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_cancellation_slot_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_cancellation_slot::type type; + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static type get(reference_wrapper t) noexcept + { + return associated_cancellation_slot::get(t.get()); + } + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static auto get(reference_wrapper t, const CancellationSlot& s) noexcept + -> decltype( + associated_cancellation_slot::get(t.get(), s)) + { + return associated_cancellation_slot::get(t.get(), s); + } +}; + } // namespace asio #include "asio/detail/pop_options.hpp" diff --git a/3rdparty/asio/include/asio/associated_executor.hpp b/3rdparty/asio/include/asio/associated_executor.hpp index 1e62e37a12ee1..4ca7ba149e90e 100644 --- a/3rdparty/asio/include/asio/associated_executor.hpp +++ b/3rdparty/asio/include/asio/associated_executor.hpp @@ -2,7 +2,7 @@ // associated_executor.hpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -38,8 +38,7 @@ struct has_executor_type : false_type }; template -struct has_executor_type::type> +struct has_executor_type> : true_type { }; @@ -51,19 +50,30 @@ struct associated_executor_impl typedef E type; - static type get(const T&, const E& e = E()) ASIO_NOEXCEPT + static type get(const T&) noexcept + { + return type(); + } + + static const type& get(const T&, const E& e) noexcept { return e; } }; template -struct associated_executor_impl::type> +struct associated_executor_impl> { typedef typename T::executor_type type; - static type get(const T& t, const E& = E()) ASIO_NOEXCEPT + static auto get(const T& t) noexcept + -> decltype(t.get_executor()) + { + return t.get_executor(); + } + + static auto get(const T& t, const E&) noexcept + -> decltype(t.get_executor()) { return t.get_executor(); } @@ -71,12 +81,12 @@ struct associated_executor_impl struct associated_executor_impl::value - >::type, - typename void_type< + >, + void_t< typename associator::type - >::type> : associator + >> : associator { }; @@ -96,10 +106,12 @@ struct associated_executor_impl struct associated_executor @@ -112,10 +124,13 @@ struct associated_executor /// Otherwise @c Executor. typedef see_below type; + /// If @c T has a nested type @c executor_type, returns + /// t.get_executor(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) noexcept; + /// If @c T has a nested type @c executor_type, returns /// t.get_executor(). Otherwise returns @c ex. - static type get(const T& t, - const Executor& ex = Executor()) ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, const Executor& ex) noexcept; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -124,8 +139,8 @@ struct associated_executor * @returns associated_executor::get(t) */ template -inline typename associated_executor::type -get_associated_executor(const T& t) ASIO_NOEXCEPT +ASIO_NODISCARD inline typename associated_executor::type +get_associated_executor(const T& t) noexcept { return associated_executor::get(t); } @@ -135,11 +150,12 @@ get_associated_executor(const T& t) ASIO_NOEXCEPT * @returns associated_executor::get(t, ex) */ template -inline typename associated_executor::type -get_associated_executor(const T& t, const Executor& ex, - typename constraint< +ASIO_NODISCARD inline auto get_associated_executor( + const T& t, const Executor& ex, + constraint_t< is_executor::value || execution::is_executor::value - >::type = 0) ASIO_NOEXCEPT + > = 0) noexcept + -> decltype(associated_executor::get(t, ex)) { return associated_executor::get(t, ex); } @@ -150,23 +166,19 @@ get_associated_executor(const T& t, const Executor& ex, * ExecutionContext::executor_type>::get(t, ctx.get_executor()) */ template -inline typename associated_executor::type +ASIO_NODISCARD inline typename associated_executor::type get_associated_executor(const T& t, ExecutionContext& ctx, - typename constraint::value>::type = 0) ASIO_NOEXCEPT + constraint_t::value> = 0) noexcept { return associated_executor::get(t, ctx.get_executor()); } -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - template using associated_executor_t = typename associated_executor::type; -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - namespace detail { template @@ -176,22 +188,19 @@ struct associated_executor_forwarding_base template struct associated_executor_forwarding_base::asio_associated_executor_is_unspecialised, void >::value - >::type> + >> { typedef void asio_associated_executor_is_unspecialised; }; } // namespace detail -#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ - || defined(GENERATING_DOCUMENTATION) - /// Specialisation of associated_executor for @c std::reference_wrapper. template struct associated_executor, Executor> @@ -205,16 +214,20 @@ struct associated_executor, Executor> /// Forwards the request to get the executor to the associator specialisation /// for the unwrapped type @c T. - static type get(reference_wrapper t, - const Executor& ex = Executor()) ASIO_NOEXCEPT + static type get(reference_wrapper t) noexcept + { + return associated_executor::get(t.get()); + } + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static auto get(reference_wrapper t, const Executor& ex) noexcept + -> decltype(associated_executor::get(t.get(), ex)) { return associated_executor::get(t.get(), ex); } }; -#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) - // || defined(GENERATING_DOCUMENTATION) - } // namespace asio #include "asio/detail/pop_options.hpp" diff --git a/3rdparty/asio/include/asio/associated_immediate_executor.hpp b/3rdparty/asio/include/asio/associated_immediate_executor.hpp new file mode 100644 index 0000000000000..aa6e0fcfee79f --- /dev/null +++ b/3rdparty/asio/include/asio/associated_immediate_executor.hpp @@ -0,0 +1,280 @@ +// +// associated_immediate_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP +#define ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include "asio/associator.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" +#include "asio/execution/blocking.hpp" +#include "asio/execution/executor.hpp" +#include "asio/execution_context.hpp" +#include "asio/is_executor.hpp" +#include "asio/require.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_immediate_executor; + +namespace detail { + +template +struct has_immediate_executor_type : false_type +{ +}; + +template +struct has_immediate_executor_type> + : true_type +{ +}; + +template +struct default_immediate_executor +{ + typedef require_result_t type; + + static type get(const E& e) noexcept + { + return asio::require(e, execution::blocking.never); + } +}; + +template +struct default_immediate_executor::value + >, + enable_if_t< + is_executor::value + >> +{ + class type : public E + { + public: + template + explicit type(const Executor1& e, + constraint_t< + conditional_t< + !is_same::value, + is_convertible, + false_type + >::value + > = 0) noexcept + : E(e) + { + } + + type(const type& other) noexcept + : E(static_cast(other)) + { + } + + type(type&& other) noexcept + : E(static_cast(other)) + { + } + + template + void dispatch(Function&& f, const Allocator& a) const + { + this->post(static_cast(f), a); + } + + friend bool operator==(const type& a, const type& b) noexcept + { + return static_cast(a) == static_cast(b); + } + + friend bool operator!=(const type& a, const type& b) noexcept + { + return static_cast(a) != static_cast(b); + } + }; + + static type get(const E& e) noexcept + { + return type(e); + } +}; + +template +struct associated_immediate_executor_impl +{ + typedef void asio_associated_immediate_executor_is_unspecialised; + + typedef typename default_immediate_executor::type type; + + static auto get(const T&, const E& e) noexcept + -> decltype(default_immediate_executor::get(e)) + { + return default_immediate_executor::get(e); + } +}; + +template +struct associated_immediate_executor_impl> +{ + typedef typename T::immediate_executor_type type; + + static auto get(const T& t, const E&) noexcept + -> decltype(t.get_immediate_executor()) + { + return t.get_immediate_executor(); + } +}; + +template +struct associated_immediate_executor_impl::value + >, + void_t< + typename associator::type + >> : associator +{ +}; + +} // namespace detail + +/// Traits type used to obtain the immediate executor associated with an object. +/** + * A program may specialise this traits type if the @c T template parameter in + * the specialisation is a user-defined type. The template parameter @c + * Executor shall be a type meeting the Executor requirements. + * + * Specialisations shall meet the following requirements, where @c t is a const + * reference to an object of type @c T, and @c e is an object of type @c + * Executor. + * + * @li Provide a nested typedef @c type that identifies a type meeting the + * Executor requirements. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t) and with return type @c type or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,e) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_immediate_executor +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c immediate_executor_type, + // T::immediate_executor_type. Otherwise @c Executor. + typedef see_below type; + + /// If @c T has a nested type @c immediate_executor_type, returns + /// t.get_immediate_executor(). Otherwise returns + /// asio::require(ex, asio::execution::blocking.never). + static decltype(auto) get(const T& t, const Executor& ex) noexcept; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ex) + */ +template +ASIO_NODISCARD inline auto get_associated_immediate_executor( + const T& t, const Executor& ex, + constraint_t< + is_executor::value || execution::is_executor::value + > = 0) noexcept + -> decltype(associated_immediate_executor::get(t, ex)) +{ + return associated_immediate_executor::get(t, ex); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ctx.get_executor()) + */ +template +ASIO_NODISCARD inline typename associated_immediate_executor::type +get_associated_immediate_executor(const T& t, ExecutionContext& ctx, + constraint_t< + is_convertible::value + > = 0) noexcept +{ + return associated_immediate_executor::get(t, ctx.get_executor()); +} + +template +using associated_immediate_executor_t = + typename associated_immediate_executor::type; + +namespace detail { + +template +struct associated_immediate_executor_forwarding_base +{ +}; + +template +struct associated_immediate_executor_forwarding_base::asio_associated_immediate_executor_is_unspecialised, + void + >::value + >> +{ + typedef void asio_associated_immediate_executor_is_unspecialised; +}; + +} // namespace detail + +/// Specialisation of associated_immediate_executor for +/// @c std::reference_wrapper. +template +struct associated_immediate_executor, Executor> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_immediate_executor::type type; + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static auto get(reference_wrapper t, const Executor& ex) noexcept + -> decltype(associated_immediate_executor::get(t.get(), ex)) + { + return associated_immediate_executor::get(t.get(), ex); + } +}; + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP diff --git a/3rdparty/asio/include/asio/associator.hpp b/3rdparty/asio/include/asio/associator.hpp index 0f93b120623a8..7952fcc51ba73 100644 --- a/3rdparty/asio/include/asio/associator.hpp +++ b/3rdparty/asio/include/asio/associator.hpp @@ -2,7 +2,7 @@ // associator.hpp // ~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/3rdparty/asio/include/asio/async_result.hpp b/3rdparty/asio/include/asio/async_result.hpp index 1750e19e3a478..cdae9ede687e7 100644 --- a/3rdparty/asio/include/asio/async_result.hpp +++ b/3rdparty/asio/include/asio/async_result.hpp @@ -2,7 +2,7 @@ // async_result.hpp // ~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -17,15 +17,12 @@ #include "asio/detail/config.hpp" #include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" #include "asio/detail/push_options.hpp" namespace asio { -#if defined(ASIO_HAS_CONCEPTS) \ - && defined(ASIO_HAS_VARIADIC_TEMPLATES) \ - && defined(ASIO_HAS_DECLTYPE) +#if defined(ASIO_HAS_CONCEPTS) namespace detail { @@ -39,8 +36,6 @@ struct is_completion_signature : true_type { }; -#if defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - template struct is_completion_signature : true_type { @@ -69,7 +64,6 @@ struct is_completion_signature : true_type }; # endif // defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) template struct are_completion_signatures : false_type @@ -103,21 +97,19 @@ struct is_completion_handler_for : false_type template struct is_completion_handler_for - : integral_constant)> + : integral_constant, Args...>)> { }; -#if defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - template struct is_completion_handler_for - : integral_constant)> + : integral_constant&, Args...>)> { }; template struct is_completion_handler_for - : integral_constant)> + : integral_constant&&, Args...>)> { }; @@ -125,24 +117,23 @@ struct is_completion_handler_for template struct is_completion_handler_for - : integral_constant)> + : integral_constant, Args...>)> { }; template struct is_completion_handler_for - : integral_constant)> + : integral_constant&, Args...>)> { }; template struct is_completion_handler_for - : integral_constant)> + : integral_constant&&, Args...>)> { }; # endif // defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) template struct is_completion_handler_for @@ -174,8 +165,6 @@ ASIO_CONCEPT completion_handler_for = ::asio::completion_handler_for #else // defined(ASIO_HAS_CONCEPTS) - // && defined(ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(ASIO_HAS_DECLTYPE) #define ASIO_COMPLETION_SIGNATURE typename #define ASIO_COMPLETION_HANDLER_FOR(sig) typename @@ -183,271 +172,130 @@ ASIO_CONCEPT completion_handler_for = #define ASIO_COMPLETION_HANDLER_FOR3(sig0, sig1, sig2) typename #endif // defined(ASIO_HAS_CONCEPTS) - // && defined(ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(ASIO_HAS_DECLTYPE) namespace detail { template -struct is_simple_completion_signature : false_type +struct is_lvalue_completion_signature : false_type { }; -template -struct simple_completion_signature; +template +struct is_lvalue_completion_signature : true_type +{ +}; -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) +# if defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) template -struct is_simple_completion_signature : true_type +struct is_lvalue_completion_signature : true_type { }; +# endif // defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) + template -struct are_simple_completion_signatures : false_type +struct are_any_lvalue_completion_signatures : false_type { }; template -struct are_simple_completion_signatures - : is_simple_completion_signature +struct are_any_lvalue_completion_signatures + : is_lvalue_completion_signature { }; template -struct are_simple_completion_signatures +struct are_any_lvalue_completion_signatures : integral_constant::value - && are_simple_completion_signatures::value)> + is_lvalue_completion_signature::value + || are_any_lvalue_completion_signatures::value)> { }; -template -struct simple_completion_signature -{ - typedef R type(Args...); -}; - -#if defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -struct simple_completion_signature +template +struct is_rvalue_completion_signature : false_type { - typedef R type(Args...); }; template -struct simple_completion_signature +struct is_rvalue_completion_signature : true_type { - typedef R type(Args...); }; # if defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) template -struct simple_completion_signature -{ - typedef R type(Args...); -}; - -template -struct simple_completion_signature +struct is_rvalue_completion_signature : true_type { - typedef R type(Args...); -}; - -template -struct simple_completion_signature -{ - typedef R type(Args...); }; # endif // defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct is_simple_completion_signature : true_type -{ -}; - -#define ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct is_simple_completion_signature \ - : true_type \ - { \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef ASIO_PRIVATE_SIMPLE_SIG_DEF - -template -struct are_simple_completion_signatures : false_type +template +struct are_any_rvalue_completion_signatures : false_type { }; template -struct are_simple_completion_signatures - : is_simple_completion_signature +struct are_any_rvalue_completion_signatures + : is_rvalue_completion_signature { }; -template -struct are_simple_completion_signatures - : integral_constant::value - && is_simple_completion_signature::value)> +template +struct are_any_rvalue_completion_signatures + : integral_constant::value + || are_any_rvalue_completion_signatures::value)> { }; -template -struct are_simple_completion_signatures - : integral_constant::value - && is_simple_completion_signature::value - && is_simple_completion_signature::value)> -{ -}; +template +struct simple_completion_signature; -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -#define ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef ASIO_PRIVATE_SIMPLE_SIG_DEF - -#if defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -#define ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature< \ - R(ASIO_VARIADIC_TARGS(n)) &> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(ASIO_VARIADIC_TARGS(n)) &&> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef ASIO_PRIVATE_SIMPLE_SIG_DEF - # if defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -template -struct simple_completion_signature +template +struct simple_completion_signature { - typedef R type(); + typedef R type(Args...); }; -#define ASIO_PRIVATE_SIMPLE_SIG_DEF(n) \ - template \ - struct simple_completion_signature< \ - R(ASIO_VARIADIC_TARGS(n)) noexcept> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(ASIO_VARIADIC_TARGS(n)) & noexcept> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct simple_completion_signature< \ - R(ASIO_VARIADIC_TARGS(n)) && noexcept> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_SIMPLE_SIG_DEF) -#undef ASIO_PRIVATE_SIMPLE_SIG_DEF - # endif // defined(ASIO_HAS_NOEXCEPT_FUNCTION_TYPE) -#endif // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) \ - || defined(GENERATING_DOCUMENTATION) - -# define ASIO_COMPLETION_SIGNATURES_TPARAMS \ - ASIO_COMPLETION_SIGNATURE... Signatures -# define ASIO_COMPLETION_SIGNATURES_TSPECPARAMS \ - ASIO_COMPLETION_SIGNATURE... Signatures - -# define ASIO_COMPLETION_SIGNATURES_TARGS Signatures... - -# define ASIO_COMPLETION_SIGNATURES_TSIMPLEARGS \ - typename asio::detail::simple_completion_signature< \ - Signatures>::type... - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -# define ASIO_COMPLETION_SIGNATURES_TPARAMS \ - typename Sig0 = void, \ - typename Sig1 = void, \ - typename Sig2 = void - -# define ASIO_COMPLETION_SIGNATURES_TSPECPARAMS \ - typename Sig0, \ - typename Sig1, \ - typename Sig2 - -# define ASIO_COMPLETION_SIGNATURES_TARGS Sig0, Sig1, Sig2 - -# define ASIO_COMPLETION_SIGNATURES_TSIMPLEARGS \ - typename ::asio::detail::simple_completion_signature::type, \ - typename ::asio::detail::simple_completion_signature::type, \ - typename ::asio::detail::simple_completion_signature::type - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -template +template class completion_handler_async_result { public: @@ -462,56 +310,22 @@ class completion_handler_async_result { } -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - static return_type initiate( - ASIO_MOVE_ARG(Initiation) initiation, - ASIO_MOVE_ARG(RawCompletionToken) token, - ASIO_MOVE_ARG(Args)... args) + static return_type initiate(Initiation&& initiation, + RawCompletionToken&& token, Args&&... args) { - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(RawCompletionToken)(token), - ASIO_MOVE_CAST(Args)(args)...); + static_cast(initiation)( + static_cast(token), + static_cast(args)...); } -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - static return_type initiate( - ASIO_MOVE_ARG(Initiation) initiation, - ASIO_MOVE_ARG(RawCompletionToken) token) - { - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(RawCompletionToken)(token)); - } - -#define ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - static return_type initiate( \ - ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_MOVE_ARG(RawCompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - ASIO_MOVE_CAST(Initiation)(initiation)( \ - ASIO_MOVE_CAST(RawCompletionToken)(token), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF) -#undef ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - private: completion_handler_async_result( - const completion_handler_async_result&) ASIO_DELETED; + const completion_handler_async_result&) = delete; completion_handler_async_result& operator=( - const completion_handler_async_result&) ASIO_DELETED; + const completion_handler_async_result&) = delete; }; } // namespace detail @@ -536,7 +350,8 @@ class completion_handler_async_result * The primary template assumes that the CompletionToken is the completion * handler. */ -template +template class async_result { public: @@ -561,70 +376,46 @@ class async_result /// obtain the value to be returned from the initiating function. template static return_type initiate( - ASIO_MOVE_ARG(Initiation) initiation, - ASIO_MOVE_ARG(RawCompletionToken) token, - ASIO_MOVE_ARG(Args)... args); + Initiation&& initiation, + RawCompletionToken&& token, + Args&&... args); private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; }; #else // defined(GENERATING_DOCUMENTATION) -#if defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template +template class async_result : - public conditional< - detail::are_simple_completion_signatures< - ASIO_COMPLETION_SIGNATURES_TARGS>::value, - detail::completion_handler_async_result< - CompletionToken, ASIO_COMPLETION_SIGNATURES_TARGS>, + public conditional_t< + detail::are_any_lvalue_completion_signatures::value + || !detail::are_any_rvalue_completion_signatures::value, + detail::completion_handler_async_result, async_result - >::type + typename detail::simple_completion_signature::type...> + > { public: - typedef typename conditional< - detail::are_simple_completion_signatures< - ASIO_COMPLETION_SIGNATURES_TARGS>::value, - detail::completion_handler_async_result< - CompletionToken, ASIO_COMPLETION_SIGNATURES_TARGS>, + typedef conditional_t< + detail::are_any_lvalue_completion_signatures::value + || !detail::are_any_rvalue_completion_signatures::value, + detail::completion_handler_async_result, async_result - >::type base_type; + typename detail::simple_completion_signature::type...> + > base_type; using base_type::base_type; private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; -}; - -#else // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -class async_result : - public detail::completion_handler_async_result< - CompletionToken, ASIO_COMPLETION_SIGNATURES_TARGS> -{ -public: - explicit async_result(CompletionToken& h) - : detail::completion_handler_async_result< - CompletionToken, ASIO_COMPLETION_SIGNATURES_TARGS>(h) - { - } - -private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; + async_result(const async_result&) = delete; + async_result& operator=(const async_result&) = delete; }; -#endif // defined(ASIO_HAS_REF_QUALIFIED_FUNCTIONS) - -template -class async_result +template +class async_result { // Empty. }; @@ -634,65 +425,39 @@ class async_result /// Helper template to deduce the handler type from a CompletionToken, capture /// a local copy of the handler, and then create an async_result for the /// handler. -template +template struct async_completion { /// The real handler type to be used for the asynchronous operation. typedef typename asio::async_result< - typename decay::type, - ASIO_COMPLETION_SIGNATURES_TARGS>::completion_handler_type - completion_handler_type; + decay_t, Signatures...>::completion_handler_type + completion_handler_type; -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) /// Constructor. /** * The constructor creates the concrete completion handler and makes the link * between the handler and the asynchronous result. */ explicit async_completion(CompletionToken& token) - : completion_handler(static_cast::value, - completion_handler_type&, CompletionToken&&>::type>(token)), - result(completion_handler) - { - } -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - explicit async_completion(typename decay::type& token) - : completion_handler(token), + completion_handler_type&, CompletionToken&&>>(token)), result(completion_handler) { } - explicit async_completion(const typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// A copy of, or reference to, a real handler object. -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - typename conditional< + conditional_t< is_same::value, - completion_handler_type&, completion_handler_type>::type completion_handler; -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - completion_handler_type completion_handler; -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + completion_handler_type&, completion_handler_type> completion_handler; /// The result of the asynchronous operation's initiating function. - async_result::type, - ASIO_COMPLETION_SIGNATURES_TARGS> result; + async_result, Signatures...> result; }; namespace detail { -template -struct async_result_helper - : async_result::type, - ASIO_COMPLETION_SIGNATURES_TARGS> -{ -}; - struct async_result_memfns_base { void initiate(); @@ -718,11 +483,11 @@ char async_result_initiate_memfn_helper( void (async_result_memfns_base::*)(), &async_result_memfns_derived::initiate>*); -template +template struct async_result_has_initiate_memfn : integral_constant::type, - ASIO_COMPLETION_SIGNATURES_TARGS> + async_result, Signatures...> >(0)) != 1> { }; @@ -736,25 +501,6 @@ struct async_result_has_initiate_memfn void_or_deduced # define ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) \ void_or_deduced -#elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::return_type -# define ASIO_INITFN_RESULT_TYPE2(ct, sig0, sig1) \ - typename ::asio::detail::async_result_helper< \ - ct, sig0, sig1>::return_type -# define ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) \ - typename ::asio::detail::async_result_helper< \ - ct, sig0, sig1, sig2>::return_type -#define ASIO_HANDLER_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::completion_handler_type -#define ASIO_HANDLER_TYPE2(ct, sig0, sig1) \ - typename ::asio::detail::async_result_helper< \ - ct, sig0, sig1>::completion_handler_type -#define ASIO_HANDLER_TYPE3(ct, sig0, sig1, sig2) \ - typename ::asio::detail::async_result_helper< \ - ct, sig0, sig1, sig2>::completion_handler_type #else # define ASIO_INITFN_RESULT_TYPE(ct, sig) \ typename ::asio::async_result< \ @@ -801,6 +547,32 @@ struct async_result_has_initiate_memfn ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) #endif +#if defined(GENERATING_DOCUMENTATION) +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ct, sig) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX2(ct, sig0, sig1) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) +#elif defined(ASIO_HAS_RETURN_TYPE_DEDUCTION) +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ct, sig) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX2(ct, sig0, sig1) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) +#else +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX(ct, sig) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX2(ct, sig0, sig1) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_PREFIX3(ct, sig0, sig1, sig2) \ + auto +# define ASIO_INITFN_AUTO_RESULT_TYPE_SUFFIX(expr) -> decltype expr +#endif + #if defined(GENERATING_DOCUMENTATION) # define ASIO_INITFN_DEDUCED_RESULT_TYPE(ct, sig, expr) \ void_or_deduced @@ -808,20 +580,13 @@ struct async_result_has_initiate_memfn void_or_deduced # define ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ void_or_deduced -#elif defined(ASIO_HAS_DECLTYPE) +#else # define ASIO_INITFN_DEDUCED_RESULT_TYPE(ct, sig, expr) \ decltype expr # define ASIO_INITFN_DEDUCED_RESULT_TYPE2(ct, sig0, sig1, expr) \ decltype expr # define ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ decltype expr -#else -# define ASIO_INITFN_DEDUCED_RESULT_TYPE(ct, sig, expr) \ - ASIO_INITFN_RESULT_TYPE(ct, sig) -# define ASIO_INITFN_DEDUCED_RESULT_TYPE2(ct, sig0, sig1, expr) \ - ASIO_INITFN_RESULT_TYPE2(ct, sig0, sig1) -# define ASIO_INITFN_DEDUCED_RESULT_TYPE3(ct, sig0, sig1, sig2, expr) \ - ASIO_INITFN_RESULT_TYPE3(ct, sig0, sig1, sig2) #endif #if defined(GENERATING_DOCUMENTATION) @@ -830,326 +595,57 @@ template void_or_deduced async_initiate( - ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken), - ASIO_MOVE_ARG(Args)... args); + Initiation&& initiation, + type_identity_t& token, + Args&&... args); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) +#else // defined(GENERATING_DOCUMENTATION) template -inline typename constraint< +inline auto async_initiate(Initiation&& initiation, + type_identity_t& token, Args&&... args) + -> constraint_t< detail::async_result_has_initiate_memfn< CompletionToken, Signatures...>::value, - ASIO_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, Signatures..., - (async_result::type, - Signatures...>::initiate(declval(), - declval(), - declval()...)))>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, - ASIO_MOVE_ARG(Args)... args) -{ - return async_result::type, - Signatures...>::initiate(ASIO_MOVE_CAST(Initiation)(initiation), - ASIO_MOVE_CAST(CompletionToken)(token), - ASIO_MOVE_CAST(Args)(args)...); + decltype( + async_result, Signatures...>::initiate( + static_cast(initiation), + static_cast(token), + static_cast(args)...))> +{ + return async_result, Signatures...>::initiate( + static_cast(initiation), + static_cast(token), + static_cast(args)...); } template -inline typename constraint< +inline constraint_t< !detail::async_result_has_initiate_memfn< CompletionToken, Signatures...>::value, - ASIO_INITFN_RESULT_TYPE(CompletionToken, Signatures...)>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, - ASIO_MOVE_ARG(Args)... args) + typename async_result, Signatures...>::return_type> +async_initiate(Initiation&& initiation, + type_identity_t& token, Args&&... args) { async_completion completion(token); - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE(CompletionToken, - Signatures...))(completion.completion_handler), - ASIO_MOVE_CAST(Args)(args)...); + static_cast(initiation)( + static_cast< + typename async_result, + Signatures...>::completion_handler_type&&>( + completion.completion_handler), + static_cast(args)...); return completion.result.get(); } -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0>::value, - ASIO_INITFN_DEDUCED_RESULT_TYPE(CompletionToken, Sig0, - (async_result::type, - Sig0>::initiate(declval(), - declval())))>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0>::initiate(ASIO_MOVE_CAST(Initiation)(initiation), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1>::value, - ASIO_INITFN_DEDUCED_RESULT_TYPE2(CompletionToken, Sig0, Sig1, - (async_result::type, - Sig0, Sig1>::initiate(declval(), - declval())))>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0, Sig1>::initiate(ASIO_MOVE_CAST(Initiation)(initiation), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1, Sig2>::value, - ASIO_INITFN_DEDUCED_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2, - (async_result::type, - Sig0, Sig1, Sig2>::initiate(declval(), - declval())))>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - return async_result::type, - Sig0, Sig1, Sig2>::initiate(ASIO_MOVE_CAST(Initiation)(initiation), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0>::value, - ASIO_INITFN_RESULT_TYPE(CompletionToken, Sig0)>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE(CompletionToken, - Sig0))(completion.completion_handler)); - - return completion.result.get(); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1>::value, - ASIO_INITFN_RESULT_TYPE2(CompletionToken, Sig0, Sig1)>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE2(CompletionToken, - Sig0, Sig1))(completion.completion_handler)); - - return completion.result.get(); -} - -template -inline typename constraint< - !detail::async_result_has_initiate_memfn< - CompletionToken, Sig0, Sig1, Sig2>::value, - ASIO_INITFN_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2)>::type -async_initiate(ASIO_MOVE_ARG(Initiation) initiation, - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token) -{ - async_completion completion(token); - - ASIO_MOVE_CAST(Initiation)(initiation)( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE3(CompletionToken, - Sig0, Sig1, Sig2))(completion.completion_handler)); - - return completion.result.get(); -} +#endif // defined(GENERATING_DOCUMENTATION) -#define ASIO_PRIVATE_INITIATE_DEF(n) \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0>::value, \ - ASIO_INITFN_DEDUCED_RESULT_TYPE( \ - CompletionToken, Sig0, \ - (async_result::type, \ - Sig0>::initiate( \ - declval(), \ - declval(), \ - ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0>::initiate( \ - ASIO_MOVE_CAST(Initiation)(initiation), \ - ASIO_MOVE_CAST(CompletionToken)(token), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1>::value, \ - ASIO_INITFN_DEDUCED_RESULT_TYPE2( \ - CompletionToken, Sig0, Sig1, \ - (async_result::type, \ - Sig0, Sig1>::initiate( \ - declval(), \ - declval(), \ - ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0, Sig1>::initiate( \ - ASIO_MOVE_CAST(Initiation)(initiation), \ - ASIO_MOVE_CAST(CompletionToken)(token), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1, Sig2>::value, \ - ASIO_INITFN_DEDUCED_RESULT_TYPE3( \ - CompletionToken, Sig0, Sig1, Sig2, \ - (async_result::type, \ - Sig0, Sig1, Sig2>::initiate( \ - declval(), \ - declval(), \ - ASIO_VARIADIC_MOVE_DECLVAL(n))))>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return async_result::type, \ - Sig0, Sig1, Sig2>::initiate( \ - ASIO_MOVE_CAST(Initiation)(initiation), \ - ASIO_MOVE_CAST(CompletionToken)(token), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0>::value, \ - ASIO_INITFN_RESULT_TYPE(CompletionToken, Sig0)>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - ASIO_MOVE_CAST(Initiation)(initiation)( \ - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE(CompletionToken, \ - Sig0))(completion.completion_handler), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1>::value, \ - ASIO_INITFN_RESULT_TYPE2(CompletionToken, Sig0, Sig1)>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - ASIO_MOVE_CAST(Initiation)(initiation)( \ - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE2(CompletionToken, \ - Sig0, Sig1))(completion.completion_handler), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - \ - template \ - inline typename constraint< \ - !detail::async_result_has_initiate_memfn< \ - CompletionToken, Sig0, Sig1, Sig2>::value, \ - ASIO_INITFN_RESULT_TYPE3(CompletionToken, Sig0, Sig1, Sig2)>::type \ - async_initiate(ASIO_MOVE_ARG(Initiation) initiation, \ - ASIO_NONDEDUCED_MOVE_ARG(CompletionToken) token, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - async_completion completion(token); \ - \ - ASIO_MOVE_CAST(Initiation)(initiation)( \ - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE3(CompletionToken, \ - Sig0, Sig1, Sig2))(completion.completion_handler), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - \ - return completion.result.get(); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_INITIATE_DEF) -#undef ASIO_PRIVATE_INITIATE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if defined(ASIO_HAS_CONCEPTS) \ - && defined(ASIO_HAS_VARIADIC_TEMPLATES) \ - && defined(ASIO_HAS_DECLTYPE) +#if defined(ASIO_HAS_CONCEPTS) namespace detail { @@ -1182,16 +678,209 @@ ASIO_CONCEPT completion_token_for = ::asio::completion_token_for #else // defined(ASIO_HAS_CONCEPTS) - // && defined(ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(ASIO_HAS_DECLTYPE) #define ASIO_COMPLETION_TOKEN_FOR(sig) typename #define ASIO_COMPLETION_TOKEN_FOR2(sig0, sig1) typename #define ASIO_COMPLETION_TOKEN_FOR3(sig0, sig1, sig2) typename #endif // defined(ASIO_HAS_CONCEPTS) - // && defined(ASIO_HAS_VARIADIC_TEMPLATES) - // && defined(ASIO_HAS_DECLTYPE) + +namespace detail { + +struct async_operation_probe {}; +struct async_operation_probe_result {}; + +template +struct is_async_operation_call : false_type +{ +}; + +template +struct is_async_operation_call, + async_operation_probe_result + >::value + > + > + > : true_type +{ +}; + +} // namespace detail + +#if !defined(GENERATING_DOCUMENTATION) + +template +class async_result +{ +public: + typedef detail::async_operation_probe_result return_type; + + template + static return_type initiate(Initiation&&, + detail::async_operation_probe, InitArgs&&...) + { + return return_type(); + } +}; + +#endif // !defined(GENERATING_DOCUMENTATION) + +#if defined(GENERATING_DOCUMENTATION) + +/// The is_async_operation trait detects whether a type @c T and arguments +/// @c Args... may be used to initiate an asynchronous operation. +/** + * Class template @c is_async_operation is a trait is derived from @c true_type + * if the expression T(Args..., token) initiates an asynchronous + * operation, where @c token is an unspecified completion token type. Otherwise, + * @c is_async_operation is derived from @c false_type. + */ +template +struct is_async_operation : integral_constant +{ +}; + +#else // defined(GENERATING_DOCUMENTATION) + +template +struct is_async_operation : + detail::is_async_operation_call< + T(Args..., detail::async_operation_probe)> +{ +}; + +#endif // defined(GENERATING_DOCUMENTATION) + +#if defined(ASIO_HAS_CONCEPTS) + +template +ASIO_CONCEPT async_operation = is_async_operation::value; + +#define ASIO_ASYNC_OPERATION(t) \ + ::asio::async_operation +#define ASIO_ASYNC_OPERATION1(t, a0) \ + ::asio::async_operation +#define ASIO_ASYNC_OPERATION2(t, a0, a1) \ + ::asio::async_operation +#define ASIO_ASYNC_OPERATION3(t, a0, a1, a2) \ + ::asio::async_operation + +#else // defined(ASIO_HAS_CONCEPTS) + +#define ASIO_ASYNC_OPERATION(t) typename +#define ASIO_ASYNC_OPERATION1(t, a0) typename +#define ASIO_ASYNC_OPERATION2(t, a0, a1) typename +#define ASIO_ASYNC_OPERATION3(t, a0, a1, a2) typename + +#endif // defined(ASIO_HAS_CONCEPTS) + +namespace detail { + +struct completion_signature_probe {}; + +template +struct completion_signature_probe_result +{ + template