Cleanup and version bump

This commit is contained in:
Miodrag Milanovic 2016-06-29 08:34:30 +02:00
parent 1f6f1bfd6c
commit 63f9a01f8c
283 changed files with 5972 additions and 6062 deletions

View File

@ -4,8 +4,8 @@
--> -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mamedev.mame" package="org.mamedev.mame"
android:versionCode="174" android:versionCode="175"
android:versionName="0.174" android:versionName="0.175"
android:installLocation="auto"> android:installLocation="auto">
<!-- Android 4.0 --> <!-- Android 4.0 -->

View File

@ -61,7 +61,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="beebtrek"> <software name="beebtrek">
<description>Beebtrek</description> <description>Beebtrek</description>
<year>1982</year> <year>1982</year>

View File

@ -2,9 +2,9 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="cdi" description="CD-i CD-ROMs"> <softwarelist name="cdi" description="CD-i CD-ROMs">
<!-- <!--
These are converted from old TOSEC set (I think v2009-04-05), but a double check is being performed, at These are converted from old TOSEC set (I think v2009-04-05), but a double check is being performed, at
least for discs that can still be found for this set least for discs that can still be found for this set
--> -->
<software name="3degree"> <software name="3degree">
@ -10591,7 +10591,7 @@
<!-- <!--
These are converted from rips released on the web These are converted from rips released on the web
--> -->
<software name="frogfeas"> <software name="frogfeas">
@ -10647,7 +10647,7 @@
Origin: Unknown Origin: Unknown
<rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc1).bin" size="601528704" crc="0a337e76" sha1="10c15630f7cbcfc7751e7ae1948947cad48850b2" offset="0" /> <rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc1).bin" size="601528704" crc="0a337e76" sha1="10c15630f7cbcfc7751e7ae1948947cad48850b2" offset="0" />
<rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc1).cue" size="133" crc="7d9bbe3f" sha1="fc746593b61ac9d3d24296a0c1ab7101b25db49d" offset="0" /> <rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc1).cue" size="133" crc="7d9bbe3f" sha1="fc746593b61ac9d3d24296a0c1ab7101b25db49d" offset="0" />
<rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc2).bin" size="595354704" crc="8024edf4" sha1="ba86e8850304afb918e2a4c7411e8648b3f90a4a" offset="0" /> <rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc2).bin" size="595354704" crc="8024edf4" sha1="ba86e8850304afb918e2a4c7411e8648b3f90a4a" offset="0" />
<rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc2).cue" size="133" crc="7cc698ee" sha1="3622939d9c37f43749907cc964cc4738e58ad3b7" offset="0" /> <rom name="voyeur ii (v1.04)(11-06-96)(testing-beta)(access code 3333) (disc2).cue" size="133" crc="7cc698ee" sha1="3622939d9c37f43749907cc964cc4738e58ad3b7" offset="0" />
--> -->
@ -10670,7 +10670,7 @@
<!-- <!--
These are non-tosec sourced, and could be bad These are non-tosec sourced, and could be bad
--> -->

View File

@ -6,7 +6,7 @@
Known undumped discs (possibly more exist, and some CDs marked as FMT could actually be for Marty and vice versa), based on Blitzkrieg's researches Known undumped discs (possibly more exist, and some CDs marked as FMT could actually be for Marty and vice versa), based on Blitzkrieg's researches
FM-Towns Marty CDs FM-Towns Marty CDs
================== ==================
? 0 Hoshi Uranai Jutsu Dai Rei Gen Feb-90 Victor (CDx1) ? 0 Hoshi Uranai Jutsu Dai Rei Gen Feb-90 Victor (CDx1)
@ -100,186 +100,186 @@
High School War Sep-94 I.S.C. (CDx1) High School War Sep-94 I.S.C. (CDx1)
Hiouden 2 Mar-94 Telenet Japan (CDx1) Hiouden 2 Mar-94 Telenet Japan (CDx1)
If Jun-93 Active (CDx1) If Jun-93 Active (CDx1)
If 2 Nov-93 Active (CDx1) If 2 Nov-93 Active (CDx1)
If 3 Apr-95 Active (CDx1) If 3 Apr-95 Active (CDx1)
Igo Doujou Shodan Kaigan! Kyuu Karadane no Chousen May-91 Fujitsu (CDx1) Igo Doujou Shodan Kaigan! Kyuu Karadane no Chousen May-91 Fujitsu (CDx1)
Igo Doujou Yaburi Menkyokaiden!! Mezase 7-Kyuu Oct-90 Fujitsu (CDx1) Igo Doujou Yaburi Menkyokaiden!! Mezase 7-Kyuu Oct-90 Fujitsu (CDx1)
Inindou: Datou Nobunaga Feb-92 Koei (CDx1) Inindou: Datou Nobunaga Feb-92 Koei (CDx1)
Introduction to Go Dojo Jun-91 GAM (CDx1) Introduction to Go Dojo Jun-91 GAM (CDx1)
Intruder: Sakura Yashiki no Tansaku XXX-89 Alice Soft (CDx1) Intruder: Sakura Yashiki no Tansaku XXX-89 Alice Soft (CDx1)
Irisu-tei Sayokyoku Nov-92 Agumix (CDx1) Irisu-tei Sayokyoku Nov-92 Agumix (CDx1)
Ishin no Arashi Mar-90 Koei (CDx1) Ishin no Arashi Mar-90 Koei (CDx1)
J-League Professional Soccer 1994 Sep-94 Victor (CDx1) J-League Professional Soccer 1994 Sep-94 Victor (CDx1)
Jinmon Yuugi Aug-95 Fairytale - Red Zone (CDx1) Jinmon Yuugi Aug-95 Fairytale - Red Zone (CDx1)
Joker Towns Jul-92 Birdy Soft (CDx1) Joker Towns Jul-92 Birdy Soft (CDx1)
Joshikou Seifuku Monogatari Apr-95 KSS (CDx1) Joshikou Seifuku Monogatari Apr-95 KSS (CDx1)
JYB Apr-93 Cocktail Soft (CDx1) JYB Apr-93 Cocktail Soft (CDx1)
Kamigami No Daichi: Kojiki Gaiden Oct-93 Koei (CDx1) Kamigami No Daichi: Kojiki Gaiden Oct-93 Koei (CDx1)
Kero Kero Keroppi to Origami no Tabibito Jul-95 Fujitsu (CDx1) Kero Kero Keroppi to Origami no Tabibito Jul-95 Fujitsu (CDx1)
Kikou Shidan 2 Mar-93 Artdink (CDx1) Kikou Shidan 2 Mar-93 Artdink (CDx1)
Kouryuuki Oct-93 Koei (CDx1) Kouryuuki Oct-93 Koei (CDx1)
Kousoku Choujin Aug-96 Foster Japan (CDx1) Kousoku Choujin Aug-96 Foster Japan (CDx1)
KU2++ Nov-93 Panther Software (CDx1) KU2++ Nov-93 Panther Software (CDx1)
Kusuriyubi no Kyoukasho Apr-96 Active (CDx1) Kusuriyubi no Kyoukasho Apr-96 Active (CDx1)
Kyouko no Ijiwaru! Oct-94 Ponytail Soft (CDx1) Kyouko no Ijiwaru! Oct-94 Ponytail Soft (CDx1)
L'Empereur Jan-91 Koei (CDx1) L'Empereur Jan-91 Koei (CDx1)
Leading Company Apr-92 Koei (CDx1) Leading Company Apr-92 Koei (CDx1)
Lemon Cocktail Collection Mar-93 Cocktail Soft (CDx1) Lemon Cocktail Collection Mar-93 Cocktail Soft (CDx1)
Lipstick Adventure 3 May-93 Fairytale (CDx1) Lipstick Adventure 3 May-93 Fairytale (CDx1)
Little Big Adventure Dec-95 Electronic Arts (CDx1) Little Big Adventure Dec-95 Electronic Arts (CDx1)
Lord of the Rings 2: The Two Towers Apr-93 Star Craft (CDx1) Lord of the Rings 2: The Two Towers Apr-93 Star Craft (CDx1)
Lord of the Rings: The Fellowship of the Ring Mar-92 Star Craft (CDx1) Lord of the Rings: The Fellowship of the Ring Mar-92 Star Craft (CDx1)
Lua Jun-93 Inter Heart (CDx1) Lua Jun-93 Inter Heart (CDx1)
Mahjong Bishoujo Den Rippuru Feb-95 Foresight (CDx1) Mahjong Bishoujo Den Rippuru Feb-95 Foresight (CDx1)
Mahjong Fantasia 2 Sep-93 Active (CDx1) Mahjong Fantasia 2 Sep-93 Active (CDx1)
Mahjong Fantasia 3 Nov-95 Active (CDx1) Mahjong Fantasia 3 Nov-95 Active (CDx1)
Mahjong Goku Apr-89 ASCII (CDx1) Mahjong Goku Apr-89 ASCII (CDx1)
Mahjong Musashi XXX-89 Computer Cosmos (CDx1) Mahjong Musashi XXX-89 Computer Cosmos (CDx1)
Manami no Doko made Iku no May-95 Wendy Magazine (CDx1) Manami no Doko made Iku no May-95 Wendy Magazine (CDx1)
Manami no Doko made Iku no 2: Return of the Kuro Pack May-95 Wendy Magazine (CDx1) Manami no Doko made Iku no 2: Return of the Kuro Pack May-95 Wendy Magazine (CDx1)
Manami: Ai to Koukan no Hibi XXX-95 Fairytale - Red Zone (CDx1) Manami: Ai to Koukan no Hibi XXX-95 Fairytale - Red Zone (CDx1)
Marionette Mind Mar-94 Studio Milk (CDx1) Marionette Mind Mar-94 Studio Milk (CDx1)
Mega Lo Mania Mar-93 Imagineer (CDx1) Mega Lo Mania Mar-93 Imagineer (CDx1)
Meisou Toshi Dec-95 Tiare (CDx1) Meisou Toshi Dec-95 Tiare (CDx1)
Might & Magic: World of Xeen Oct-92 Star Craft (CDx1) Might & Magic: World of Xeen Oct-92 Star Craft (CDx1)
Mirage 2 Dec-94 Discovery (CDx1) Mirage 2 Dec-94 Discovery (CDx1)
Misato-chan no Yume Nikki Apr-97 Active (CDx1) Misato-chan no Yume Nikki Apr-97 Active (CDx1)
Moeru Asoko no Pai Pai Yuugi Dec-93 Illusion (CDx1) Moeru Asoko no Pai Pai Yuugi Dec-93 Illusion (CDx1)
Mokkori Man RPG Jun-94 Illusion (CDx1) Mokkori Man RPG Jun-94 Illusion (CDx1)
Monoshiri ji Yuugaku Hyakunin Ichishuhen Oct-94 Shinko Human Request (CDx1) Monoshiri ji Yuugaku Hyakunin Ichishuhen Oct-94 Shinko Human Request (CDx1)
Moonlight Energy Dec-92 Inter Heart (CDx1) Moonlight Energy Dec-92 Inter Heart (CDx1)
Murder Club DX May-92 Riverhill Soft (CDx1) Murder Club DX May-92 Riverhill Soft (CDx1)
Naru Mahjong Apr-95 Libido (CDx1) Naru Mahjong Apr-95 Libido (CDx1)
Nemurenu Yoru no Chisana Ohanashi Dec-93 Amuse (CDx1) Nemurenu Yoru no Chisana Ohanashi Dec-93 Amuse (CDx1)
Never Land Mar-96 Tips (CDx1) Never Land Mar-96 Tips (CDx1)
NHK Hitori de Dekiru Mon! Mar-95 Rei (CDx1) NHK Hitori de Dekiru Mon! Mar-95 Rei (CDx1)
Niko 2 Nov-91 Telenet Japan (CDx1) Niko 2 Nov-91 Telenet Japan (CDx1)
Nippon Mukashibanashi Nov-90 Gyosei (CDx1) Nippon Mukashibanashi Nov-90 Gyosei (CDx1)
Nippon Mukashibanashi 2 Jul-91 Gyosei (CDx1) Nippon Mukashibanashi 2 Jul-91 Gyosei (CDx1)
Nippon Mukashibanashi 3 Dec-93 Gyosei (CDx1) Nippon Mukashibanashi 3 Dec-93 Gyosei (CDx1)
Nippon Mukashibanashi 4 Dec-93 Gyosei (CDx1) Nippon Mukashibanashi 4 Dec-93 Gyosei (CDx1)
Nippon Mukashibanashi 5 Mar-94 Gyosei (CDx1) Nippon Mukashibanashi 5 Mar-94 Gyosei (CDx1)
Nobunaga no Yabou: Bushou Fuunroku Jul-91 Koei (CDx1) Nobunaga no Yabou: Bushou Fuunroku Jul-91 Koei (CDx1)
Nobunaga no Yabou: Sengoku Gunyuu Den Dec-89 Koei (CDx1) Nobunaga no Yabou: Sengoku Gunyuu Den Dec-89 Koei (CDx1)
Nostalgia 1907 May-92 Sur de Wave (CDx1) Nostalgia 1907 May-92 Sur de Wave (CDx1)
Obachan no Chiebukuro Nov-91 Gyosei (CDx1) Obachan no Chiebukuro Nov-91 Gyosei (CDx1)
Oku man Choja 2 Jul-91 Computer Cosmos (CDx1) Oku man Choja 2 Jul-91 Computer Cosmos (CDx1)
Only You: Juliet of the Century Jan-96 Alice Soft (CDx1) Only You: Juliet of the Century Jan-96 Alice Soft (CDx1)
Orient Express Dec-94 Gyosei (CDx1) Orient Express Dec-94 Gyosei (CDx1)
Palamedes XXX-91 Ving (CDx1) Palamedes XXX-91 Ving (CDx1)
Para Para Paradise Dec-95 Family Soft (CDx2) Para Para Paradise Dec-95 Family Soft (CDx2)
Phobos Aug-95 Himeya Soft, Inc (CDx1) Phobos Aug-95 Himeya Soft, Inc (CDx1)
Pocky & Ponyon Jun-94 Ponytail Soft (CDx1) Pocky & Ponyon Jun-94 Ponytail Soft (CDx1)
Populous 2 Feb-93 Imagineer (CDx1) Populous 2 Feb-93 Imagineer (CDx1)
Presence Dec-92 Sur de Wave (CDx1) Presence Dec-92 Sur de Wave (CDx1)
Private Slave Aug-93 Raccoon (CDx1) Private Slave Aug-93 Raccoon (CDx1)
ProYakyuu Family Stadium '90 Sep-90 Game Arts (CDx1) ProYakyuu Family Stadium '90 Sep-90 Game Arts (CDx1)
Reijou Monogatari Apr-95 Inter Heart (CDx1) Reijou Monogatari Apr-95 Inter Heart (CDx1)
Rinkan Gakkou Feb-96 Foster Japan (CDx1) Rinkan Gakkou Feb-96 Foster Japan (CDx1)
Royal Blood May-92 Koei (CDx1) Royal Blood May-92 Koei (CDx1)
Ryuutatakaden Jun-94 Fujitsu (CDx1) Ryuutatakaden Jun-94 Fujitsu (CDx1)
Sakura no Mori XXX-95 Active (CDx1) Sakura no Mori XXX-95 Active (CDx1)
Sangokushi 2 Jun-90 Koei (CDx1) Sangokushi 2 Jun-90 Koei (CDx1)
Sangokushi 3 Jun-92 Koei (CDx1) Sangokushi 3 Jun-92 Koei (CDx1)
Sargon 5 Nov-92 GAM (CDx1) Sargon 5 Nov-92 GAM (CDx1)
Sayonara no Mukougawa Aug-97 Foster Japan (CDx1) Sayonara no Mukougawa Aug-97 Foster Japan (CDx1)
Seikatsu Simulation Watashi no Machi May-95 Cocktail Soft (CDx1) Seikatsu Simulation Watashi no Machi May-95 Cocktail Soft (CDx1)
Sekai no o Hanashi May-92 Gyosei (CDx1) Sekai no o Hanashi May-92 Gyosei (CDx1)
Sekigahara Apr-92 Artdink (CDx1) Sekigahara Apr-92 Artdink (CDx1)
Sensual Angels Jan-94 JHV (CDx1) Sensual Angels Jan-94 JHV (CDx1)
Sexy P/K Part 2: World Cup Hen May-95 Birdy Soft (CDx1) Sexy P/K Part 2: World Cup Hen May-95 Birdy Soft (CDx1)
Sexy P/K Part Nihon Apr-95 Birdy Soft (CDx1) Sexy P/K Part Nihon Apr-95 Birdy Soft (CDx1)
Shanghai Dec-90 ASCII (CDx1) Shanghai Dec-90 ASCII (CDx1)
Shanghai: Great Wall Sep-95 Electronic Arts (CDx1) Shanghai: Great Wall Sep-95 Electronic Arts (CDx1)
Shooting Towns Mar-90 Amorphous (CDx1) Shooting Towns Mar-90 Amorphous (CDx1)
SL o mitai! Uruwashi no Joki Kikan-sha Jul-95 Gyosei (CDx1) SL o mitai! Uruwashi no Joki Kikan-sha Jul-95 Gyosei (CDx1)
Soft de Hard na Monogatari Apr-89 System Sacom (CDx1) Soft de Hard na Monogatari Apr-89 System Sacom (CDx1)
Soft de Hard na Monogatari 2 Jul-89 System Sacom (CDx1) Soft de Hard na Monogatari 2 Jul-89 System Sacom (CDx1)
Sokoban Perfect Jul-90 Thinking Rabbit (CDx1) Sokoban Perfect Jul-90 Thinking Rabbit (CDx1)
Space Odyssey Galaxy Mar-91 Fujitsu (CDx1) Space Odyssey Galaxy Mar-91 Fujitsu (CDx1)
Space Odyssey Galaxy 2 Apr-92 Fujitsu (CDx1) Space Odyssey Galaxy 2 Apr-92 Fujitsu (CDx1)
Steepia Jun-93 Fujitsu (CDx1) Steepia Jun-93 Fujitsu (CDx1)
Steepia Lite Mar-93 Fujitsu (CDx1) Steepia Lite Mar-93 Fujitsu (CDx1)
Suikoden: Tenmei no Chikai Feb-90 Koei (CDx1) Suikoden: Tenmei no Chikai Feb-90 Koei (CDx1)
Super Real Mahjong P2 & P3 + Mar-93 Ving (CDx1) Super Real Mahjong P2 & P3 + Mar-93 Ving (CDx1)
Suzaku Oct-92 Wolf Team (CDx1) Suzaku Oct-92 Wolf Team (CDx1)
Tactical Tank Corps DX Feb-95 GAM (CDx1) Tactical Tank Corps DX Feb-95 GAM (CDx1)
Tamashi no Mon: Dante Shinkyoku Yori Jun-93 Koei (CDx1) Tamashi no Mon: Dante Shinkyoku Yori Jun-93 Koei (CDx1)
Tania Nov-96 Tips (CDx1) Tania Nov-96 Tips (CDx1)
Teito Taisen Dec-89 Supersonic (CDx1) Teito Taisen Dec-89 Supersonic (CDx1)
Teitoku no Ketsudan Apr-90 Koei (CDx1) Teitoku no Ketsudan Apr-90 Koei (CDx1)
Tenshi-Tachi no Gogo Collection 2 Nov-95 Jast (CDx1) Tenshi-Tachi no Gogo Collection 2 Nov-95 Jast (CDx1)
Tenshin Ranma May-92 Elf (CDx1) Tenshin Ranma May-92 Elf (CDx1)
Teo: Another Earth Sep-95 Fujitsu (CDx1) Teo: Another Earth Sep-95 Fujitsu (CDx1)
Teo: Another Earth 2 Jul-96 Fujitsu (CDx1) Teo: Another Earth 2 Jul-96 Fujitsu (CDx1)
The Playroom Feb-95 Fujitsu (CDx1) The Playroom Feb-95 Fujitsu (CDx1)
The Queen of Duellist Alpha Mar-94 Agumix (CDx1) The Queen of Duellist Alpha Mar-94 Agumix (CDx1)
The Queen of Duellist Alpha Light Apr-94 Agumix (CDx1) The Queen of Duellist Alpha Light Apr-94 Agumix (CDx1)
Theme Park Sep-95 Electronic Arts (CDx1) Theme Park Sep-95 Electronic Arts (CDx1)
Time Stripper Mako-chan Jan-96 Foster Japan (CDx1) Time Stripper Mako-chan Jan-96 Foster Japan (CDx1)
Tokyo Sexy Ave. Jul-94 HOP (CDx1) Tokyo Sexy Ave. Jul-94 HOP (CDx1)
Tokyo-to Dai 24-Ku Dec-92 Artdink (CDx1) Tokyo-to Dai 24-Ku Dec-92 Artdink (CDx1)
Tom Snyder's Puppy Love Jul-89 Fujitsu (CDx1) Tom Snyder's Puppy Love Jul-89 Fujitsu (CDx1)
Tom Snyder's Puppy Love 2 Mar-93 Fujitsu (CDx1) Tom Snyder's Puppy Love 2 Mar-93 Fujitsu (CDx1)
Toushin Toshi Apr-95 Alice Soft (CDx1) Toushin Toshi Apr-95 Alice Soft (CDx1)
Trigger Jun-94 ZyX (CDx1) Trigger Jun-94 ZyX (CDx1)
Trigger 2 Sep-95 ZyX (CDx1) Trigger 2 Sep-95 ZyX (CDx1)
Vampire High School Jun-93 Inter Heart (CDx1) Vampire High School Jun-93 Inter Heart (CDx1)
Vanishing Point XXX-95 Tiare (CDx1) Vanishing Point XXX-95 Tiare (CDx1)
Viper GTS Nov-95 Sogna (CDx1) Viper GTS Nov-95 Sogna (CDx1)
Viper V12 Dec-95 Sogna (CDx1) Viper V12 Dec-95 Sogna (CDx1)
Viper V8 Turbo RS Jun-95 Sogna (CDx1) Viper V8 Turbo RS Jun-95 Sogna (CDx1)
Winning Post May-93 Koei (CDx1) Winning Post May-93 Koei (CDx1)
Yayo 1-2-3 Jul-93 Hado (CDx1) Yayo 1-2-3 Jul-93 Hado (CDx1)
Yayo 4 Feb-93 Hado (CDx1) Yayo 4 Feb-93 Hado (CDx1)
Yes! HG Dec-95 Himeya Soft, Inc (CDx1) Yes! HG Dec-95 Himeya Soft, Inc (CDx1)
Youjuu Senki 2 Reimei no Senshi Feb-94 D.O. (CDx1) Youjuu Senki 2 Reimei no Senshi Feb-94 D.O. (CDx1)
Youjuu Senki: Sajin no Mokushiroku Feb-94 D.O. (CDx1) Youjuu Senki: Sajin no Mokushiroku Feb-94 D.O. (CDx1)
Yume Utsutsu: Dreamy May-92 Megami (CDx1) Yume Utsutsu: Dreamy May-92 Megami (CDx1)
Zan 3 Apr-94 Telenet Japan (CDx1) Zan 3 Apr-94 Telenet Japan (CDx1)
Zenith Feb-95 Himeya Soft, Inc 1 Zenith Feb-95 Himeya Soft, Inc 1
FM-Towns Marty CDs FM-Towns Marty CDs
================== ==================
4D Boxing Jul-93 Electronic Arts (CDx1) 4D Boxing Jul-93 Electronic Arts (CDx1)
4D Driving Jul-93 Electronic Arts (CDx1) 4D Driving Jul-93 Electronic Arts (CDx1)
Psychic Detective Vol.1: Invitation Nov-93 Data West (CDx1) Psychic Detective Vol.1: Invitation Nov-93 Data West (CDx1)
Psychic Detective Vol.2: Memories Apr-94 Data West (CDx1) Psychic Detective Vol.2: Memories Apr-94 Data West (CDx1)
Psychic Detective Vol.3: Aya Jul-94 Data West (CDx1) Psychic Detective Vol.3: Aya Jul-94 Data West (CDx1)
Psychic Detective Vol.4: Orgel Dec-94 Data West (CDx1) Psychic Detective Vol.4: Orgel Dec-94 Data West (CDx1)
Psychic Detective Vol.5: Nightmare Apr-95 Data West (CDx1) Psychic Detective Vol.5: Nightmare Apr-95 Data West (CDx1)
Bible Master 2 Jan-95 Glodia (CDx1) Bible Master 2 Jan-95 Glodia (CDx1)
Custom Mate Dec-94 Cocktail Soft (CDx1) Custom Mate Dec-94 Cocktail Soft (CDx1)
Demon City Mar-94 Cocktail Soft (CDx1) Demon City Mar-94 Cocktail Soft (CDx1)
Dengeki Nurse 2: More Sexy Dec-94 Cocktail Soft (CDx1) Dengeki Nurse 2: More Sexy Dec-94 Cocktail Soft (CDx1)
Doki Doki Vacation Mar-95 Cocktail Soft (CDx1) Doki Doki Vacation Mar-95 Cocktail Soft (CDx1)
DOR Best Collection Chapter 1 Apr-93 D.O. (CDx2) DOR Best Collection Chapter 1 Apr-93 D.O. (CDx2)
DOR Best Collection Chapter 2 May-93 D.O. (CDx2) DOR Best Collection Chapter 2 May-93 D.O. (CDx2)
Dracula Hakushaku Mar-93 Fairytale (CDx1) Dracula Hakushaku Mar-93 Fairytale (CDx1)
Emit Vol.1 Mar-94 Koei (CDx1) Emit Vol.1 Mar-94 Koei (CDx1)
Emit Vol.2 Jul-94 Koei (CDx1) Emit Vol.2 Jul-94 Koei (CDx1)
Emit Vol.3 Sep-94 Koei (CDx1) Emit Vol.3 Sep-94 Koei (CDx1)
Fujitsu Habitat 2 May-94 Fujitsu (CDx1) Fujitsu Habitat 2 May-94 Fujitsu (CDx1)
Gokko Vol.1: Doctor Nov-94 Mink (CDx1) Gokko Vol.1: Doctor Nov-94 Mink (CDx1)
Gokko Vol.2: School Gals Dec-94 Mink (CDx1) Gokko Vol.2: School Gals Dec-94 Mink (CDx1)
Gokko Vol.3: Etcetera Dec-94 Mink (CDx1) Gokko Vol.3: Etcetera Dec-94 Mink (CDx1)
Gokuraku Mandala Feb-94 Fairytale (CDx1) Gokuraku Mandala Feb-94 Fairytale (CDx1)
Joshikousei Shoujo Densetsu Apr-94 Byakuya Shobou (CDx1) Joshikousei Shoujo Densetsu Apr-94 Byakuya Shobou (CDx1)
Ms. Detective XXX-93 Data West (CDx1) Ms. Detective XXX-93 Data West (CDx1)
Nijiiro Denshoku Musume Aug-94 I.S.C. (CDx1) Nijiiro Denshoku Musume Aug-94 I.S.C. (CDx1)
Noushuku Angel 120% Apr-95 Cocktail Soft (CDx1) Noushuku Angel 120% Apr-95 Cocktail Soft (CDx1)
Record of Lodoss War 2 Jun-94 MAC (CDx1) Record of Lodoss War 2 Jun-94 MAC (CDx1)
Sangokushi 4 Jun-94 Koei (CDx1) Sangokushi 4 Jun-94 Koei (CDx1)
Shamhat: The Holy Circlet Apr-93 Data West (CDx1) Shamhat: The Holy Circlet Apr-93 Data West (CDx1)
Shinjuku Labyrinth ==== Tokuma Shoten (CDx1) Shinjuku Labyrinth ==== Tokuma Shoten (CDx1)
Teitoku no Ketsudan 2 Jun-94 Koei (CDx1) Teitoku no Ketsudan 2 Jun-94 Koei (CDx1)
Tokyo Labyrinth Dec-94 Tokuma Shoten (CDx1) Tokyo Labyrinth Dec-94 Tokuma Shoten (CDx1)
True Heart Feb-95 Cocktail Soft (CDx1) True Heart Feb-95 Cocktail Soft (CDx1)
Two Shot Diary Oct-94 Mink 1 Two Shot Diary Oct-94 Mink 1
URM Dec-94 JHV (CDx1) URM Dec-94 JHV (CDx1)
Virtuacall 2 Dec-95 Fairytale (CDx1) Virtuacall 2 Dec-95 Fairytale (CDx1)
Wonpara Wars Feb-95 Mink (CDx1) Wonpara Wars Feb-95 Mink (CDx1)
Wonpara Wars 2 Apr-95 Mink (CDx1) Wonpara Wars 2 Apr-95 Mink (CDx1)
--> -->
@ -326,7 +326,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="fbas2110"> <software name="fbas2110">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -344,7 +344,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="gnutowns"> <software name="gnutowns">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -362,13 +362,13 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="linuxje3"> <software name="linuxje3">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
<rom name="[OS] Linux + JE3.mdf" size="760707360" crc="2c93db2b" sha1="992b0e991a6bde293edf059e529ee2321ab6469b"/> <rom name="[OS] Linux + JE3.mdf" size="760707360" crc="2c93db2b" sha1="992b0e991a6bde293edf059e529ee2321ab6469b"/>
<rom name="[OS] Linux + JE3.mds" size="486" crc="9f8751b3" sha1="bea414de9da5a391b5256855d1ec4beee60e677d"/> <rom name="[OS] Linux + JE3.mds" size="486" crc="9f8751b3" sha1="bea414de9da5a391b5256855d1ec4beee60e677d"/>
*after conversion with IsoBuster+EAC * *after conversion with IsoBuster+EAC *
<rom name="[os] linux + je3.bin" size="760707360" crc="2c93db2b" sha1="992b0e991a6bde293edf059e529ee2321ab6469b"/> <rom name="[os] linux + je3.bin" size="760707360" crc="2c93db2b" sha1="992b0e991a6bde293edf059e529ee2321ab6469b"/>
<rom name="[os] linux + je3.cue" size="77" crc="6f8db5a8" sha1="987a7967fd60cba6f61cc3a4246881b2c4119deb"/> <rom name="[os] linux + je3.cue" size="77" crc="6f8db5a8" sha1="987a7967fd60cba6f61cc3a4246881b2c4119deb"/>
@ -382,7 +382,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="linuxje4"> <software name="linuxje4">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -390,12 +390,12 @@ User/save disks that can be created from the game itself are not included.
<rom name="[OS] Linux + JE4 1995-12 (Disc 1).cue" size="97" crc="7a4e430d" sha1="07ae5837929038f79dfe589f03d264fb88c1f631"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 1).cue" size="97" crc="7a4e430d" sha1="07ae5837929038f79dfe589f03d264fb88c1f631"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 1).img" size="577110240" crc="cb8e970c" sha1="8598c7f6c5493c27a2a9b9dcacce04eafcea266d"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 1).img" size="577110240" crc="cb8e970c" sha1="8598c7f6c5493c27a2a9b9dcacce04eafcea266d"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 1).sub" size="23555520" crc="08f228a2" sha1="3c3805ed5ad7567b2c812c30534d3f5906b7c017"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 1).sub" size="23555520" crc="08f228a2" sha1="3c3805ed5ad7567b2c812c30534d3f5906b7c017"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 2).ccd" size="772" crc="d0c4f348" sha1="ecf9a17f635112709cff2243b3311508b4b376ed"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 2).ccd" size="772" crc="d0c4f348" sha1="ecf9a17f635112709cff2243b3311508b4b376ed"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 2).cue" size="97" crc="fe4bd6dd" sha1="93a497c59463ba022523475d4f9b228570086bbf"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 2).cue" size="97" crc="fe4bd6dd" sha1="93a497c59463ba022523475d4f9b228570086bbf"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 2).img" size="621911136" crc="4b4045cc" sha1="b88837ead4cdafff6830de34e10cc85994d6957a"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 2).img" size="621911136" crc="4b4045cc" sha1="b88837ead4cdafff6830de34e10cc85994d6957a"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 2).sub" size="25384128" crc="b2994c95" sha1="7f53ee98031a618a7a06f5f4ba3d51857a6f41a7"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 2).sub" size="25384128" crc="b2994c95" sha1="7f53ee98031a618a7a06f5f4ba3d51857a6f41a7"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 3).ccd" size="772" crc="477cf66e" sha1="cbfe790b5e67fe104bd787f5a654270f75e5ce9b"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 3).ccd" size="772" crc="477cf66e" sha1="cbfe790b5e67fe104bd787f5a654270f75e5ce9b"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 3).cue" size="97" crc="34985852" sha1="019d58702b954623ff7832e46aebf4d43c38e134"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 3).cue" size="97" crc="34985852" sha1="019d58702b954623ff7832e46aebf4d43c38e134"/>
<rom name="[OS] Linux + JE4 1995-12 (Disc 3).img" size="631723680" crc="5c9440f4" sha1="8ee8a9cebe00a45c908bba88ef453e3d426d6260"/> <rom name="[OS] Linux + JE4 1995-12 (Disc 3).img" size="631723680" crc="5c9440f4" sha1="8ee8a9cebe00a45c908bba88ef453e3d426d6260"/>
@ -420,7 +420,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="oasyswin"> <software name="oasyswin">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -436,7 +436,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="tss1110"> <software name="tss1110">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -452,7 +452,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="tss1120"> <software name="tss1120">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -488,7 +488,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="tss1130"> <software name="tss1130">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -504,7 +504,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="tss2110a"> <software name="tss2110a">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -530,7 +530,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="tss2151"> <software name="tss2151">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -548,7 +548,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<!-- Missing a floppy disk --> <!-- Missing a floppy disk -->
<software name="win31"> <software name="win31">
<!-- <!--
@ -572,7 +572,7 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="win95"> <software name="win95">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -588,12 +588,12 @@ User/save disks that can be created from the game itself are not included.
</diskarea> </diskarea>
</part> </part>
</software> </software>
<!-- Game (& Utility) Disks --> <!-- Game (& Utility) Disks -->
<software name="100isshu"> <software name="100isshu">
<!-- <!--
Origin: Neo Kobe Collection Origin: Neo Kobe Collection
@ -5148,7 +5148,7 @@ User/save disks that can be created from the game itself are not included.
Origin: Tokugawa Corporate Forums (yukin) Origin: Tokugawa Corporate Forums (yukin)
<rom name="MM3.mdf" size="15523200" crc="926d169b" sha1="107090bdd34e831f27ea979e3fd6a24c86aa418a"/> <rom name="MM3.mdf" size="15523200" crc="926d169b" sha1="107090bdd34e831f27ea979e3fd6a24c86aa418a"/>
<rom name="MM3.mds" size="500" crc="99adcc2f" sha1="1d6b9f2257f821d06d0f85a021e5be5a2f448f03"/> <rom name="MM3.mds" size="500" crc="99adcc2f" sha1="1d6b9f2257f821d06d0f85a021e5be5a2f448f03"/>
CUE file used for CHD conversion: CUE file used for CHD conversion:
<rom name="MM3.cue" size="64" crc="5c30fa2b" sha1="7b53d089cbc4fb4fa0d517adafd8f74f8c94a652"/> <rom name="MM3.cue" size="64" crc="5c30fa2b" sha1="7b53d089cbc4fb4fa0d517adafd8f74f8c94a652"/>
--> -->

View File

@ -12327,7 +12327,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="v_sharkt" supported="no"> <software name="v_sharkt" supported="no">
<description>Game Boy Advance Video - Shark Tale (USA, Rev. 6)</description> <description>Game Boy Advance Video - Shark Tale (USA, Rev. 6)</description>
<year>2004?</year> <year>2004?</year>
@ -12340,7 +12340,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="v_sharkta" cloneof="v_sharkt" supported="no"> <software name="v_sharkta" cloneof="v_sharkt" supported="no">
<description>Game Boy Advance Video - Shark Tale (USA, Rev. 5)</description> <description>Game Boy Advance Video - Shark Tale (USA, Rev. 5)</description>
<year>2004?</year> <year>2004?</year>
@ -12379,7 +12379,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="v_2shrst" supported="no"> <software name="v_2shrst" supported="no">
<description>Game Boy Advance Video - Shrek + Shark Tale (USA)</description> <description>Game Boy Advance Video - Shrek + Shark Tale (USA)</description>
<year>2004?</year> <year>2004?</year>
@ -30364,7 +30364,7 @@
<publisher>Infogrames</publisher> <publisher>Infogrames</publisher>
<info name="serial" value="AGB-ASOP-(EUR,UKV)"/> <info name="serial" value="AGB-ASOP-(EUR,UKV)"/>
<part name="cart" interface="gba_cart"> <part name="cart" interface="gba_cart">
<feature name="pcb" value="AGB-E02-30" /> <!-- Also found on AGB-E02-20 --> <feature name="pcb" value="AGB-E02-30" /> <!-- Also found on AGB-E02-20 -->
<feature name="u1" value="U1 GPIO MASKROM" /> <feature name="u1" value="U1 GPIO MASKROM" />
<feature name="u2" value="U2 512K/1M FLASH [39VF512]" /> <feature name="u2" value="U2 512K/1M FLASH [39VF512]" />
<feature name="slot" value="gba_flash" /> <feature name="slot" value="gba_flash" />
@ -32407,7 +32407,7 @@ The cart also contained a non-empty SRAM save which we currently include in the
<publisher>Nintendo</publisher> <publisher>Nintendo</publisher>
<info name="serial" value="AGB-AMAE-USA, AGB-AMAP"/> <info name="serial" value="AGB-AMAE-USA, AGB-AMAP"/>
<part name="cart" interface="gba_cart"> <part name="cart" interface="gba_cart">
<feature name="pcb" value="AGB-E03-01" /> <!-- Also found on AGB-E03-10 --> <feature name="pcb" value="AGB-E03-01" /> <!-- Also found on AGB-E03-10 -->
<feature name="u1" value="U1 MASK ROM" /> <feature name="u1" value="U1 MASK ROM" />
<feature name="u2" value="U2 4K/64K EEPROM [9853]" /> <feature name="u2" value="U2 4K/64K EEPROM [9853]" />
<feature name="slot" value="gba_eeprom_4k" /> <feature name="slot" value="gba_eeprom_4k" />

View File

@ -958,7 +958,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="mspacman" supported="no"> <software name="mspacman" supported="no">
<description>Ms. Pac-Man</description> <description>Ms. Pac-Man</description>
<year>1986</year> <year>1986</year>

View File

@ -188,7 +188,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="princwen"> <software name="princwen">
<description>Disney Princess - Worlds of Enchantment (USA)</description> <description>Disney Princess - Worlds of Enchantment (USA)</description>
<year>2007?</year> <year>2007?</year>
@ -212,7 +212,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="findnemo"> <software name="findnemo">
<description>Finding Nemo (USA)</description> <description>Finding Nemo (USA)</description>
<year>2005?</year> <year>2005?</year>
@ -260,7 +260,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="diegogo"> <software name="diegogo">
<description>Go Diego Go! - Animal Rescuer (USA)</description> <description>Go Diego Go! - Animal Rescuer (USA)</description>
<year>2007?</year> <year>2007?</year>
@ -320,7 +320,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="brunobls"> <software name="brunobls">
<description>Lernst du Malen &amp; Schreiben - Mit Bruno Bleistift (Ger)</description> <description>Lernst du Malen &amp; Schreiben - Mit Bruno Bleistift (Ger)</description>
<year>2004?</year> <year>2004?</year>
@ -440,7 +440,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="spidermn"> <software name="spidermn">
<description>Spider-Man - The Case of the Sinister Speller (USA)</description> <description>Spider-Man - The Case of the Sinister Speller (USA)</description>
<year>2003</year> <year>2003</year>
@ -488,7 +488,7 @@
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="toystor3"> <software name="toystor3">
<description>Toy Story 3 (USA)</description> <description>Toy Story 3 (USA)</description>
<year>2010?</year> <year>2010?</year>

View File

@ -9761,7 +9761,7 @@ but dumps still have to be confirmed.
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="16mj2"> <software name="16mj2">
<description>Shi Liu Zhang Ma Jiang II</description> <description>Shi Liu Zhang Ma Jiang II</description>
<year>199?</year> <year>199?</year>
@ -13806,7 +13806,7 @@ but dumps still have to be confirmed.
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="deathdlp" cloneof="deathdl"> <software name="deathdlp" cloneof="deathdl">
<description>Death Duel (USA, Prototype 19920506)</description> <description>Death Duel (USA, Prototype 19920506)</description>
<year>1992</year> <year>1992</year>
@ -16602,7 +16602,7 @@ but dumps still have to be confirmed.
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- This is the same as the final, but without the padding up to 512Kb and with different checksum in the internal header --> <!-- This is the same as the final, but without the padding up to 512Kb and with different checksum in the internal header -->
<software name="homea2p" cloneof="homea2"> <software name="homea2p" cloneof="homea2">
<description>Home Alone 2 - Lost in New York (USA, Prototype 19930929)</description> <description>Home Alone 2 - Lost in New York (USA, Prototype 19930929)</description>
@ -21462,7 +21462,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="paperboyp" cloneof="paperboy"> <software name="paperboyp" cloneof="paperboy">
<description>Paperboy (USA, Prototype 19911028)</description> <description>Paperboy (USA, Prototype 19911028)</description>
<year>1992</year> <year>1992</year>
@ -22861,7 +22861,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- This is the same as the final, but without the padding up to 1Mb and with no checksum in the internal header --> <!-- This is the same as the final, but without the padding up to 1Mb and with no checksum in the internal header -->
<software name="renstimp" cloneof="renstim"> <software name="renstimp" cloneof="renstim">
<description>Stimpy's Invention Starring Starring Ren Hoëk &amp; Stimpy (Euro, Prototype 19931209)</description> <description>Stimpy's Invention Starring Starring Ren Hoëk &amp; Stimpy (Euro, Prototype 19931209)</description>
@ -23248,7 +23248,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="roadblstp" cloneof="roadblst"> <software name="roadblstp" cloneof="roadblst">
<description>RoadBlasters (USA, Prototype 19910627)</description> <description>RoadBlasters (USA, Prototype 19910627)</description>
<year>1992</year> <year>1992</year>
@ -25222,7 +25222,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="speedbl2up" cloneof="speedbl2"> <software name="speedbl2up" cloneof="speedbl2">
<description>Speedball 2 - Brutal Deluxe (USA, Prototype 19910607)</description> <description>Speedball 2 - Brutal Deluxe (USA, Prototype 19910607)</description>
<year>1991</year> <year>1991</year>
@ -26377,7 +26377,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="lasordap" cloneof="suprleag"> <software name="lasordap" cloneof="suprleag">
<description>Tommy Lasorda Baseball (USA, Prototype 19890430)</description> <description>Tommy Lasorda Baseball (USA, Prototype 19890430)</description>
<year>1989</year> <year>1989</year>
@ -27537,7 +27537,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- This is the same as the final, but with "Sega_Channel" XORed at the end. --> <!-- This is the same as the final, but with "Sega_Channel" XORed at the end. -->
<software name="toejam2p2" cloneof="toejam2"> <software name="toejam2p2" cloneof="toejam2">
<description>Toe Jam &amp; Earl in Panic on Funkotron (Prototype 19930911)</description> <description>Toe Jam &amp; Earl in Panic on Funkotron (Prototype 19930911)</description>
@ -30378,7 +30378,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="xinqig1" cloneof="beggarp"> <software name="xinqig1" cloneof="beggarp">
<description>Xin Qi Gai Wang Zi (Chi, Alt)</description> <description>Xin Qi Gai Wang Zi (Chi, Alt)</description>
<year>1996</year> <year>1996</year>
@ -31285,7 +31285,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="cjmjclub"> <software name="cjmjclub">
<description>Chaoji Majiang Club (Tw)</description> <description>Chaoji Majiang Club (Tw)</description>
<year>1995</year> <year>1995</year>
@ -31360,7 +31360,7 @@ Notice that these are not working on real hardware due to bugged code with VDP i
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="jujimj2"> <software name="jujimj2">
<description>Ju Ji Ma Jiang II</description> <description>Ju Ji Ma Jiang II</description>
<year>199?</year> <year>199?</year>

View File

@ -2510,7 +2510,7 @@ patched out (+ a fix for internal checksum)
</part> </part>
</software> </software>
<!-- <!--
This cart features a RTC, currently unemulated This cart features a RTC, currently unemulated
--> -->
<software name="doubutsu"> <software name="doubutsu">
@ -5745,7 +5745,7 @@ This cart features a RTC, currently unemulated
</part> </part>
</software> </software>
<!-- <!--
This cart features two SmartMedia slots to import pictures to manipulate in the game, currently unemulated This cart features two SmartMedia slots to import pictures to manipulate in the game, currently unemulated
--> -->
<software name="mariopho"> <software name="mariopho">
@ -6281,7 +6281,7 @@ This cart features two SmartMedia slots to import pictures to manipulate in the
</part> </part>
</software> </software>
<!-- <!--
This cart features a built-in RJ-42 Modem Connection port to play online, currently unemulated This cart features a built-in RJ-42 Modem Connection port to play online, currently unemulated
--> -->
<software name="moritash"> <software name="moritash">
@ -9874,7 +9874,7 @@ patched out (+ a fix for internal checksum)
<part name="cart" interface="n64_cart"> <part name="cart" interface="n64_cart">
<feature name="pcb" value="NUS-01A-01" /> <feature name="pcb" value="NUS-01A-01" />
<feature name="u1" value="NUS-NSMP-0" /> <feature name="u1" value="NUS-NSMP-0" />
<feature name="u2" value="BU9850" /> <!-- also found with BK4D-NUS --> <feature name="u2" value="BU9850" /> <!-- also found with BK4D-NUS -->
<feature name="u3" value="CIC-NUS-7101" /> <feature name="u3" value="CIC-NUS-7101" />
<feature name="cart_model" value="NUS-006(EUR)" /> <feature name="cart_model" value="NUS-006(EUR)" />
<feature name="cart_back_label" value="NUS-EUR" /> <feature name="cart_back_label" value="NUS-EUR" />
@ -10211,9 +10211,9 @@ patched out (+ a fix for internal checksum)
</part> </part>
</software> </software>
<!-- <!--
The game came with the Nintendo-Seta Bio Sensor, a special controller with a clip on the end, to measure The game came with the Nintendo-Seta Bio Sensor, a special controller with a clip on the end, to measure
user's heart beat. One end of the sensor plugs into the extension port on the controller, and the other end user's heart beat. One end of the sensor plugs into the extension port on the controller, and the other end
clips onto the player's ear. clips onto the player's ear.
--> -->
<software name="tetris64"> <software name="tetris64">

View File

@ -27836,7 +27836,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- confirmed as good by peter_j --> <!-- confirmed as good by peter_j -->
<software name="3dgolfb" cloneof="3dgolf"> <software name="3dgolfb" cloneof="3dgolf">
<description>New 3D Golf Simulation - Harukanaru Augusta (Alt Format)</description> <description>New 3D Golf Simulation - Harukanaru Augusta (Alt Format)</description>
@ -27872,7 +27872,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- confirmed as good by peter_j --> <!-- confirmed as good by peter_j -->
<software name="3dgolf8la" cloneof="3dgolf"> <software name="3dgolf8la" cloneof="3dgolf">
<description>New 3D Golf Simulation - Eight Lakes G.C. (Alt Format)</description> <description>New 3D Golf Simulation - Eight Lakes G.C. (Alt Format)</description>
@ -27917,7 +27917,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<!-- confirmed as good by peter_j --> <!-- confirmed as good by peter_j -->
<software name="3dgolfwka" cloneof="3dgolf"> <software name="3dgolfwka" cloneof="3dgolf">
<description>New 3D Golf Simulation - Waialae no Kiseki (Alt Format)</description> <description>New 3D Golf Simulation - Waialae no Kiseki (Alt Format)</description>

View File

@ -2,15 +2,15 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="pc98_cd" description="NEC PC-9801 CD-ROMs"> <softwarelist name="pc98_cd" description="NEC PC-9801 CD-ROMs">
<!-- <!--
Partial list of PC-9801/PC-9821 CD-ROMs. Partial list of PC-9801/PC-9821 CD-ROMs.
Floppy disks are also included where needed. They are attached to the floppy_5_25 interface Floppy disks are also included where needed. They are attached to the floppy_5_25 interface
for convenience, as the PC-98x1 driver always emulates 5.25" drives. This isn't realistic, for convenience, as the PC-98x1 driver always emulates 5.25" drives. This isn't realistic,
though, as CD-ROM software was generally released very late in the life of the plaform, though, as CD-ROM software was generally released very late in the life of the plaform,
when 3.5" floppies were much more common. when 3.5" floppies were much more common.
--> -->
<!-- OS disks --> <!-- OS disks -->
@ -20,9 +20,9 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Professional (PC-9821) - W2PCCP_JA.iso" size="409946112" crc="ffffffff" sha1="f0ad97e933a8fe835fdb7211ef9034862b68d7f9"/> <rom name="Windows 2000 Professional (PC-9821) - W2PCCP_JA.iso" size="409946112" crc="ffffffff" sha1="f0ad97e933a8fe835fdb7211ef9034862b68d7f9"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Professional (PC-9821) - W2PCCP_JA.cue" size="108" crc="5e4281a4" sha1="60b45b2155b2bce7d550f7ed99d4b95247e2c786"/> <rom name="Windows 2000 Professional (PC-9821) - W2PCCP_JA.cue" size="108" crc="5e4281a4" sha1="60b45b2155b2bce7d550f7ed99d4b95247e2c786"/>
--> -->
<description>Windows 2000 Professional (Upgrade, W2PCCP)</description> <description>Windows 2000 Professional (Upgrade, W2PCCP)</description>
<year>2000</year> <year>2000</year>
@ -38,7 +38,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Professional (PC-9821) - W2PFPP_JA.iso" size="409946112" crc="ffffffff" sha1="ef5035b8c6b566552eba9f16e085272632e259b4"/> <rom name="Windows 2000 Professional (PC-9821) - W2PFPP_JA.iso" size="409946112" crc="ffffffff" sha1="ef5035b8c6b566552eba9f16e085272632e259b4"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Professional (PC-9821) - W2PFPP_JA.cue" size="108" crc="90edbbcd" sha1="a2b214d641906d27172e10d35094e652647d4194"/> <rom name="Windows 2000 Professional (PC-9821) - W2PFPP_JA.cue" size="108" crc="90edbbcd" sha1="a2b214d641906d27172e10d35094e652647d4194"/>
--> -->
@ -56,7 +56,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Professional (PC-9821) - W2PSEL_JA.iso" size="409946112" crc="ffffffff" sha1="b48ebce2da480ab8a7e7b1e82b33bb01543b2b21"/> <rom name="Windows 2000 Professional (PC-9821) - W2PSEL_JA.iso" size="409946112" crc="ffffffff" sha1="b48ebce2da480ab8a7e7b1e82b33bb01543b2b21"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Professional (PC-9821) - W2PSEL_JA.cue" size="108" crc="9c9e146b" sha1="0be47b35ebfa297868cadc79bb77bdd56f3aa1ef"/> <rom name="Windows 2000 Professional (PC-9821) - W2PSEL_JA.cue" size="108" crc="9c9e146b" sha1="0be47b35ebfa297868cadc79bb77bdd56f3aa1ef"/>
--> -->
@ -74,7 +74,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Professional with SP4 (PC-9821) - ZRMPFPP_JA.iso" size="420202496" crc="ffffffff" sha1="8bf88f199b4919c8d340cd40a80bfb9b6e001f49"/> <rom name="Windows 2000 Professional with SP4 (PC-9821) - ZRMPFPP_JA.iso" size="420202496" crc="ffffffff" sha1="8bf88f199b4919c8d340cd40a80bfb9b6e001f49"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Professional with SP4 (PC-9821) - ZRMPFPP_JA.cue" size="118" crc="f4714a5e" sha1="b1890c27ba93ac56e4e7bed741c5323f3695da58"/> <rom name="Windows 2000 Professional with SP4 (PC-9821) - ZRMPFPP_JA.cue" size="118" crc="f4714a5e" sha1="b1890c27ba93ac56e4e7bed741c5323f3695da58"/>
--> -->
@ -92,7 +92,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Server (PC-9821) - W2SFPP_JA.iso" size="479168512" crc="ffffffff" sha1="57ec6c59bf0d5918031e5e4aa115743616fc5200"/> <rom name="Windows 2000 Server (PC-9821) - W2SFPP_JA.iso" size="479168512" crc="ffffffff" sha1="57ec6c59bf0d5918031e5e4aa115743616fc5200"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Server (PC-9821) - W2SFPP_JA.cue" size="102" crc="a2b02fad" sha1="3086c000c75d4a3a254caa867f7adab8b74ad09f"/> <rom name="Windows 2000 Server (PC-9821) - W2SFPP_JA.cue" size="102" crc="a2b02fad" sha1="3086c000c75d4a3a254caa867f7adab8b74ad09f"/>
--> -->
@ -110,7 +110,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Server (PC-9821) - W2SSEL_JA.iso" size="479168512" crc="ffffffff" sha1="325e1f718981603fc21b88f34643efb71e0ee7e1"/> <rom name="Windows 2000 Server (PC-9821) - W2SSEL_JA.iso" size="479168512" crc="ffffffff" sha1="325e1f718981603fc21b88f34643efb71e0ee7e1"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Server (PC-9821) - W2SSEL_JA.cue" size="102" crc="aec3800b" sha1="6a64d6297d6906ce672ce77967d3bde940202eac"/> <rom name="Windows 2000 Server (PC-9821) - W2SSEL_JA.cue" size="102" crc="aec3800b" sha1="6a64d6297d6906ce672ce77967d3bde940202eac"/>
--> -->
@ -128,7 +128,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Windows 2000 Server with SP4 (PC-9821) - ZRMSFPP_JA.iso" size="488269824" crc="ffffffff" sha1="f43c06cfa45289228ce47f815aa96efb8b9d1574"/> <rom name="Windows 2000 Server with SP4 (PC-9821) - ZRMSFPP_JA.iso" size="488269824" crc="ffffffff" sha1="f43c06cfa45289228ce47f815aa96efb8b9d1574"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Windows 2000 Server with SP4 (PC-9821) - ZRMSFPP_JA.cue" size="112" crc="6b01db5c" sha1="8b58fb3e2bbfc31d201b4c58e905075da7eb8031"/> <rom name="Windows 2000 Server with SP4 (PC-9821) - ZRMSFPP_JA.cue" size="112" crc="6b01db5c" sha1="8b58fb3e2bbfc31d201b4c58e905075da7eb8031"/>
--> -->
@ -148,7 +148,7 @@
Origin: Unknown Origin: Unknown
<rom name="disc2.ISO" size="434356224" crc="ffffffff" sha1="e2db9d9e3aab1401979d103d2d6109bfe3eff3ed"/> <rom name="disc2.ISO" size="434356224" crc="ffffffff" sha1="e2db9d9e3aab1401979d103d2d6109bfe3eff3ed"/>
<rom name="image.ISO" size="531824640" crc="ffffffff" sha1="e906c512ec2ab1e6244eec85388551a993bee0a7"/> <rom name="image.ISO" size="531824640" crc="ffffffff" sha1="e906c512ec2ab1e6244eec85388551a993bee0a7"/>
CUE files used for conversion: CUE files used for conversion:
<rom name="disc2.cue" size="66" crc="2cabba7b" sha1="38cfe76167cf3065478036c386c69693fa0bf5f3"/> <rom name="disc2.cue" size="66" crc="2cabba7b" sha1="38cfe76167cf3065478036c386c69693fa0bf5f3"/>
<rom name="image.cue" size="66" crc="3f846e22" sha1="d3d798255e5d26cd8485a5c5f7aa086a51368ebe"/> <rom name="image.cue" size="66" crc="3f846e22" sha1="d3d798255e5d26cd8485a5c5f7aa086a51368ebe"/>
@ -172,7 +172,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Microsoft Windows 95 PC-98 (JPN).iso" size="81395712" crc="d402c155" sha1="14d10f62db11397ea46bdf02d1619f1b8e1ff345"/> <rom name="Microsoft Windows 95 PC-98 (JPN).iso" size="81395712" crc="d402c155" sha1="14d10f62db11397ea46bdf02d1619f1b8e1ff345"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Microsoft Windows 95 PC-98 (JPN).cue" size="93" crc="c4113669" sha1="3ee6d0113b8efe9cf0ee19fe6054165233fa9906"/> <rom name="Microsoft Windows 95 PC-98 (JPN).cue" size="93" crc="c4113669" sha1="3ee6d0113b8efe9cf0ee19fe6054165233fa9906"/>
--> -->
@ -191,7 +191,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="Microsoft Windows 98 x86 &amp; PC-98 (JPN).iso" size="508647424" crc="f82c51a9" sha1="3607d2cc8fea57ca915954e9ff2e2cbc82a02fff"/> <rom name="Microsoft Windows 98 x86 &amp; PC-98 (JPN).iso" size="508647424" crc="f82c51a9" sha1="3607d2cc8fea57ca915954e9ff2e2cbc82a02fff"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Microsoft Windows 98 x86 &amp; PC-98 (JPN).cue" size="99" crc="1229745f" sha1="5181dc844bf7f7d5acd3e2fad4ad2e2c8af70297"/> <rom name="Microsoft Windows 98 x86 &amp; PC-98 (JPN).cue" size="99" crc="1229745f" sha1="5181dc844bf7f7d5acd3e2fad4ad2e2c8af70297"/>
--> -->
@ -309,7 +309,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="akikogld"> <software name="akikogld">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
@ -361,13 +361,13 @@
<rom name="Image.cue" size="1488" crc="5585f53a" sha1="ab10e702dcca182e12a551b0fa11c419704dccae"/> <rom name="Image.cue" size="1488" crc="5585f53a" sha1="ab10e702dcca182e12a551b0fa11c419704dccae"/>
<rom name="Image.img" size="658393008" crc="f3b99e90" sha1="9fcdc50989886636f074354745bbf16bbed24b67"/> <rom name="Image.img" size="658393008" crc="f3b99e90" sha1="9fcdc50989886636f074354745bbf16bbed24b67"/>
<rom name="Image.sub" size="26873184" crc="eed944ab" sha1="1b486d3f029634da68bd1a2465b6a8a43e75b6c5"/> <rom name="Image.sub" size="26873184" crc="eed944ab" sha1="1b486d3f029634da68bd1a2465b6a8a43e75b6c5"/>
The original CUE indicates MODE1/2352 for the data track, but this seems to be wrong, as all the data The original CUE indicates MODE1/2352 for the data track, but this seems to be wrong, as all the data
sectors in track 1 are actually mode 2, and MS-DOS doesn't recognize the file system. To avoid this, the sectors in track 1 are actually mode 2, and MS-DOS doesn't recognize the file system. To avoid this, the
CHD was converted through a modified CUE with MODE2/2352. CHD was converted through a modified CUE with MODE2/2352.
Also, this disc has a PlayStation header in sector 16. Bad dump or just a mastering mistake? Also, this disc has a PlayStation header in sector 16. Bad dump or just a mastering mistake?
<rom name="Image_mode2.cue" size="1488" crc="2f235ede" sha1="ecc220ebebb859889406b95d5538f025321e4991"/> <rom name="Image_mode2.cue" size="1488" crc="2f235ede" sha1="ecc220ebebb859889406b95d5538f025321e4991"/>
--> -->
<description>Appare-den - Fukuryuu no Shou</description> <description>Appare-den - Fukuryuu no Shou</description>
@ -422,9 +422,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="br1.iso" size="4431168" crc="28ca5237" sha1="6de45ad7c24195e9eed8b3f578305698150671aa"/> <rom name="br1.iso" size="4431168" crc="28ca5237" sha1="6de45ad7c24195e9eed8b3f578305698150671aa"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="br1.cue" size="64" crc="55b42ab8" sha1="f1f3e6612d5c205bbe3c771506ac3a95febe6067"/> <rom name="br1.cue" size="64" crc="55b42ab8" sha1="f1f3e6612d5c205bbe3c771506ac3a95febe6067"/>
--> -->
<description>Brandish Campaign-ban</description> <description>Brandish Campaign-ban</description>
<year>1996</year> <year>1996</year>
@ -473,9 +473,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="br3.iso" size="11275488" crc="8cdbb15b" sha1="692df1bae5459c16469e79b581fb5deb212665e3"/> <rom name="br3.iso" size="11275488" crc="8cdbb15b" sha1="692df1bae5459c16469e79b581fb5deb212665e3"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="br3.cue" size="64" crc="6e9e0d16" sha1="f17c32e361745b7a93fc231826a9af4160692fb4"/> <rom name="br3.cue" size="64" crc="6e9e0d16" sha1="f17c32e361745b7a93fc231826a9af4160692fb4"/>
--> -->
<description>Brandish 3 - Spirit of Balcan - Campaign-ban</description> <description>Brandish 3 - Spirit of Balcan - Campaign-ban</description>
<year>1996</year> <year>1996</year>
@ -548,9 +548,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="美少女パソコンソフト大全 デジ・パラ Vol.1.iso" size="219504640" crc="e92a4b2a" sha1="10c86cd519a28fc583fd01473eed9d9b3baee789"/> <rom name="美少女パソコンソフト大全 デジ・パラ Vol.1.iso" size="219504640" crc="e92a4b2a" sha1="10c86cd519a28fc583fd01473eed9d9b3baee789"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="美少女パソコンソフト大全 デジ・パラ Vol.1.cue" size="119" crc="91bd2775" sha1="ee1f59ef736d2243a75ef86e5c471a72ba9fa222"/> <rom name="美少女パソコンソフト大全 デジ・パラ Vol.1.cue" size="119" crc="91bd2775" sha1="ee1f59ef736d2243a75ef86e5c471a72ba9fa222"/>
--> -->
<description>Bishoujo Pasocom Soft Taizen - Digi-para - Digital Paradise - Vol. 1</description> <description>Bishoujo Pasocom Soft Taizen - Digi-para - Digital Paradise - Vol. 1</description>
<year>1996</year> <year>1996</year>
@ -644,7 +644,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="emit1"> <software name="emit1">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
@ -675,7 +675,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="emit2"> <software name="emit2">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
@ -698,7 +698,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="emit3"> <software name="emit3">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
@ -784,7 +784,7 @@
<rom name="galpani (1995)(kaneko - creo i).ccd" size="3120" crc="788eda2a" sha1="12dd368e864857dc3d206dae6890621536d322da"/> <rom name="galpani (1995)(kaneko - creo i).ccd" size="3120" crc="788eda2a" sha1="12dd368e864857dc3d206dae6890621536d322da"/>
<rom name="galpani (1995)(kaneko - creo i).img" size="497229264" crc="8b3ce23e" sha1="9bd91b2e62d5847cc65bd363e7a59bd7bda15613"/> <rom name="galpani (1995)(kaneko - creo i).img" size="497229264" crc="8b3ce23e" sha1="9bd91b2e62d5847cc65bd363e7a59bd7bda15613"/>
<rom name="galpani (1995)(kaneko - creo i).sub" size="20295072" crc="c2670009" sha1="c0cf2725384ef328682d5c28f017f9dddbc6f28b"/> <rom name="galpani (1995)(kaneko - creo i).sub" size="20295072" crc="c2670009" sha1="c0cf2725384ef328682d5c28f017f9dddbc6f28b"/>
After conversion with IsoBuster + EAC: After conversion with IsoBuster + EAC:
<rom name="galpani.cue" size="1725" crc="17aa363e" sha1="4cb40d4ec35eff243114029f3ddc90d81eb646d3"/> <rom name="galpani.cue" size="1725" crc="17aa363e" sha1="4cb40d4ec35eff243114029f3ddc90d81eb646d3"/>
<rom name="track01.bin" size="103473888" crc="18ce00b3" sha1="3d6ed2ff296d77ad8df3e76c2765f1cc5ca69115"/> <rom name="track01.bin" size="103473888" crc="18ce00b3" sha1="3d6ed2ff296d77ad8df3e76c2765f1cc5ca69115"/>
@ -816,7 +816,7 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="GIRI GIRI PARADISE (1996)(May-Be Soft).ISO" size="75416880" crc="881e38b6" sha1="a836803d3af8d9554edfa304d9007bf9176a92db"/> <rom name="GIRI GIRI PARADISE (1996)(May-Be Soft).ISO" size="75416880" crc="881e38b6" sha1="a836803d3af8d9554edfa304d9007bf9176a92db"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="GIRI GIRI PARADISE (1996)(May-Be Soft).cue" size="99" crc="bdb48d15" sha1="f52ce65cbb8f7ee719a6c7874b45149f1a9ac5cd"/> <rom name="GIRI GIRI PARADISE (1996)(May-Be Soft).cue" size="99" crc="bdb48d15" sha1="f52ce65cbb8f7ee719a6c7874b45149f1a9ac5cd"/>
--> -->
@ -866,7 +866,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="inhearth"> <software name="inhearth">
<!-- <!--
Origin unknwon Origin unknwon
@ -941,7 +941,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="lodoss"> <software name="lodoss">
<!-- <!--
Origin unknwon Origin unknwon
@ -1161,9 +1161,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="Ponytail Anthology vol.1 (1996)(Ponytail Soft).iso" size="16652288" crc="0c2af0dc" sha1="392fdfdf0de6bc0d469f802b207b38fbd7fef9f6"/> <rom name="Ponytail Anthology vol.1 (1996)(Ponytail Soft).iso" size="16652288" crc="0c2af0dc" sha1="392fdfdf0de6bc0d469f802b207b38fbd7fef9f6"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Ponytail Anthology vol.1 (1996)(Ponytail Soft).cue" size="107" crc="1a019c62" sha1="0ad502b5a8be7e178c05de19d8a74a4542a588e3"/> <rom name="Ponytail Anthology vol.1 (1996)(Ponytail Soft).cue" size="107" crc="1a019c62" sha1="0ad502b5a8be7e178c05de19d8a74a4542a588e3"/>
--> -->
<description>Ponytail Anthology Vol. 1</description> <description>Ponytail Anthology Vol. 1</description>
<year>1996</year> <year>1996</year>
@ -1180,9 +1180,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="Ponytail Anthology vol.2 (1996)(Ponytail Soft).iso" size="12025856" crc="216080b4" sha1="42402615993baea8b09987463c6c2ebe08ff93d0"/> <rom name="Ponytail Anthology vol.2 (1996)(Ponytail Soft).iso" size="12025856" crc="216080b4" sha1="42402615993baea8b09987463c6c2ebe08ff93d0"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Ponytail Anthology vol.2 (1996)(Ponytail Soft).cue" size="107" crc="c795a04c" sha1="4fef4206c9ee3bb2cae2207313aebbdc21369b39"/> <rom name="Ponytail Anthology vol.2 (1996)(Ponytail Soft).cue" size="107" crc="c795a04c" sha1="4fef4206c9ee3bb2cae2207313aebbdc21369b39"/>
--> -->
<description>Ponytail Anthology Vol. 2</description> <description>Ponytail Anthology Vol. 2</description>
<year>1996</year> <year>1996</year>
@ -1199,9 +1199,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="Ponytail Anthology vol.3 (1996)(Ponytail Soft).iso" size="19972096" crc="798581ae" sha1="52b663b863017e21e25c8855ad0da39a89a382d9"/> <rom name="Ponytail Anthology vol.3 (1996)(Ponytail Soft).iso" size="19972096" crc="798581ae" sha1="52b663b863017e21e25c8855ad0da39a89a382d9"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Ponytail Anthology vol.3 (1996)(Ponytail Soft).cue" size="107" crc="3a36b669" sha1="9b446abf11350f2d0ea8640f43a3f93784f1e2ce"/> <rom name="Ponytail Anthology vol.3 (1996)(Ponytail Soft).cue" size="107" crc="3a36b669" sha1="9b446abf11350f2d0ea8640f43a3f93784f1e2ce"/>
--> -->
<description>Ponytail Anthology Vol. 3</description> <description>Ponytail Anthology Vol. 3</description>
<year>1996</year> <year>1996</year>
@ -1221,11 +1221,11 @@
<rom name="Image.cue" size="1611" crc="426e02ab" sha1="b41aca944329184740ae31642d209e13123132d7"/> <rom name="Image.cue" size="1611" crc="426e02ab" sha1="b41aca944329184740ae31642d209e13123132d7"/>
<rom name="Image.img" size="333958128" crc="26163a8c" sha1="b18171ceba72e72d23ca502e05173158c4de5538"/> <rom name="Image.img" size="333958128" crc="26163a8c" sha1="b18171ceba72e72d23ca502e05173158c4de5538"/>
<rom name="Image.sub" size="13630944" crc="5c783df4" sha1="f17dd7023dc4ffad27e4741ba000326e49329bc9"/> <rom name="Image.sub" size="13630944" crc="5c783df4" sha1="f17dd7023dc4ffad27e4741ba000326e49329bc9"/>
The original CUE indicates MODE1/2352 for the data track, but this seems to be wrong, as all the data The original CUE indicates MODE1/2352 for the data track, but this seems to be wrong, as all the data
sectors in track 1 are actually mode 2, and MS-DOS doesn't recognize the file system. To avoid this, the sectors in track 1 are actually mode 2, and MS-DOS doesn't recognize the file system. To avoid this, the
CHD was converted through a modified CUE with MODE2/2352. CHD was converted through a modified CUE with MODE2/2352.
<rom name="Image_mode2.cue" size="1611" crc="6071e32b" sha1="be8aaa23a63272e7a5b7f3f5972d982345c1d65d"/> <rom name="Image_mode2.cue" size="1611" crc="6071e32b" sha1="be8aaa23a63272e7a5b7f3f5972d982345c1d65d"/>
--> -->
<description>Professional Baseball 1996</description> <description>Professional Baseball 1996</description>
@ -1332,9 +1332,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="Ryouki no Ori 1 (1996)(PLANTECH-ZEROSYSTEM).ISO" size="119138304" crc="193e09d1" sha1="caffe3f19e618cc10af3fcbe6df7c48ab717a928"/> <rom name="Ryouki no Ori 1 (1996)(PLANTECH-ZEROSYSTEM).ISO" size="119138304" crc="193e09d1" sha1="caffe3f19e618cc10af3fcbe6df7c48ab717a928"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Ryouki no Ori 1 (1996)(PLANTECH-ZEROSYSTEM).cue" size="104" crc="176f9e3f" sha1="22080c96d5566c7de03beb349c5fa026c677fa94"/> <rom name="Ryouki no Ori 1 (1996)(PLANTECH-ZEROSYSTEM).cue" size="104" crc="176f9e3f" sha1="22080c96d5566c7de03beb349c5fa026c677fa94"/>
--> -->
<description>Ryouki no Ori</description> <description>Ryouki no Ori</description>
<year>1995</year> <year>1995</year>
@ -1352,9 +1352,9 @@
<!-- <!--
Origin: P2P Origin: P2P
<rom name="Ryouki no Ori 2 (1997)(PLANTECH-ZEROSYSTEM).ISO" size="119138304" crc="193e09d1" sha1="caffe3f19e618cc10af3fcbe6df7c48ab717a928"/> <rom name="Ryouki no Ori 2 (1997)(PLANTECH-ZEROSYSTEM).ISO" size="119138304" crc="193e09d1" sha1="caffe3f19e618cc10af3fcbe6df7c48ab717a928"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="Ryouki no Ori 2 (1997)(PLANTECH-ZEROSYSTEM).cue" size="104" crc="50b6c537" sha1="b64354c20cddc43c21c9e406320e1fd673ee5912"/> <rom name="Ryouki no Ori 2 (1997)(PLANTECH-ZEROSYSTEM).cue" size="104" crc="50b6c537" sha1="b64354c20cddc43c21c9e406320e1fd673ee5912"/>
--> -->
<description>Ryouki no Ori Dai-2-Shou</description> <description>Ryouki no Ori Dai-2-Shou</description>
<year>1996</year> <year>1996</year>
@ -1488,12 +1488,12 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="sela"> <software name="sela">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
<rom name="sela_cd.iso" size="198440960" crc="82598cf7" sha1="366f4c38b16d865c1e826b447dc566d94633aa7b"/> <rom name="sela_cd.iso" size="198440960" crc="82598cf7" sha1="366f4c38b16d865c1e826b447dc566d94633aa7b"/>
<rom name="sela_music_cd.bin" size="511383600" crc="53c9cd59" sha1="9955790be92eb99d54c449b808e0ccc5e42111d7"/> <rom name="sela_music_cd.bin" size="511383600" crc="53c9cd59" sha1="9955790be92eb99d54c449b808e0ccc5e42111d7"/>
<rom name="sela_music_cd.cue" size="714" crc="e92f82d0" sha1="e0d88a3d6d36b69268e0f471db540508e708f26c"/> <rom name="sela_music_cd.cue" size="714" crc="e92f82d0" sha1="e0d88a3d6d36b69268e0f471db540508e708f26c"/>
--> -->
@ -1556,7 +1556,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="srmp4f"> <software name="srmp4f">
<!-- <!--
Origin unknwon Origin unknwon
@ -1580,7 +1580,7 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="strike commander plus.iso" size="86388960" crc="d8953dae" sha1="80f27e2682f41ee5d82a3c8cad59bb5aeb7e9817"/> <rom name="strike commander plus.iso" size="86388960" crc="d8953dae" sha1="80f27e2682f41ee5d82a3c8cad59bb5aeb7e9817"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="strike commander plus.cue" size="82" crc="0f9a2f59" sha1="90970d4595d29c7efd90f39e07dea9e46b5e297f"/> <rom name="strike commander plus.cue" size="82" crc="0f9a2f59" sha1="90970d4595d29c7efd90f39e07dea9e46b5e297f"/>
--> -->
@ -1595,7 +1595,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<!-- This contains some doujin games for PC-98 and some for Windows3.1/95 --> <!-- This contains some doujin games for PC-98 and some for Windows3.1/95 -->
<software name="takerud1"> <software name="takerud1">
<!-- <!--
@ -1712,7 +1712,7 @@
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="usnf"> <software name="usnf">
<!-- <!--
Origin: peter_j (Super Lonely Terminal) Origin: peter_j (Super Lonely Terminal)
@ -1803,9 +1803,9 @@
<!-- <!--
Origin: Unknown Origin: Unknown
<rom name="ZAI_METAJO CD (1996)(ANJIN).ISO" size="40092192" crc="c41f199f" sha1="08aae335ff1fff2a674a1012be423720f3273535"/> <rom name="ZAI_METAJO CD (1996)(ANJIN).ISO" size="40092192" crc="c41f199f" sha1="08aae335ff1fff2a674a1012be423720f3273535"/>
CUE file used for conversion: CUE file used for conversion:
<rom name="ZAI_METAJO CD (1996)(ANJIN).cue" size="88" crc="3c3cbf79" sha1="504effcd208f11f867c340d2bc046d46f5519ab5"/> <rom name="ZAI_METAJO CD (1996)(ANJIN).cue" size="88" crc="3c3cbf79" sha1="504effcd208f11f867c340d2bc046d46f5519ab5"/>
--> -->
<description>Zai Metajo</description> <description>Zai Metajo</description>
<year>1996</year> <year>1996</year>

View File

@ -553,7 +553,7 @@ Notes:
</part> </part>
</software> </software>
<!--Override --> <!--Override -->
<software name="override"> <software name="override">
<description>Override (Tourvision PCE bootleg)</description> <description>Override (Tourvision PCE bootleg)</description>

View File

@ -106,7 +106,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="hanshind"> <software name="hanshind">
<description>1995.1.17 Hanshin Daishinsai (Jpn)</description> <description>1995.1.17 Hanshin Daishinsai (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Keikakudo</publisher> <!-- 計画堂 --> <publisher>Keikakudo</publisher> <!-- 計画堂 -->
<info name="serial" value="BDS-20005" /> <info name="serial" value="BDS-20005" />
<info name="alt_title" value="1995.1.17 阪神大震災" /> <info name="alt_title" value="1995.1.17 阪神大震災" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -236,7 +236,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="chisatom"> <software name="chisatom">
<description>Chisato Moritaka CD-Rom Watarase Bashi (Jpn)</description> <description>Chisato Moritaka CD-Rom Watarase Bashi (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Oracion</publisher> <!-- オラシオン --> <publisher>Oracion</publisher> <!-- オラシオン -->
<info name="serial" value="BDE-10007" /> <info name="serial" value="BDE-10007" />
<info name="alt_title" value="森高千里CD-ROM 渡良瀬橋" /> <info name="alt_title" value="森高千里CD-ROM 渡良瀬橋" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -249,7 +249,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="circus"> <software name="circus">
<description>Circus! (Jpn)</description> <description>Circus! (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Voyager</publisher> <!-- ボイジャー --> <publisher>Voyager</publisher> <!-- ボイジャー -->
<info name="serial" value="BDS-20031" /> <info name="serial" value="BDS-20031" />
<info name="alt_title" value="サーカス!" /> <info name="alt_title" value="サーカス!" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -274,7 +274,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="dazzloid"> <software name="dazzloid">
<description>Dazzeloids (Jpn)</description> <description>Dazzeloids (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Voyager</publisher> <!-- ボイジャー --> <publisher>Voyager</publisher> <!-- ボイジャー -->
<info name="serial" value="BDS-20030" /> <info name="serial" value="BDS-20030" />
<info name="alt_title" value="ダズロイド" /> <info name="alt_title" value="ダズロイド" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -336,7 +336,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="ffaliens"> <software name="ffaliens">
<description>Funky Funny Aliens (Jpn)</description> <description>Funky Funny Aliens (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Amuse</publisher> <!-- アミューズ --> <publisher>Amuse</publisher> <!-- アミューズ -->
<info name="serial" value="BDS-20014" /> <info name="serial" value="BDS-20014" />
<info name="alt_title" value="ファンキー ファニー エイリアンズ" /> <info name="alt_title" value="ファンキー ファニー エイリアンズ" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -349,7 +349,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="gadget"> <software name="gadget">
<description>Gadget (Jpn)</description> <description>Gadget (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 --> <publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 -->
<info name="serial" value="BDS-20033" /> <info name="serial" value="BDS-20033" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
<diskarea name="cdrom"> <diskarea name="cdrom">
@ -361,7 +361,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="gakkoku"> <software name="gakkoku">
<description>Gakko no Kowai Uwasa - Hanako-san ga Kita!! (Jpn)</description> <description>Gakko no Kowai Uwasa - Hanako-san ga Kita!! (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Amuse</publisher> <!-- アミューズ --> <publisher>Amuse</publisher> <!-- アミューズ -->
<info name="serial" value="BDS-20012" /> <info name="serial" value="BDS-20012" />
<info name="alt_title" value="学校のコワイうわさ 花子さんがきた!!" /> <info name="alt_title" value="学校のコワイうわさ 花子さんがきた!!" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -425,7 +425,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="kidsbox"> <software name="kidsbox">
<description>Kids Box (Jpn)</description> <description>Kids Box (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Ask Kodansha</publisher> <!-- アスク講談社 --> <publisher>Ask Kodansha</publisher> <!-- アスク講談社 -->
<info name="serial" value="BDS-20003" /> <info name="serial" value="BDS-20003" />
<info name="alt_title" value="キッズ・ボックス" /> <info name="alt_title" value="キッズ・ボックス" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -475,7 +475,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="lzone"> <software name="lzone">
<description>L-Zone (Jpn)</description> <description>L-Zone (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 --> <publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 -->
<info name="serial" value="BDS-20017" /> <info name="serial" value="BDS-20017" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
<diskarea name="cdrom"> <diskarea name="cdrom">
@ -561,7 +561,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="music1"> <software name="music1">
<description>Music Island Vol. 1 (Prokofiev Peter &amp; the Wolf) (Jpn)</description> <description>Music Island Vol. 1 (Prokofiev Peter &amp; the Wolf) (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Oracion</publisher> <!-- オラシオン --> <publisher>Oracion</publisher> <!-- オラシオン -->
<info name="serial" value="BDS-20007" /> <info name="serial" value="BDS-20007" />
<info name="alt_title" value="MUSIC ISLAND プロコフィエフ ピーターと狼 PETER AND THE WOLF" /> <info name="alt_title" value="MUSIC ISLAND プロコフィエフ ピーターと狼 PETER AND THE WOLF" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -574,7 +574,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="music2"> <software name="music2">
<description>Music Island Vol. 2 (Tchaikovsky The Nutcracker) (Jpn)</description> <description>Music Island Vol. 2 (Tchaikovsky The Nutcracker) (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Oracion</publisher> <!-- オラシオン --> <publisher>Oracion</publisher> <!-- オラシオン -->
<info name="serial" value="BDS-20027" /> <info name="serial" value="BDS-20027" />
<info name="alt_title" value="MUSIC ISLAND チャイコフスキー くるみわり人形 The Nutcracker" /> <info name="alt_title" value="MUSIC ISLAND チャイコフスキー くるみわり人形 The Nutcracker" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -587,7 +587,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="music3"> <software name="music3">
<description>Music Island Vol. 3 (Vivaldi The Four Seasons) (Jpn)</description> <description>Music Island Vol. 3 (Vivaldi The Four Seasons) (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Oracion</publisher> <!-- オラシオン --> <publisher>Oracion</publisher> <!-- オラシオン -->
<info name="serial" value="BDS-20028" /> <info name="serial" value="BDS-20028" />
<info name="alt_title" value="MUSIC ISLAND ヴィヴァルディ 四季 The Four Seasons" /> <info name="alt_title" value="MUSIC ISLAND ヴィヴァルディ 四季 The Four Seasons" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -600,7 +600,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="music4"> <software name="music4">
<description>Music Island Vol. 4 (Saint-Saens Carnival of the Animals) (Jpn)</description> <description>Music Island Vol. 4 (Saint-Saens Carnival of the Animals) (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Oracion</publisher> <!-- オラシオン --> <publisher>Oracion</publisher> <!-- オラシオン -->
<info name="serial" value="BDS-20029" /> <info name="serial" value="BDS-20029" />
<info name="alt_title" value="MUSIC ISLAND サン=サーンス 動物の謝肉祭 Carnival of the Animals" /> <info name="alt_title" value="MUSIC ISLAND サン=サーンス 動物の謝肉祭 Carnival of the Animals" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -613,7 +613,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="nemuyoru"> <software name="nemuyoru">
<description>Nemurenu Yoru no Chiisana Ohanashi (Jpn)</description> <description>Nemurenu Yoru no Chiisana Ohanashi (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Amuse</publisher> <!-- アミューズ --> <publisher>Amuse</publisher> <!-- アミューズ -->
<info name="serial" value="BDS-20015" /> <info name="serial" value="BDS-20015" />
<info name="alt_title" value="眠れぬ夜の小さなお話" /> <info name="alt_title" value="眠れぬ夜の小さなお話" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -809,7 +809,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="seesawc1"> <software name="seesawc1">
<description>SeesawC 1 - My favorite things - Sukinamonodake Eitango 120 (Jpn)</description> <description>SeesawC 1 - My favorite things - Sukinamonodake Eitango 120 (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Aigaareba Daijoubu</publisher> <!-- 愛があれば大丈夫 --> <publisher>Aigaareba Daijoubu</publisher> <!-- 愛があれば大丈夫 -->
<info name="serial" value="BDE-10006" /> <info name="serial" value="BDE-10006" />
<info name="alt_title" value="シーソーシー1" /> <info name="alt_title" value="シーソーシー1" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -822,7 +822,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="seesawc2"> <software name="seesawc2">
<description>SeesawC 2 - My favorite places - Sukinatokorode Eitango 400 (Jpn)</description> <description>SeesawC 2 - My favorite places - Sukinatokorode Eitango 400 (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Aigaareba Daijoubu</publisher> <!-- 愛があれば大丈夫 --> <publisher>Aigaareba Daijoubu</publisher> <!-- 愛があれば大丈夫 -->
<info name="serial" value="BDE-10023" /> <info name="serial" value="BDE-10023" />
<info name="alt_title" value="シーソーシー2" /> <info name="alt_title" value="シーソーシー2" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -835,7 +835,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="shichiso"> <software name="shichiso">
<description>Shichisokusen (Jpn)</description> <description>Shichisokusen (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Media Five</publisher> <!-- メディアファイブ --> <publisher>Media Five</publisher> <!-- メディアファイブ -->
<info name="serial" value="BDS-20019" /> <info name="serial" value="BDS-20019" />
<info name="alt_title" value="死地則戦 ビジネスエデュテイメントソフト" /> <info name="alt_title" value="死地則戦 ビジネスエデュテイメントソフト" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -885,7 +885,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="tbreak"> <software name="tbreak">
<description>T-Break (Jpn)</description> <description>T-Break (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Infocity</publisher> <!-- インフォシティ --> <publisher>Infocity</publisher> <!-- インフォシティ -->
<info name="serial" value="BDS-20026" /> <info name="serial" value="BDS-20026" />
<info name="alt_title" value="ティ・ブレイク" /> <info name="alt_title" value="ティ・ブレイク" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -912,7 +912,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="tropicis"> <software name="tropicis">
<description>Tropic Island (Jpn)</description> <description>Tropic Island (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Momoderazu Brand</publisher> <!-- モモデラーズブランド --> <publisher>Momoderazu Brand</publisher> <!-- モモデラーズブランド -->
<info name="serial" value="BDS-20011" /> <info name="serial" value="BDS-20011" />
<info name="alt_title" value="トロピック アイランド" /> <info name="alt_title" value="トロピック アイランド" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -1069,7 +1069,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="yellow1"> <software name="yellow1">
<description>Yellow Brick Road I (Jpn)</description> <description>Yellow Brick Road I (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 --> <publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 -->
<info name="serial" value="BDS-20022" /> <info name="serial" value="BDS-20022" />
<info name="alt_title" value="イエロー・ブリック・ロード I" /> <info name="alt_title" value="イエロー・ブリック・ロード I" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -1082,7 +1082,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="yellow2"> <software name="yellow2">
<description>Yellow Brick Road II - Glinda to Nishi no Majo (Jpn)</description> <description>Yellow Brick Road II - Glinda to Nishi no Majo (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 --> <publisher>Synergy Ikunangaku</publisher> <!-- シナジー幾何学 -->
<info name="serial" value="BDS-20023" /> <info name="serial" value="BDS-20023" />
<info name="alt_title" value="イエロー・ブリック・ロード II グリンダと西の魔女" /> <info name="alt_title" value="イエロー・ブリック・ロード II グリンダと西の魔女" />
<part name="cdrom1" interface="scd_cdrom"> <part name="cdrom1" interface="scd_cdrom">
@ -1102,7 +1102,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="yellows"> <software name="yellows">
<description>Yellows - Akira Gomi Photographs (Jpn)</description> <description>Yellows - Akira Gomi Photographs (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Digitalogue</publisher> <!-- デジタローグ --> <publisher>Digitalogue</publisher> <!-- デジタローグ -->
<info name="serial" value="BDS-20001" /> <info name="serial" value="BDS-20001" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
<diskarea name="cdrom"> <diskarea name="cdrom">
@ -1114,7 +1114,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="yellws2"> <software name="yellws2">
<description>Yellows 2.0 - Tokyo 1993 Akira Gomi Photographs (Jpn)</description> <description>Yellows 2.0 - Tokyo 1993 Akira Gomi Photographs (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Digitalogue</publisher> <!-- デジタローグ --> <publisher>Digitalogue</publisher> <!-- デジタローグ -->
<info name="serial" value="BDS-20002" /> <info name="serial" value="BDS-20002" />
<info name="alt_title" value="イエローズ 2.0" /> <info name="alt_title" value="イエローズ 2.0" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">
@ -1127,7 +1127,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
<software name="yokumite"> <software name="yokumite">
<description>Yoku Mite Goran! (Jpn)</description> <description>Yoku Mite Goran! (Jpn)</description>
<year>1996</year> <year>1996</year>
<publisher>Voyager</publisher> <!-- ボイジャー --> <publisher>Voyager</publisher> <!-- ボイジャー -->
<info name="serial" value="BDS-20018" /> <info name="serial" value="BDS-20018" />
<info name="alt_title" value="よく見てごらん!美術館へ行こう" /> <info name="alt_title" value="よく見てごらん!美術館へ行こう" />
<part name="cdrom" interface="pippin_cdrom"> <part name="cdrom" interface="pippin_cdrom">

View File

@ -21,8 +21,8 @@
Undumped 3rd party cartridges: Undumped 3rd party cartridges:
Adcalc AAC-1000 Adcalc AAC-1000
Alpha Paging Interface SAMpage Alpha Paging Interface SAMpage
Business Contacts and Information Manager BCIM Business Contacts and Information Manager BCIM
Checkwriter Checkwriter
Colossal Cave Adventure Colossal Cave Adventure

View File

@ -1357,7 +1357,7 @@ Beyond that last category are the roms waiting to be classified.
<feature name="u1" value="U1 EPROM" /> <feature name="u1" value="U1 EPROM" />
<feature name="u2" value="U2 EPROM" /> <feature name="u2" value="U2 EPROM" />
<feature name="u3" value="U3 EPROM" /> <feature name="u3" value="U3 EPROM" />
<feature name="u4" value="U4 EPROM" /> <!-- empty socket --> <feature name="u4" value="U4 EPROM" /> <!-- empty socket -->
<feature name="u5" value="U5 SRAM" /> <feature name="u5" value="U5 SRAM" />
<feature name="u6" value="U6 PLD" /> <feature name="u6" value="U6 PLD" />
<feature name="u7" value="U7 74LS157" /> <feature name="u7" value="U7 74LS157" />
@ -34238,7 +34238,7 @@ List of unclassified roms
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="arabianp" cloneof="arabian"> <software name="arabianp" cloneof="arabian">
<description>Arabian Nights - Sabaku no Seirei Ou (Jpn, Prototype)</description> <description>Arabian Nights - Sabaku no Seirei Ou (Jpn, Prototype)</description>
<year>1996</year> <year>1996</year>
@ -37664,7 +37664,7 @@ List of unclassified roms
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="downwrldd" cloneof="downwrld"> <software name="downwrldd" cloneof="downwrld">
<description>Down the World - Mervil's Ambition (Jpn, Rolling Demo)</description> <description>Down the World - Mervil's Ambition (Jpn, Rolling Demo)</description>
<year>1994</year> <year>1994</year>
@ -40283,7 +40283,7 @@ List of unclassified roms
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="ganpurup" cloneof="ganpuru"> <software name="ganpurup" cloneof="ganpuru">
<description>Ganpuru - Gunman's Proof (Jpn, Prototype)</description> <description>Ganpuru - Gunman's Proof (Jpn, Prototype)</description>
<year>1997</year> <year>1997</year>
@ -61015,7 +61015,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="tougedenp" cloneof="tougeden"> <software name="tougedenp" cloneof="tougeden">
<description>Touge Densetsu - Saisoku Battle (Jpn, Prototype)</description> <description>Touge Densetsu - Saisoku Battle (Jpn, Prototype)</description>
<year>1996</year> <year>1996</year>
@ -61911,7 +61911,7 @@ to ensure nothing has been touched in the Retro Quest cart production in 2013/20
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="umizurimp" cloneof="umizurim"> <software name="umizurimp" cloneof="umizurim">
<description>Umizuri Meijin - Suzuki Hen (Jpn, Prototype)</description> <description>Umizuri Meijin - Suzuki Hen (Jpn, Prototype)</description>
<year>1994</year> <year>1994</year>

View File

@ -901,7 +901,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="cinderlaa" cloneof="cinderla" supported="no"> <software name="cinderlaa" cloneof="cinderla" supported="no">
<description>Cinderella - Cinderella's Magic Wishes (USA, Alt)</description> <description>Cinderella - Cinderella's Magic Wishes (USA, Alt)</description>
<year>200?</year> <year>200?</year>
@ -912,7 +912,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="cinderlaf" cloneof="cinderla" supported="no"> <software name="cinderlaf" cloneof="cinderla" supported="no">
<description>Cendrillon - Le Rêve Enchanté de Cendrillon (Fra)</description> <description>Cendrillon - Le Rêve Enchanté de Cendrillon (Fra)</description>
<year>200?</year> <year>200?</year>
@ -1056,7 +1056,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="kleinstn" supported="no"> <software name="kleinstn" supported="no">
<description>Kleine Einsteins (Ger)</description> <description>Kleine Einsteins (Ger)</description>
<year>200?</year> <year>200?</year>
@ -1122,7 +1122,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="mickymag" supported="no"> <software name="mickymag" supported="no">
<description>Disney's Mickey Mouse - Mickey's Magical Adventure (USA)</description> <description>Disney's Mickey Mouse - Mickey's Magical Adventure (USA)</description>
<year>200?</year> <year>200?</year>
@ -1342,7 +1342,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="shrekf" cloneof="shrek" supported="no"> <software name="shrekf" cloneof="shrek" supported="no">
<description>Shrek - Le Rhume de Dragonne (Fra)</description> <description>Shrek - Le Rhume de Dragonne (Fra)</description>
<year>200?</year> <year>200?</year>
@ -1463,7 +1463,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="tingelng" supported="no"> <software name="tingelng" supported="no">
<description>Tingeling (Swe)</description> <description>Tingeling (Swe)</description>
<year>200?</year> <year>200?</year>
@ -1474,7 +1474,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="toystor2" supported="no"> <software name="toystor2" supported="no">
<description>Toy Story 2 - Operation: Rescue Woody! (USA)</description> <description>Toy Story 2 - Operation: Rescue Woody! (USA)</description>
<year>2005</year> <year>2005</year>
@ -1540,7 +1540,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="pooh1" cloneof="pooh" supported="no"> <software name="pooh1" cloneof="pooh" supported="no">
<description>My Friends Tigger &amp; Pooh - Die Honigjagd (Ger)</description> <description>My Friends Tigger &amp; Pooh - Die Honigjagd (Ger)</description>
<year>200?</year> <year>200?</year>
@ -1617,7 +1617,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="zayzoo" supported="no"> <software name="zayzoo" supported="no">
<description>Zayzoo - My Alien Classmate (USA)</description> <description>Zayzoo - My Alien Classmate (USA)</description>
<year>200?</year> <year>200?</year>
@ -1665,7 +1665,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="poohhawa" supported="no"> <software name="poohhawa" supported="no">
<description>Pooh's Hundred Acre Wood Adventure (USA) (V.Smile Baby)</description> <description>Pooh's Hundred Acre Wood Adventure (USA) (V.Smile Baby)</description>
<year>2007</year> <year>2007</year>
@ -1713,7 +1713,7 @@ V.Baby (NOT V.Smile Baby)
</dataarea> </dataarea>
</part> </part>
</software> </software>
<software name="kleinsvm" supported="no"> <software name="kleinsvm" supported="no">
<description>Kleine Einsteins (Ger) (V.Smile Motion)</description> <description>Kleine Einsteins (Ger) (V.Smile Motion)</description>
<year>200?</year> <year>200?</year>

View File

@ -117,7 +117,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="bratz" supported="no"> <software name="bratz" supported="no">
<!-- <!--
Original files: Original files:
@ -135,7 +135,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="cars" supported="no"> <software name="cars" supported="no">
<!-- <!--
Original files: Original files:
@ -153,7 +153,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="carsg" cloneof="cars" supported="no"> <software name="carsg" cloneof="cars" supported="no">
<!-- <!--
Original files (from TeamEurope) Original files (from TeamEurope)
@ -170,7 +170,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="princess" supported="no"> <software name="princess" supported="no">
<!-- <!--
Original files: Original files:
@ -188,7 +188,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="princessg" cloneof="princess" supported="no"> <software name="princessg" cloneof="princess" supported="no">
<!-- <!--
Original files (from TeamEurope) Original files (from TeamEurope)
@ -225,7 +225,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="incredibg" cloneof="incredib" supported="no"> <software name="incredibg" cloneof="incredib" supported="no">
<!-- <!--
Original files (from TeamEurope) Original files (from TeamEurope)
@ -242,7 +242,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="msportg" supported="no"> <software name="msportg" supported="no">
<!-- <!--
Original files (from TeamEurope) Original files (from TeamEurope)
@ -279,7 +279,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="shrek3" supported="no"> <software name="shrek3" supported="no">
<!-- <!--
Original files: Original files:
@ -297,7 +297,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="shrek3g" cloneof="shrek3" supported="no"> <software name="shrek3g" cloneof="shrek3" supported="no">
<!-- <!--
Original files (from TeamEurope) Original files (from TeamEurope)
@ -314,7 +314,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<software name="spongeis" supported="no"> <software name="spongeis" supported="no">
<!-- <!--
Original files: Original files:
@ -349,7 +349,7 @@ Language:
</diskarea> </diskarea>
</part> </part>
</software> </software>
<!-- disk mounted as 93120_003 --> <!-- disk mounted as 93120_003 -->
<software name="wackyrac" supported="no"> <software name="wackyrac" supported="no">
<!-- <!--

View File

@ -1486,14 +1486,14 @@ endif
ifeq (posix,$(SHELLTYPE)) ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS) $(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS)
@echo '#define BARE_BUILD_VERSION "0.174"' > $@ @echo '#define BARE_BUILD_VERSION "0.175"' > $@
@echo 'extern const char bare_build_version[];' >> $@ @echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char build_version[];' >> $@ @echo 'extern const char build_version[];' >> $@
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@ @echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@ @echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
else else
$(GENDIR)/version.cpp: $(GENDIR)/git_desc $(GENDIR)/version.cpp: $(GENDIR)/git_desc
@echo #define BARE_BUILD_VERSION "0.174" > $@ @echo #define BARE_BUILD_VERSION "0.175" > $@
@echo extern const char bare_build_version[]; >> $@ @echo extern const char bare_build_version[]; >> $@
@echo extern const char build_version[]; >> $@ @echo extern const char build_version[]; >> $@
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@ @echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@

View File

@ -2,7 +2,7 @@
// copyright-holders:Nigel Barnes // copyright-holders:Nigel Barnes
/********************************************************************** /**********************************************************************
Electron Expansion Port emulation Electron Expansion Port emulation
**********************************************************************/ **********************************************************************/

View File

@ -2,84 +2,84 @@
// copyright-holders:Nigel Barnes // copyright-holders:Nigel Barnes
/********************************************************************** /**********************************************************************
Electron Expansion Port emulation Electron Expansion Port emulation
********************************************************************** **********************************************************************
Pinout: Pinout:
18V AC 2 1 18V AC 18V AC 2 1 18V AC
AC RETURN 4 3 AC RETURN AC RETURN 4 3 AC RETURN
-5V 6 5 -5V -5V 6 5 -5V
0V 8 7 0V 0V 8 7 0V
+5V 10 9 +5V +5V 10 9 +5V
16MHz 12 11 SOUND O/P 16MHz 12 11 SOUND O/P
PHI OUT 14 13 ÷13 IN PHI OUT 14 13 13 IN
NMI 16 15 RST NMI 16 15 RST
R/W 18 17 IRQ R/W 18 17 IRQ
D6 20 19 D7 D6 20 19 D7
D4 22 21 D5 D4 22 21 D5
D2 24 23 D3 D2 24 23 D3
D0 26 25 D1 D0 26 25 D1
NC 28 27 RDY NC 28 27 RDY
SLOT 30 29 SLOT SLOT 30 29 SLOT
A14 32 31 A15 A14 32 31 A15
A12 34 33 A13 A12 34 33 A13
A10 36 35 A11 A10 36 35 A11
A0 38 37 A9 A0 38 37 A9
A2 40 39 A1 A2 40 39 A1
A4 42 41 A3 A4 42 41 A3
A6 44 43 A5 A6 44 43 A5
A8 46 45 A7 A8 46 45 A7
0V 48 47 0V 0V 48 47 0V
+5V 50 49 +5V +5V 50 49 +5V
Signal Definitions: Signal Definitions:
18V AC (pins 1,2) - These lines are connected directly to the output from the Electron mains power 18V AC (pins 1,2) - These lines are connected directly to the output from the Electron mains power
AC RETURNS (pins 3,4) - adaptor. A total of 6W may be drawn from these lines as long as no power is AC RETURNS (pins 3,4) - adaptor. A total of 6W may be drawn from these lines as long as no power is
taken from +5V (pins 9,10,49,50). For safety reasons these lines must never taken from +5V (pins 9,10,49,50). For safety reasons these lines must never
be used as an AC input to the Electron. be used as an AC input to the Electron.
-5V (pins 5,6) - A -5V supply from the Electron. Up to 20mA (total) may safely be drawn -5V (pins 5,6) - A -5V supply from the Electron. Up to 20mA (total) may safely be drawn
from this line by expansion modules. from this line by expansion modules.
0V (pins 7,8,47,48) - Ground. Expansion modules with their own power supply must have the 0V 0V (pins 7,8,47,48) - Ground. Expansion modules with their own power supply must have the 0V
lines commoned with the Electron. lines commoned with the Electron.
+5V (pins 9,10,49,50) - A +5V supply from the Electron. Up to 500mA (total) may safely be drawn +5V (pins 9,10,49,50) - A +5V supply from the Electron. Up to 500mA (total) may safely be drawn
from this line by expansion modules as long as no power is taken from 18V from this line by expansion modules as long as no power is taken from 18V
AC (pins 1,2,3,4). AC (pins 1,2,3,4).
SOUND O/P (pin 11) - Sound output. A 3V peak to peak source via a 1K series resistor from the SOUND O/P (pin 11) - Sound output. A 3V peak to peak source via a 1K series resistor from the
Electron ULA. Electron ULA.
16 MHz (pin 12) - 16 Megahertz from the Electron main oscillator. This output may be used 16 MHz (pin 12) - 16 Megahertz from the Electron main oscillator. This output may be used
for clock generation within an expansion module. for clock generation within an expansion module.
/13 IN (pin 13) - 16 Megahertz divided by 13. This output may be used for baud rate /13 IN (pin 13) - 16 Megahertz divided by 13. This output may be used for baud rate
generation. If divided by 1024 it will give approximately 1200Hz. generation. If divided by 1024 it will give approximately 1200Hz.
PHI OUT (pin 14) - The 6502 input clock. The low time is nominally 250ns. The high time may PHI OUT (pin 14) - The 6502 input clock. The low time is nominally 250ns. The high time may
be 250ns (2MHz operation when reading ROMs) or 750ns or 1250ns be 250ns (2MHz operation when reading ROMs) or 750ns or 1250ns
(stretched clock for a 1MHz access, the length depending on the phase of the (stretched clock for a 1MHz access, the length depending on the phase of the
2MHz clock) or up to 40us (if in modes 0-3) 2MHz clock) or up to 40us (if in modes 0-3)
RST (pin 15) - Reset (active low). This is an OUTPUT ONLY for the system reset line. It RST (pin 15) - Reset (active low). This is an OUTPUT ONLY for the system reset line. It
may be used to initialise expansion modules on power up and when the may be used to initialise expansion modules on power up and when the
BREAK key is pressed. BREAK key is pressed.
NMI (pin 16) - Non-Maskable Interrupt (negative edge triggered). This is the system NMI NMI (pin 16) - Non-Maskable Interrupt (negative edge triggered). This is the system NMI
line which is open collector (wire-OR) and may be asserted by an expansion line which is open collector (wire-OR) and may be asserted by an expansion
module. The pull-up resistor on this line inside the ULA is 3k3. Care must module. The pull-up resistor on this line inside the ULA is 3k3. Care must
be taken to avoid masking other interrupts by holding the line low. Using be taken to avoid masking other interrupts by holding the line low. Using
NMI on the Electron requires knowledge of operating system protocols. NMI on the Electron requires knowledge of operating system protocols.
IRQ (pin 17) - Interrupt Request (active low). This is the system IRQ line which is open IRQ (pin 17) - Interrupt Request (active low). This is the system IRQ line which is open
collector (wire-OR) and may be asserted by an expansion module. The pull- collector (wire-OR) and may be asserted by an expansion module. The pull-
up resistor on this line inside the ULA is 3k3. It is essential for the correct up resistor on this line inside the ULA is 3k3. It is essential for the correct
operation of the machine that interrupts to not occur until the software is operation of the machine that interrupts to not occur until the software is
capable of dealing with them. Interrupts on the Electron expansion bus should capable of dealing with them. Interrupts on the Electron expansion bus should
therefore be disabled on power-up and reset. Significant use of interrupt therefore be disabled on power-up and reset. Significant use of interrupt
service time may affect other machine functions, eg the real time clock. service time may affect other machine functions, eg the real time clock.
R/W (pin 18) - The system read/write line from the 6502. R/W (pin 18) - The system read/write line from the 6502.
D7-D0 (pins 19-26) - Bi-directional data bus. The direction of data is determined by R/W. D7-D0 (pins 19-26) - Bi-directional data bus. The direction of data is determined by R/W.
RDY (pin 27) - 6502 ready line (active low). May be asserted by an expansion module to RDY (pin 27) - 6502 ready line (active low). May be asserted by an expansion module to
stop the processor when reading slow memory. This line works on read only stop the processor when reading slow memory. This line works on read only
(R/W=1). (R/W=1).
(pin 28) - No connection (pin 28) - No connection
(pins 29,30) - Polarising key connector. (pins 29,30) - Polarising key connector.
A0-A15 (pins 31-46) - 6502 address bus. A0-A15 (pins 31-46) - 6502 address bus.
**********************************************************************/ **********************************************************************/

View File

@ -452,7 +452,7 @@ void gb_rom_mbc3_device::update_rtc()
{ {
system_time curtime; system_time curtime;
machine().current_datetime(curtime); machine().current_datetime(curtime);
m_rtc_regs[0] = curtime.local_time.second; m_rtc_regs[0] = curtime.local_time.second;
m_rtc_regs[1] = curtime.local_time.minute; m_rtc_regs[1] = curtime.local_time.minute;
m_rtc_regs[2] = curtime.local_time.hour; m_rtc_regs[2] = curtime.local_time.hour;
@ -700,7 +700,7 @@ WRITE8_MEMBER(gb_rom_m161_device::write_bank)
{ {
// the mapper (74HC161A) only has data lines D2..D0 // the mapper (74HC161A) only has data lines D2..D0
data &= 0x07; data &= 0x07;
// A15 is connected to #LOAD and overwritten by QD (m_load_disable) // A15 is connected to #LOAD and overwritten by QD (m_load_disable)
switch (offset & 0x8000) switch (offset & 0x8000)
{ {
@ -719,31 +719,30 @@ WRITE8_MEMBER(gb_rom_m161_device::write_bank)
READ8_MEMBER(gb_rom_mmm01_device::read_rom) READ8_MEMBER(gb_rom_mmm01_device::read_rom)
{ {
UINT16 romb = m_romb & ~m_romb_nwe; UINT16 romb = m_romb & ~m_romb_nwe;
UINT16 romb_base = m_romb & (0x1e0 | m_romb_nwe); UINT16 romb_base = m_romb & (0x1e0 | m_romb_nwe);
UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03); UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03);
// zero-adjust RA18..RA14 // zero-adjust RA18..RA14
romb = (romb ? romb : 0x01); romb = (romb ? romb : 0x01);
// if unmapped, force // if unmapped, force
romb = (m_map ? romb : 0x01); romb = (m_map ? romb : 0x01);
// RB 0 logic // RB 0 logic
if (!(offset & 0x4000)) if (!(offset & 0x4000))
romb = 0x00; romb = 0x00;
// combine with base // combine with base
romb |= romb_base; romb |= romb_base;
// multiplex with AA14..AA13 // multiplex with AA14..AA13
if (m_mux) if (m_mux)
romb = (romb & ~0x60) | ((ramb_masked & 0x03) << 5); romb = (romb & ~0x60) | ((ramb_masked & 0x03) << 5);
// if unmapped, force // if unmapped, force
if (!m_map) if (!m_map)
romb |= 0x1fe; romb |= 0x1fe;
return m_rom[rom_bank_map[romb] * 0x4000 + (offset & 0x3fff)]; return m_rom[rom_bank_map[romb] * 0x4000 + (offset & 0x3fff)];
} }
@ -751,7 +750,7 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_bank)
{ {
// the mapper only has data lines D6..D0 // the mapper only has data lines D6..D0
data &= 0x7f; data &= 0x7f;
// the mapper only uses inputs A15..A13 // the mapper only uses inputs A15..A13
switch (offset & 0xe000) switch (offset & 0xe000)
{ {
@ -765,7 +764,7 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_bank)
case 0x2000: // RA20..RA19 RA18..RA14 case 0x2000: // RA20..RA19 RA18..RA14
if (!m_map) if (!m_map)
m_romb = (m_romb & ~0x60) | (data & 0x60); m_romb = (m_romb & ~0x60) | (data & 0x60);
m_romb = (m_romb & (~0x1f | m_romb_nwe)) | (data & (0x1f & ~m_romb_nwe)); m_romb = (m_romb & (~0x1f | m_romb_nwe)) | (data & (0x1f & ~m_romb_nwe));
break; break;
case 0x4000: // Mode #WE, RA22..RA21, AA16..AA15, AA14..AA13 case 0x4000: // Mode #WE, RA22..RA21, AA16..AA15, AA14..AA13
@ -774,7 +773,7 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_bank)
m_romb = (m_romb & ~0x180) | ((data & 0x30) << 3); m_romb = (m_romb & ~0x180) | ((data & 0x30) << 3);
m_ramb = (m_ramb & ~0x0c) | (data & 0x0c); m_ramb = (m_ramb & ~0x0c) | (data & 0x0c);
} }
m_ramb = (m_ramb & (~0x03 | m_ramb_nwe)) | (data & (0x03 & ~m_ramb_nwe)); m_ramb = (m_ramb & (~0x03 | m_ramb_nwe)) | (data & (0x03 & ~m_ramb_nwe));
break; break;
case 0x6000: // Mux, RA18..RA15 #WE/Mask, ???, MBC1 Mode case 0x6000: // Mux, RA18..RA15 #WE/Mask, ???, MBC1 Mode
@ -783,7 +782,7 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_bank)
// m_romb_nwe is aligned to RA14, hence >> 1 instead of >> 2 // m_romb_nwe is aligned to RA14, hence >> 1 instead of >> 2
m_romb_nwe = (data & 0x3c) >> 1; m_romb_nwe = (data & 0x3c) >> 1;
} }
if (!m_mode_nwe) if (!m_mode_nwe)
m_mode = data & 0x01; m_mode = data & 0x01;
break; break;
@ -796,11 +795,11 @@ READ8_MEMBER(gb_rom_mmm01_device::read_ram)
{ {
UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03); UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03);
UINT8 ramb = ramb_masked; UINT8 ramb = ramb_masked;
// multiplex with RA20..RA19 // multiplex with RA20..RA19
if (m_mux) if (m_mux)
ramb = (ramb & ~0x03) | ((m_romb & 0x60) >> 5); ramb = (ramb & ~0x03) | ((m_romb & 0x60) >> 5);
if (!m_ram.empty() && m_ram_enable) if (!m_ram.empty() && m_ram_enable)
{ {
return m_ram[ram_bank_map[ramb] * 0x2000 + (offset & 0x1fff)]; return m_ram[ram_bank_map[ramb] * 0x2000 + (offset & 0x1fff)];
@ -813,11 +812,11 @@ WRITE8_MEMBER(gb_rom_mmm01_device::write_ram)
{ {
UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03); UINT8 ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03);
UINT8 ramb = ramb_masked; UINT8 ramb = ramb_masked;
// multiplex with RA20..RA19 // multiplex with RA20..RA19
if (m_mux) if (m_mux)
ramb = (ramb & ~0x03) | ((m_romb & 0x60) >> 5); ramb = (ramb & ~0x03) | ((m_romb & 0x60) >> 5);
if (!m_ram.empty() && m_ram_enable) if (!m_ram.empty() && m_ram_enable)
{ {
m_ram[ram_bank_map[ramb] * 0x2000 + (offset & 0x1fff)] = data; m_ram[ram_bank_map[ramb] * 0x2000 + (offset & 0x1fff)] = data;

View File

@ -195,7 +195,7 @@ public:
virtual DECLARE_WRITE8_MEMBER(write_bank) override; virtual DECLARE_WRITE8_MEMBER(write_bank) override;
virtual DECLARE_READ8_MEMBER(read_ram) override; virtual DECLARE_READ8_MEMBER(read_ram) override;
virtual DECLARE_WRITE8_MEMBER(write_ram) override; virtual DECLARE_WRITE8_MEMBER(write_ram) override;
UINT16 m_romb; UINT16 m_romb;
UINT8 m_romb_nwe; UINT8 m_romb_nwe;
UINT8 m_ramb; UINT8 m_ramb;

View File

@ -607,7 +607,7 @@ static const gba_chip_fix_item gba_chip_fix_rumble_list[] =
{ "KYGP" }, // Yoshi's Universal Gravitation (EUR) { "KYGP" }, // Yoshi's Universal Gravitation (EUR)
{ "KYGE" }, // Yoshi - Topsy-Turvy (USA) { "KYGE" }, // Yoshi - Topsy-Turvy (USA)
{ "KYGJ" }, // Yoshi no Banyuuinryoku (JPN) { "KYGJ" }, // Yoshi no Banyuuinryoku (JPN)
{ "KHPJ" } // Koro Koro Puzzle - Happy Panechu! (JPN) { "KHPJ" } // Koro Koro Puzzle - Happy Panechu! (JPN)
}; };

View File

@ -268,7 +268,7 @@ void gba_rom_3dmatrix_device::device_reset()
This is a preliminary implementation of the This is a preliminary implementation of the
General Purpose I/O Port embedded in the GBA PCBs General Purpose I/O Port embedded in the GBA PCBs
as described at : http://problemkaputt.de/gbatek.htm#gbacartioportgpio as described at : http://problemkaputt.de/gbatek.htm#gbacartioportgpio
Functions read_gpio/write_gpio only give the Functions read_gpio/write_gpio only give the
I/O interface while the actual on-cart devices I/O interface while the actual on-cart devices
are read and written through gpio_dev_read/gpio_dev_write are read and written through gpio_dev_read/gpio_dev_write
@ -400,7 +400,7 @@ void gba_rom_wariotws_device::gpio_dev_write(UINT16 data, int gpio_dirs)
if (data & 1) if (data & 1)
m_counter = 15; m_counter = 15;
m_last_val = data & 0x0b; m_last_val = data & 0x0b;
} }
} }
@ -586,19 +586,19 @@ WRITE32_MEMBER(gba_rom_eeprom64_device::write_ram)
/*------------------------------------------------- /*-------------------------------------------------
Carts with EEPROM + Tilt Sensor Carts with EEPROM + Tilt Sensor
Note about the calibration: this can seem a bit Note about the calibration: this can seem a bit
tricky at first, because the emulated screen tricky at first, because the emulated screen
does not turn as the GBA would... does not turn as the GBA would...
In order to properly calibrate the sensor, just In order to properly calibrate the sensor, just
keep pressed right for a few seconds when requested keep pressed right for a few seconds when requested
to calibrate right inclination (first calibration to calibrate right inclination (first calibration
screen in Yoshi Universal Gravitation) so to get the screen in Yoshi Universal Gravitation) so to get the
full right range; then keep pressed for left for a full right range; then keep pressed for left for a
few seconds when requested to calibrate left few seconds when requested to calibrate left
inclination (second calibration screen in Yoshi inclination (second calibration screen in Yoshi
Universal Gravitation) so to get the full left range Universal Gravitation) so to get the full left range
-------------------------------------------------*/ -------------------------------------------------*/
static INPUT_PORTS_START( yoshiug_tilt ) static INPUT_PORTS_START( yoshiug_tilt )
@ -700,14 +700,14 @@ void gba_rom_boktai_device::gpio_dev_write(UINT16 data, int gpio_dirs)
{ {
if (data & 2) if (data & 2)
m_counter = 0; m_counter = 0;
if ((data & 1) && !(m_last_val & 1)) if ((data & 1) && !(m_last_val & 1))
{ {
m_counter++; m_counter++;
if (m_counter == 0x100) if (m_counter == 0x100)
m_counter = 0; m_counter = 0;
} }
m_last_val = data & 7; m_last_val = data & 7;
} }
} }
@ -775,7 +775,7 @@ WRITE32_MEMBER(gba_rom_3dmatrix_device::write_mapper)
/*------------------------------------------------- /*-------------------------------------------------
Seiko S-3511 RTC implementation Seiko S-3511 RTC implementation
TODO: transform this into a separate device, using TODO: transform this into a separate device, using
also dirtc.cpp! also dirtc.cpp!
-------------------------------------------------*/ -------------------------------------------------*/
@ -789,7 +789,7 @@ gba_s3511_device::gba_s3511_device(running_machine &machine) :
m_command = 0; m_command = 0;
m_data_len = 1; m_data_len = 1;
m_data[0] = 0; m_data[0] = 0;
m_machine.save().save_item(m_phase, "GBA_RTC/m_phase"); m_machine.save().save_item(m_phase, "GBA_RTC/m_phase");
m_machine.save().save_item(m_data, "GBA_RTC/m_data"); m_machine.save().save_item(m_data, "GBA_RTC/m_data");
m_machine.save().save_item(m_last_val, "GBA_RTC/m_last_val"); m_machine.save().save_item(m_last_val, "GBA_RTC/m_last_val");
@ -808,7 +808,7 @@ void gba_s3511_device::update_time(int len)
{ {
system_time curtime; system_time curtime;
m_machine.current_datetime(curtime); m_machine.current_datetime(curtime);
if (len == 7) if (len == 7)
{ {
m_data[0] = convert_to_bcd(curtime.local_time.year); m_data[0] = convert_to_bcd(curtime.local_time.year);
@ -840,7 +840,7 @@ int gba_s3511_device::read_line()
if (m_bits == 8 * m_data_len) if (m_bits == 8 * m_data_len)
{ {
//for (int i = 0; i < m_data_len; i++) //for (int i = 0; i < m_data_len; i++)
// printf("RTC DATA OUT COMPLETE %X (reg %d) \n", m_data[i], i); // printf("RTC DATA OUT COMPLETE %X (reg %d) \n", m_data[i], i);
m_bits = 0; m_bits = 0;
m_phase = S3511_RTC_IDLE; m_phase = S3511_RTC_IDLE;
} }
@ -852,7 +852,7 @@ int gba_s3511_device::read_line()
void gba_s3511_device::write(UINT16 data, int gpio_dirs) void gba_s3511_device::write(UINT16 data, int gpio_dirs)
{ {
// printf("gpio_dev_write data %X\n", data); // printf("gpio_dev_write data %X\n", data);
if (m_phase == S3511_RTC_IDLE && (m_last_val & 5) == 1 && (data & 5) == 5) if (m_phase == S3511_RTC_IDLE && (m_last_val & 5) == 1 && (data & 5) == 5)
{ {
m_phase = S3511_RTC_COMMAND; m_phase = S3511_RTC_COMMAND;
@ -861,8 +861,8 @@ void gba_s3511_device::write(UINT16 data, int gpio_dirs)
} }
else else
{ {
// if (m_phase == 3) // if (m_phase == 3)
// printf("RTC command OK\n"); // printf("RTC command OK\n");
if (!(m_last_val & 1) && (data & 1)) if (!(m_last_val & 1) && (data & 1))
{ {
// bit transfer // bit transfer
@ -877,7 +877,7 @@ void gba_s3511_device::write(UINT16 data, int gpio_dirs)
if (m_bits == 8 * m_data_len) if (m_bits == 8 * m_data_len)
{ {
//for (int i = 0; i < m_data_len; i++) //for (int i = 0; i < m_data_len; i++)
// printf("RTC DATA IN COMPLETE %X (reg %d) \n", m_data[i], i); // printf("RTC DATA IN COMPLETE %X (reg %d) \n", m_data[i], i);
m_bits = 0; m_bits = 0;
m_phase = S3511_RTC_IDLE; m_phase = S3511_RTC_IDLE;
} }
@ -940,7 +940,7 @@ void gba_s3511_device::write(UINT16 data, int gpio_dirs)
/*------------------------------------------------- /*-------------------------------------------------
GBA EEPROM Device GBA EEPROM Device
TODO: can this sketchy EEPROM device be merged TODO: can this sketchy EEPROM device be merged
with the core implementation? with the core implementation?
-------------------------------------------------*/ -------------------------------------------------*/
@ -954,7 +954,7 @@ gba_eeprom_device::gba_eeprom_device(running_machine &machine, UINT8 *eeprom, UI
m_data = eeprom; m_data = eeprom;
m_data_size = size; m_data_size = size;
m_addr_bits = addr_bits; m_addr_bits = addr_bits;
m_machine.save().save_item(m_state, "GBA_EEPROM/m_state"); m_machine.save().save_item(m_state, "GBA_EEPROM/m_state");
m_machine.save().save_item(m_command, "GBA_EEPROM/m_command"); m_machine.save().save_item(m_command, "GBA_EEPROM/m_command");
m_machine.save().save_item(m_count, "GBA_EEPROM/m_count"); m_machine.save().save_item(m_count, "GBA_EEPROM/m_count");
@ -966,16 +966,16 @@ gba_eeprom_device::gba_eeprom_device(running_machine &machine, UINT8 *eeprom, UI
UINT32 gba_eeprom_device::read() UINT32 gba_eeprom_device::read()
{ {
UINT32 out; UINT32 out;
switch (m_state) switch (m_state)
{ {
case EEP_IDLE: case EEP_IDLE:
// printf("eeprom_r: @ %x, mask %08x (state %d) (PC=%x) = %d\n", offset, ~mem_mask, m_state, activecpu_get_pc(), 1); // printf("eeprom_r: @ %x, mask %08x (state %d) (PC=%x) = %d\n", offset, ~mem_mask, m_state, activecpu_get_pc(), 1);
return 0x00010001; // "ready" return 0x00010001; // "ready"
case EEP_READFIRST: case EEP_READFIRST:
m_count--; m_count--;
if (!m_count) if (!m_count)
{ {
m_count = 64; m_count = 64;
@ -996,19 +996,19 @@ UINT32 gba_eeprom_device::read()
m_addr++; m_addr++;
m_bits = 8; m_bits = 8;
} }
out = (m_eep_data & 0x80) ? 1 : 0; out = (m_eep_data & 0x80) ? 1 : 0;
out |= (out<<16); out |= (out<<16);
m_eep_data <<= 1; m_eep_data <<= 1;
m_bits--; m_bits--;
m_count--; m_count--;
if (!m_count) if (!m_count)
{ {
m_state = EEP_IDLE; m_state = EEP_IDLE;
} }
// printf("out = %08x\n", out); // printf("out = %08x\n", out);
// printf("eeprom_r: @ %x, mask %08x (state %d) (PC=%x) = %08x\n", offset, ~mem_mask, m_state, activecpu_get_pc(), out); // printf("eeprom_r: @ %x, mask %08x (state %d) (PC=%x) = %08x\n", offset, ~mem_mask, m_state, activecpu_get_pc(), out);
return out; return out;
@ -1026,7 +1026,7 @@ void gba_eeprom_device::write(UINT32 data)
if (data == 1) if (data == 1)
m_state++; m_state++;
break; break;
case EEP_COMMAND: case EEP_COMMAND:
if (data == 1) if (data == 1)
m_command = EEP_READFIRST; m_command = EEP_READFIRST;
@ -1036,7 +1036,7 @@ void gba_eeprom_device::write(UINT32 data)
m_count = m_addr_bits; m_count = m_addr_bits;
m_addr = 0; m_addr = 0;
break; break;
case EEP_ADDR: case EEP_ADDR:
m_addr <<= 1; m_addr <<= 1;
m_addr |= (data & 1); m_addr |= (data & 1);
@ -1055,7 +1055,7 @@ void gba_eeprom_device::write(UINT32 data)
} }
} }
break; break;
case EEP_AFTERADDR: case EEP_AFTERADDR:
m_state = m_command; m_state = m_command;
m_count = 64; m_count = 64;
@ -1064,32 +1064,31 @@ void gba_eeprom_device::write(UINT32 data)
if (m_state == EEP_READFIRST) if (m_state == EEP_READFIRST)
m_count = 4; m_count = 4;
break; break;
case EEP_WRITE: case EEP_WRITE:
m_eep_data <<= 1; m_eep_data <<= 1;
m_eep_data |= (data & 1); m_eep_data |= (data & 1);
m_bits--; m_bits--;
m_count--; m_count--;
if (m_bits == 0) if (m_bits == 0)
{ {
osd_printf_verbose("%08x: EEPROM: %02x to %x\n", machine().device("maincpu")->safe_pc(), m_eep_data, m_addr); osd_printf_verbose("%08x: EEPROM: %02x to %x\n", machine().device("maincpu")->safe_pc(), m_eep_data, m_addr);
if (m_addr >= m_data_size) if (m_addr >= m_data_size)
fatalerror("eeprom: invalid address (%x)\n", m_addr); fatalerror("eeprom: invalid address (%x)\n", m_addr);
m_data[m_addr] = m_eep_data; m_data[m_addr] = m_eep_data;
m_addr++; m_addr++;
m_eep_data = 0; m_eep_data = 0;
m_bits = 8; m_bits = 8;
} }
if (!m_count) if (!m_count)
m_state = EEP_AFTERWRITE; m_state = EEP_AFTERWRITE;
break; break;
case EEP_AFTERWRITE: case EEP_AFTERWRITE:
m_state = EEP_IDLE; m_state = EEP_IDLE;
break; break;
} }
} }

View File

@ -20,19 +20,19 @@ class gba_s3511_device
public: public:
gba_s3511_device(running_machine &machine); gba_s3511_device(running_machine &machine);
running_machine &machine() const { return m_machine; } running_machine &machine() const { return m_machine; }
void update_time(int len); void update_time(int len);
UINT8 convert_to_bcd(int val); UINT8 convert_to_bcd(int val);
int read_line(); int read_line();
void write(UINT16 data, int gpio_dirs); void write(UINT16 data, int gpio_dirs);
protected: protected:
int m_phase; int m_phase;
UINT8 m_last_val, m_bits, m_command; UINT8 m_last_val, m_bits, m_command;
int m_data_len; int m_data_len;
UINT8 m_data[7]; UINT8 m_data[7];
running_machine& m_machine; running_machine& m_machine;
}; };
@ -58,10 +58,10 @@ class gba_eeprom_device
public: public:
gba_eeprom_device(running_machine &machine, UINT8 *eeprom, UINT32 size, int addr_bits); gba_eeprom_device(running_machine &machine, UINT8 *eeprom, UINT32 size, int addr_bits);
running_machine &machine() const { return m_machine; } running_machine &machine() const { return m_machine; }
UINT32 read(); UINT32 read();
void write(UINT32 data); void write(UINT32 data);
protected: protected:
UINT8 *m_data; UINT8 *m_data;
UINT32 m_data_size; UINT32 m_data_size;
@ -72,7 +72,7 @@ protected:
int m_bits; int m_bits;
int m_addr_bits; int m_addr_bits;
UINT8 m_eep_data; UINT8 m_eep_data;
running_machine& m_machine; running_machine& m_machine;
}; };
@ -97,7 +97,7 @@ public:
virtual DECLARE_READ32_MEMBER(read_gpio) override; virtual DECLARE_READ32_MEMBER(read_gpio) override;
virtual DECLARE_WRITE32_MEMBER(write_gpio) override; virtual DECLARE_WRITE32_MEMBER(write_gpio) override;
virtual UINT16 gpio_dev_read(int gpio_dirs) { return 0; } virtual UINT16 gpio_dev_read(int gpio_dirs) { return 0; }
virtual void gpio_dev_write(UINT16 data, int gpio_dirs) {} virtual void gpio_dev_write(UINT16 data, int gpio_dirs) {}
@ -129,7 +129,7 @@ class gba_rom_drilldoz_device : public gba_rom_sram_device
public: public:
// construction/destruction // construction/destruction
gba_rom_drilldoz_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); gba_rom_drilldoz_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override; virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override;
}; };
@ -190,12 +190,12 @@ class gba_rom_flash_rtc_device : public gba_rom_flash_device
public: public:
// construction/destruction // construction/destruction
gba_rom_flash_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); gba_rom_flash_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual UINT16 gpio_dev_read(int gpio_dirs) override; virtual UINT16 gpio_dev_read(int gpio_dirs) override;
virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override; virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override;
private: private:
std::unique_ptr<gba_s3511_device> m_rtc; std::unique_ptr<gba_s3511_device> m_rtc;
}; };
@ -232,7 +232,7 @@ class gba_rom_flash1m_rtc_device : public gba_rom_flash1m_device
public: public:
// construction/destruction // construction/destruction
gba_rom_flash1m_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); gba_rom_flash1m_rtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual UINT16 gpio_dev_read(int gpio_dirs) override; virtual UINT16 gpio_dev_read(int gpio_dirs) override;
@ -271,16 +271,16 @@ class gba_rom_yoshiug_device : public gba_rom_eeprom_device
public: public:
// construction/destruction // construction/destruction
gba_rom_yoshiug_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); gba_rom_yoshiug_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
virtual ioport_constructor device_input_ports() const override; virtual ioport_constructor device_input_ports() const override;
// reading and writing // reading and writing
virtual DECLARE_READ32_MEMBER(read_tilt) override; virtual DECLARE_READ32_MEMBER(read_tilt) override;
virtual DECLARE_WRITE32_MEMBER(write_tilt) override; virtual DECLARE_WRITE32_MEMBER(write_tilt) override;
private: private:
int m_tilt_ready; int m_tilt_ready;
UINT16 m_xpos, m_ypos; UINT16 m_xpos, m_ypos;
@ -317,7 +317,7 @@ class gba_rom_boktai_device : public gba_rom_eeprom64_device
public: public:
// construction/destruction // construction/destruction
gba_rom_boktai_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); gba_rom_boktai_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
@ -325,7 +325,7 @@ public:
virtual UINT16 gpio_dev_read(int gpio_dirs) override; virtual UINT16 gpio_dev_read(int gpio_dirs) override;
virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override; virtual void gpio_dev_write(UINT16 data, int gpio_dirs) override;
private: private:
std::unique_ptr<gba_s3511_device> m_rtc; std::unique_ptr<gba_s3511_device> m_rtc;
required_ioport m_sensor; required_ioport m_sensor;

View File

@ -1814,12 +1814,12 @@ WRITE8_MEMBER( isa8_ec1841_0002_device::io_write )
m_p3df = data; m_p3df = data;
if (data & 1) { if (data & 1) {
m_isa->install_memory(0xb8000, 0xb9fff, m_isa->install_memory(0xb8000, 0xb9fff,
read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this), read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this),
write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) ); write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) );
if(m_vram_size == 0x4000) if(m_vram_size == 0x4000)
m_isa->install_memory(0xbc000, 0xbdfff, m_isa->install_memory(0xbc000, 0xbdfff,
read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this), read8_delegate( FUNC(isa8_ec1841_0002_device::char_ram_read), this),
write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) ); write8_delegate(FUNC(isa8_ec1841_0002_device::char_ram_write), this) );
} else { } else {
m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, "bank_cga", &m_vram[0]); m_isa->install_bank(0xb8000, 0xb8000 + MIN(0x8000,m_vram_size) - 1, "bank_cga", &m_vram[0]);
if(m_vram_size == 0x4000) if(m_vram_size == 0x4000)

View File

@ -83,7 +83,7 @@ public:
void add_macpds_card(device_macpds_card_interface *card); void add_macpds_card(device_macpds_card_interface *card);
void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, UINT32 mask=0xffffffff); void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, UINT32 mask=0xffffffff);
void install_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler, UINT32 mask=0xffffffff); void install_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler, UINT32 mask=0xffffffff);
void install_bank(offs_t start, offs_t end, const char *tag, UINT8 *data); void install_bank(offs_t start, offs_t end, const char *tag, UINT8 *data);
void set_irq_line(int line, int state); void set_irq_line(int line, int state);
protected: protected:

View File

@ -930,7 +930,7 @@ READ16_MEMBER(md_rom_cjmjclub_device::read)
{ {
if (offset == 0x400000/2) return 0x9000; if (offset == 0x400000/2) return 0x9000;
if (offset == 0x400002/2) return 0xd300; if (offset == 0x400002/2) return 0xd300;
// non-protection accesses // non-protection accesses
if (offset < 0x400000/2) if (offset < 0x400000/2)
return m_rom[MD_ADDR(offset)]; return m_rom[MD_ADDR(offset)];

View File

@ -270,7 +270,7 @@ class md_rom_cjmjclub_device : public md_std_rom_device
public: public:
// construction/destruction // construction/destruction
md_rom_cjmjclub_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); md_rom_cjmjclub_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// reading and writing // reading and writing
virtual DECLARE_READ16_MEMBER(read) override; virtual DECLARE_READ16_MEMBER(read) override;
}; };

View File

@ -1238,7 +1238,7 @@ READ8_MEMBER(nes_lh32_device::read_m)
READ8_MEMBER(nes_lh32_device::read_h) READ8_MEMBER(nes_lh32_device::read_h)
{ {
// LOG_MMC(("lh32 read_h, offset: %04x\n", offset)); // LOG_MMC(("lh32 read_h, offset: %04x\n", offset));
if (offset >= 0x4000 && offset < 0x6000) if (offset >= 0x4000 && offset < 0x6000)
return m_prgram[offset & 0x1fff]; return m_prgram[offset & 0x1fff];
@ -1294,7 +1294,7 @@ READ8_MEMBER(nes_lh10_device::read_m)
READ8_MEMBER(nes_lh10_device::read_h) READ8_MEMBER(nes_lh10_device::read_h)
{ {
// LOG_MMC(("lh10 read_h, offset: %04x\n", offset)); // LOG_MMC(("lh10 read_h, offset: %04x\n", offset));
if (offset >= 0x4000 && offset < 0x6000) if (offset >= 0x4000 && offset < 0x6000)
return m_prgram[offset & 0x1fff]; return m_prgram[offset & 0x1fff];
@ -1363,7 +1363,7 @@ READ8_MEMBER(nes_lh53_device::read_m)
READ8_MEMBER(nes_lh53_device::read_h) READ8_MEMBER(nes_lh53_device::read_h)
{ {
// LOG_MMC(("lh53 read_h, offset: %04x\n", offset)); // LOG_MMC(("lh53 read_h, offset: %04x\n", offset));
if (offset >= 0x3800 && offset < 0x5800) if (offset >= 0x3800 && offset < 0x5800)
return m_battery[offset & 0x1fff]; return m_battery[offset & 0x1fff];
@ -1431,7 +1431,7 @@ WRITE8_MEMBER(nes_2708_device::write_m)
READ8_MEMBER(nes_2708_device::read_h) READ8_MEMBER(nes_2708_device::read_h)
{ {
// LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset)); // LOG_MMC(("btl-2708 read_h, offset: %04x\n", offset));
if (offset >= 0x3800 && offset < 0x5800 && !m_reg[1]) if (offset >= 0x3800 && offset < 0x5800 && !m_reg[1])
return m_prgram[0x2000 + ((offset - 0x3800) & 0x1fff)]; // higher 8K of WRAM return m_prgram[0x2000 + ((offset - 0x3800) & 0x1fff)]; // higher 8K of WRAM
@ -1656,30 +1656,29 @@ READ8_MEMBER(nes_shuiguan_device::read_m)
/*------------------------------------------------- /*-------------------------------------------------
RT-01 RT-01
Games: Russian test cart Games: Russian test cart
The PRG EPROM has copy protected areas with The PRG EPROM has copy protected areas with
"weak bits", which is tested at some points (info "weak bits", which is tested at some points (info
from Cah4e3). from Cah4e3).
iNES: iNES:
In MESS: In MESS:
-------------------------------------------------*/ -------------------------------------------------*/
READ8_MEMBER(nes_rt01_device::read_h) READ8_MEMBER(nes_rt01_device::read_h)
{ {
// LOG_MMC(("rt01 read_h, offset: %04x\n", offset)); // LOG_MMC(("rt01 read_h, offset: %04x\n", offset));
if ((offset >= 0x4e80) && (offset < 0x4f00)) if ((offset >= 0x4e80) && (offset < 0x4f00))
return 0xf2 | (machine().rand() & 0x0d); return 0xf2 | (machine().rand() & 0x0d);
if ((offset >= 0x7e80) && (offset < 0x7f00)) if ((offset >= 0x7e80) && (offset < 0x7f00))
return 0xf2 | (machine().rand() & 0x0d); return 0xf2 | (machine().rand() & 0x0d);
return hi_access_rom(offset); return hi_access_rom(offset);
} }

View File

@ -460,11 +460,11 @@ class nes_rt01_device : public nes_nrom_device
public: public:
// construction/destruction // construction/destruction
nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); nes_rt01_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_READ8_MEMBER(read_h) override;
virtual void pcb_reset() override; virtual void pcb_reset() override;
}; };

View File

@ -252,7 +252,7 @@ void nes_ks7016_device::pcb_reset()
prg8_cd(0xe); prg8_cd(0xe);
prg8_ef(0xf); prg8_ef(0xf);
chr8(0, CHRRAM); chr8(0, CHRRAM);
m_reg = 4; m_reg = 4;
} }
@ -270,7 +270,7 @@ void nes_ks7037_device::pcb_reset()
prg8_cd(0); prg8_cd(0);
prg8_ef(0x1f); prg8_ef(0x1f);
chr8(0, CHRRAM); chr8(0, CHRRAM);
memset(m_reg, 0, sizeof(m_reg)); memset(m_reg, 0, sizeof(m_reg));
m_latch = 0; m_latch = 0;
} }
@ -637,15 +637,15 @@ WRITE8_MEMBER(nes_ks7031_device::write_h)
/*------------------------------------------------- /*-------------------------------------------------
Kaiser Board KS7016 Kaiser Board KS7016
Games: Exciting Basket FDS Conversion Games: Exciting Basket FDS Conversion
iNES: iNES:
In MESS: Unsupported. In MESS: Unsupported.
-------------------------------------------------*/ -------------------------------------------------*/
READ8_MEMBER(nes_ks7016_device::read_m) READ8_MEMBER(nes_ks7016_device::read_m)
@ -666,20 +666,20 @@ WRITE8_MEMBER(nes_ks7016_device::write_h)
/*------------------------------------------------- /*-------------------------------------------------
Kaiser Board KS7037 Kaiser Board KS7037
Games: Metroid (FDS conversion) Games: Metroid (FDS conversion)
This PCB maps PRG in 0x7000-0x7fff in a very This PCB maps PRG in 0x7000-0x7fff in a very
similar fashion to LH10 (see bootleg.cpp) similar fashion to LH10 (see bootleg.cpp)
but with WRAM split between 0x6000-0x6fff but with WRAM split between 0x6000-0x6fff
and 0xb000-0xbfff. and 0xb000-0xbfff.
iNES: iNES:
In MESS: Unsupported. In MESS: Unsupported.
-------------------------------------------------*/ -------------------------------------------------*/
void nes_ks7037_device::update_prg() void nes_ks7037_device::update_prg()
@ -696,7 +696,7 @@ void nes_ks7037_device::update_prg()
READ8_MEMBER(nes_ks7037_device::read_m) READ8_MEMBER(nes_ks7037_device::read_m)
{ {
// LOG_MMC(("ks7037 read_m, offset: %04x\n", offset)); // LOG_MMC(("ks7037 read_m, offset: %04x\n", offset));
if (offset < 0x1000) if (offset < 0x1000)
return m_prgram[offset & 0x0fff]; return m_prgram[offset & 0x0fff];
else else
@ -712,18 +712,18 @@ WRITE8_MEMBER(nes_ks7037_device::write_m)
READ8_MEMBER(nes_ks7037_device::read_h) READ8_MEMBER(nes_ks7037_device::read_h)
{ {
// LOG_MMC(("ks7037 read_h, offset: %04x\n", offset)); // LOG_MMC(("ks7037 read_h, offset: %04x\n", offset));
if (offset >= 0x3000 && offset < 0x4000) if (offset >= 0x3000 && offset < 0x4000)
return m_prgram[0x1000 + (offset & 0x0fff)]; return m_prgram[0x1000 + (offset & 0x0fff)];
return hi_access_rom(offset); return hi_access_rom(offset);
} }
WRITE8_MEMBER(nes_ks7037_device::write_h) WRITE8_MEMBER(nes_ks7037_device::write_h)
{ {
LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data)); LOG_MMC(("ks7037 write_h, offset: %04x, data: %02x\n", offset, data));
if (offset >= 0x3000 && offset < 0x4000) if (offset >= 0x3000 && offset < 0x4000)
m_prgram[0x1000 + (offset & 0x0fff)] = data; m_prgram[0x1000 + (offset & 0x0fff)] = data;
else else
@ -740,4 +740,3 @@ WRITE8_MEMBER(nes_ks7037_device::write_h)
} }
} }
} }

View File

@ -177,14 +177,14 @@ class nes_ks7016_device : public nes_nrom_device
public: public:
// construction/destruction // construction/destruction
nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); nes_ks7016_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_m) override;
virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override; virtual void pcb_reset() override;
private: private:
UINT8 m_reg; UINT8 m_reg;
}; };
@ -196,16 +196,16 @@ class nes_ks7037_device : public nes_nrom_device
public: public:
// construction/destruction // construction/destruction
nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); nes_ks7037_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual DECLARE_READ8_MEMBER(read_m) override; virtual DECLARE_READ8_MEMBER(read_m) override;
virtual DECLARE_READ8_MEMBER(read_h) override; virtual DECLARE_READ8_MEMBER(read_h) override;
virtual DECLARE_WRITE8_MEMBER(write_m) override; virtual DECLARE_WRITE8_MEMBER(write_m) override;
virtual DECLARE_WRITE8_MEMBER(write_h) override; virtual DECLARE_WRITE8_MEMBER(write_h) override;
virtual void pcb_reset() override; virtual void pcb_reset() override;
private: private:
void update_prg(); void update_prg();
UINT8 m_latch; UINT8 m_latch;

View File

@ -18,7 +18,7 @@ struct nbfilectx {
UINT32 curcmd; UINT32 curcmd;
UINT8 filename[128]; UINT8 filename[128];
UINT8 curdir[1024]; UINT8 curdir[1024];
osd::directory::ptr dirp; osd::directory::ptr dirp;
osd_file::ptr fd; osd_file::ptr fd;
UINT64 filelen; UINT64 filelen;
UINT32 bytecount; UINT32 bytecount;

View File

@ -65,16 +65,16 @@
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
#define MCFG_PORTFOLIO_EXPANSION_SLOT_IINT_CALLBACK(_write) \ #define MCFG_PORTFOLIO_EXPANSION_SLOT_IINT_CALLBACK(_write) \
devcb = &portfolio_expansion_slot_t::set_iint_wr_callback(*device, DEVCB_##_write); devcb = &portfolio_expansion_slot_t::set_iint_wr_callback(*device, DEVCB_##_write);
#define MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(_write) \ #define MCFG_PORTFOLIO_EXPANSION_SLOT_EINT_CALLBACK(_write) \
devcb = &portfolio_expansion_slot_t::set_eint_wr_callback(*device, DEVCB_##_write); devcb = &portfolio_expansion_slot_t::set_eint_wr_callback(*device, DEVCB_##_write);
#define MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(_write) \ #define MCFG_PORTFOLIO_EXPANSION_SLOT_NMIO_CALLBACK(_write) \
devcb = &portfolio_expansion_slot_t::set_nmio_wr_callback(*device, DEVCB_##_write); devcb = &portfolio_expansion_slot_t::set_nmio_wr_callback(*device, DEVCB_##_write);
#define MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(_write) \ #define MCFG_PORTFOLIO_EXPANSION_SLOT_WAKE_CALLBACK(_write) \
devcb = &portfolio_expansion_slot_t::set_wake_wr_callback(*device, DEVCB_##_write); devcb = &portfolio_expansion_slot_t::set_wake_wr_callback(*device, DEVCB_##_write);
@ -89,71 +89,71 @@ class portfolio_expansion_slot_t;
class device_portfolio_expansion_slot_interface : public device_slot_card_interface class device_portfolio_expansion_slot_interface : public device_slot_card_interface
{ {
public: public:
// construction/destruction // construction/destruction
device_portfolio_expansion_slot_interface(const machine_config &mconfig, device_t &device); device_portfolio_expansion_slot_interface(const machine_config &mconfig, device_t &device);
virtual ~device_portfolio_expansion_slot_interface() { } virtual ~device_portfolio_expansion_slot_interface() { }
virtual bool nmd1() { return 1; } virtual bool nmd1() { return 1; }
virtual bool pdet() { return 0; } virtual bool pdet() { return 0; }
virtual bool cdet() { return 1; } virtual bool cdet() { return 1; }
virtual UINT8 iack_r() { return 0xff; } virtual UINT8 iack_r() { return 0xff; }
virtual UINT8 eack_r() { return 0xff; } virtual UINT8 eack_r() { return 0xff; }
virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { return data; }; virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { return data; };
virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { }; virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { };
DECLARE_WRITE_LINE_MEMBER( iint_w ); DECLARE_WRITE_LINE_MEMBER( iint_w );
DECLARE_WRITE_LINE_MEMBER( eint_w ); DECLARE_WRITE_LINE_MEMBER( eint_w );
DECLARE_WRITE_LINE_MEMBER( nmio_w ); DECLARE_WRITE_LINE_MEMBER( nmio_w );
DECLARE_WRITE_LINE_MEMBER( wake_w ); DECLARE_WRITE_LINE_MEMBER( wake_w );
protected: protected:
portfolio_expansion_slot_t *m_slot; portfolio_expansion_slot_t *m_slot;
}; };
// ======================> portfolio_expansion_slot_t // ======================> portfolio_expansion_slot_t
class portfolio_expansion_slot_t : public device_t, class portfolio_expansion_slot_t : public device_t,
public device_slot_interface public device_slot_interface
{ {
public: public:
// construction/destruction // construction/destruction
portfolio_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); portfolio_expansion_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
virtual ~portfolio_expansion_slot_t() { } virtual ~portfolio_expansion_slot_t() { }
template<class _Object> static devcb_base &set_iint_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_iint.set_callback(object); } template<class _Object> static devcb_base &set_iint_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_iint.set_callback(object); }
template<class _Object> static devcb_base &set_eint_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_eint.set_callback(object); } template<class _Object> static devcb_base &set_eint_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_eint.set_callback(object); }
template<class _Object> static devcb_base &set_nmio_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_nmio.set_callback(object); } template<class _Object> static devcb_base &set_nmio_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_nmio.set_callback(object); }
template<class _Object> static devcb_base &set_wake_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_wake.set_callback(object); } template<class _Object> static devcb_base &set_wake_wr_callback(device_t &device, _Object object) { return downcast<portfolio_expansion_slot_t &>(device).m_write_wake.set_callback(object); }
// computer interface // computer interface
bool nmd1_r() { return (m_card != nullptr) ? m_card->nmd1() : 1; } bool nmd1_r() { return (m_card != nullptr) ? m_card->nmd1() : 1; }
bool pdet_r() { return (m_card != nullptr) ? m_card->pdet() : 0; } bool pdet_r() { return (m_card != nullptr) ? m_card->pdet() : 0; }
bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; } bool cdet_r() { return (m_card != nullptr) ? m_card->cdet() : 1; }
UINT8 iack_r() { return (m_card != nullptr) ? m_card->iack_r() : 0xff; }; UINT8 iack_r() { return (m_card != nullptr) ? m_card->iack_r() : 0xff; };
UINT8 eack_r() { return (m_card != nullptr) ? m_card->eack_r() : 0xff; }; UINT8 eack_r() { return (m_card != nullptr) ? m_card->eack_r() : 0xff; };
UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset, data, iom, bcom, ncc1) : data; } UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { return (m_card != nullptr) ? m_card->nrdi_r(space, offset, data, iom, bcom, ncc1) : data; }
void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(space, offset, data, iom, bcom, ncc1); } void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) { if (m_card != nullptr) m_card->nwri_w(space, offset, data, iom, bcom, ncc1); }
// peripheral interface // peripheral interface
WRITE_LINE_MEMBER( iint_w ) { m_write_iint(state); } WRITE_LINE_MEMBER( iint_w ) { m_write_iint(state); }
WRITE_LINE_MEMBER( eint_w ) { m_write_eint(state); } WRITE_LINE_MEMBER( eint_w ) { m_write_eint(state); }
WRITE_LINE_MEMBER( nmio_w ) { m_write_nmio(state); } WRITE_LINE_MEMBER( nmio_w ) { m_write_nmio(state); }
WRITE_LINE_MEMBER( wake_w ) { m_write_wake(state); } WRITE_LINE_MEMBER( wake_w ) { m_write_wake(state); }
protected: protected:
// device-level overrides // device-level overrides
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
devcb_write_line m_write_iint; devcb_write_line m_write_iint;
devcb_write_line m_write_eint; devcb_write_line m_write_eint;
devcb_write_line m_write_nmio; devcb_write_line m_write_nmio;
devcb_write_line m_write_wake; devcb_write_line m_write_wake;
device_portfolio_expansion_slot_interface *m_card; device_portfolio_expansion_slot_interface *m_card;
}; };

View File

@ -25,7 +25,7 @@
// ======================> hpc101_t // ======================> hpc101_t
class hpc101_t : public device_t, class hpc101_t : public device_t,
public device_portfolio_expansion_slot_interface public device_portfolio_expansion_slot_interface
{ {
public: public:
// construction/destruction // construction/destruction
@ -42,8 +42,8 @@ protected:
// device_portfolio_expansion_slot_interface overrides // device_portfolio_expansion_slot_interface overrides
bool pdet() override { return 1; } bool pdet() override { return 1; }
virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override; virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override;
virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override; virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override;
private: private:
required_device<i8255_device> m_ppi; required_device<i8255_device> m_ppi;

View File

@ -25,7 +25,7 @@
// ======================> hpc102_t // ======================> hpc102_t
class hpc102_t : public device_t, class hpc102_t : public device_t,
public device_portfolio_expansion_slot_interface public device_portfolio_expansion_slot_interface
{ {
public: public:
// construction/destruction // construction/destruction
@ -42,10 +42,10 @@ protected:
// device_portfolio_expansion_slot_interface overrides // device_portfolio_expansion_slot_interface overrides
bool pdet() override { return 1; } bool pdet() override { return 1; }
virtual UINT8 eack_r() override; virtual UINT8 eack_r() override;
virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override; virtual UINT8 nrdi_r(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override;
virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override; virtual void nwri_w(address_space &space, offs_t offset, UINT8 data, bool iom, bool bcom, bool ncc1) override;
private: private:
required_device<ins8250_device> m_uart; required_device<ins8250_device> m_uart;
@ -63,4 +63,4 @@ extern const device_type HPC102;
/* /*
*/ */

View File

@ -74,7 +74,7 @@ READ8_MEMBER(sega_fm_unit_device::peripheral_r)
return m_audio_control & 0x01; return m_audio_control & 0x01;
} }
// will not be called for other offsets. // will not be called for other offsets.
return 0xff; return 0xff;
} }
//------------------------------------------------- //-------------------------------------------------
@ -116,4 +116,3 @@ bool sega_fm_unit_device::is_writeable(UINT8 offset)
{ {
return (offset <= 2) ? true : false; return (offset <= 2) ? true : false;
} }

View File

@ -334,4 +334,3 @@ WRITE8_MEMBER( sega_sk1100_device::ppi_pc_w )
/* TODO printer */ /* TODO printer */
} }

View File

@ -91,7 +91,7 @@ CPU_DISASSEMBLE( asap )
sprintf(buffer, "mov%s %s,%s", setcond[cond], reg[rsrc1], reg[rdst]); sprintf(buffer, "mov%s %s,%s", setcond[cond], reg[rsrc1], reg[rdst]);
else else
sprintf(buffer, "add%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); sprintf(buffer, "add%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]);
break; break;
case 0x09: sprintf(buffer, "sub%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break; case 0x09: sprintf(buffer, "sub%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break;
case 0x0a: sprintf(buffer, "addc%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break; case 0x0a: sprintf(buffer, "addc%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break;
case 0x0b: sprintf(buffer, "subc%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break; case 0x0b: sprintf(buffer, "subc%s %s,%s,%s", setcond[cond], reg[rsrc1], src2(op,0), reg[rdst]); break;

View File

@ -2915,7 +2915,7 @@ READ8_MEMBER( avr8_device::regs_r )
default: default:
printf("[%08X] AVR8: Unknown Register Read: 0x%03X\n", m_shifted_pc, offset); printf("[%08X] AVR8: Unknown Register Read: 0x%03X\n", m_shifted_pc, offset);
// machine().debug_break(); // machine().debug_break();
return 0; return 0;
} }
} }

View File

@ -175,7 +175,6 @@
// This is a trick to make it build on Android where the ARM SDK declares ::REG_Rn // This is a trick to make it build on Android where the ARM SDK declares ::REG_Rn
namespace drc { namespace drc {
using namespace uml; using namespace uml;
using namespace x64emit; using namespace x64emit;

View File

@ -22,7 +22,6 @@
namespace drc { namespace drc {
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************

View File

@ -92,7 +92,7 @@ vbl_zpg
TMP2 = read_pc(); TMP2 = read_pc();
A = io->read_byte(0); A = io->read_byte(0);
//if(DECO16_VERBOSE) //if(DECO16_VERBOSE)
// logerror("%s: VBL %02x (%04x)\n", tag(), NPC, TMP2); // logerror("%s: VBL %02x (%04x)\n", tag(), NPC, TMP2);
prefetch(); prefetch();
# exceptions # exceptions

View File

@ -6,14 +6,14 @@
static const char *regname[128] = static const char *regname[128] =
{ {
"MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7", "MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7",
"AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7",
"EB", "EBU", "EBL", "EO", "SP", "ST", "MOD", "LRPC", "EB", "EBU", "EBL", "EO", "SP", "ST", "MOD", "LRPC",
"AR0", "AR1", "AR2", "AR3", "AR4", "AR5", "AR6", "AR7", "AR0", "AR1", "AR2", "AR3", "AR4", "AR5", "AR6", "AR7",
"MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7", "MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7",
"AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7",
"PR", "FI", "FO0", "FO1", "PDR", "DDR", "PRP", "PWP", "PR", "FI", "FO0", "FO1", "PDR", "DDR", "PRP", "PWP",
"???", "???", "???", "???", "???", "???", "???", "???" "???", "???", "???", "???", "???", "???", "???", "???"
}; };
static const char *db_mnemonic[64] = static const char *db_mnemonic[64] =
@ -69,22 +69,22 @@ static const char *mi1_field[16] =
static const char *mi2_field[32] = static const char *mi2_field[32] =
{ "MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7", "MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7", { "MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7", "MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7",
"PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "-1.0E+0", "0.0E+0", "0.5E+0", "1.0E+0", "1.5E+0", "2.0E+0", "3.0E+0", "5.0E+0" }; "PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "-1.0E+0", "0.0E+0", "0.5E+0", "1.0E+0", "1.5E+0", "2.0E+0", "3.0E+0", "5.0E+0" };
static const char *mo_field[32] = static const char *mo_field[32] =
{ "MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7", "MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7", { "MA0", "MA1", "MA2", "MA3", "MA4", "MA5", "MA6", "MA7", "MB0", "MB1", "MB2", "MB3", "MB4", "MB5", "MB6", "MB7",
"AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7" }; "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7" };
static const char *ai1_field[16] = static const char *ai1_field[16] =
{ "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7" }; { "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7" };
static const char *ai2_field[32] = static const char *ai2_field[32] =
{ "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7", { "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7",
"PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "0", "1", "-1", "???", "???", "???", "???", "???" }; "PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "0", "1", "-1", "???", "???", "???", "???", "???" };
static const char *ai2f_field[32] = static const char *ai2f_field[32] =
{ "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7", { "AA0", "AA1", "AA2", "AA3", "AA4", "AA5", "AA6", "AA7", "AB0", "AB1", "AB2", "AB3", "AB4", "AB5", "AB6", "AB7",
"PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "-1.0E+0", "0.0E+0", "0.5E+0", "1.0E+0", "1.5E+0", "2.0E+0", "3.0E+0", "5.0E+0" }; "PR", "PR++", "PR--", "PR#0", "???", "???", "???", "???", "-1.0E+0", "0.0E+0", "0.5E+0", "1.0E+0", "1.5E+0", "2.0E+0", "3.0E+0", "5.0E+0" };
static char* get_ea(int md, int arx, int ary, int disp) static char* get_ea(int md, int arx, int ary, int disp)
{ {
@ -196,7 +196,7 @@ static char* dasm_alu_mul(UINT64 opcode, bool twoop)
break; break;
} }
} }
// multiplication // multiplication
if (twoop) if (twoop)
{ {
@ -211,7 +211,7 @@ static char* dasm_alu_mul(UINT64 opcode, bool twoop)
else else
{ {
if (ma == 0) if (ma == 0)
{ {
if (opcode & ((UINT64)(1) << 56)) if (opcode & ((UINT64)(1) << 56))
p += sprintf(p, "FMUL %s, %s, %s", mi1_field[i1], mi2_field[i2], mo_field[o]); p += sprintf(p, "FMUL %s, %s, %s", mi1_field[i1], mi2_field[i2], mo_field[o]);
else else
@ -296,12 +296,12 @@ static char* dasm_control(UINT32 pc, UINT64 opcode)
p += sprintf(p, "DRET"); p += sprintf(p, "DRET");
break; break;
case 0x10: // DBcc case 0x10: // DBcc
case 0x11: // DBNcc case 0x11: // DBNcc
case 0x18: // DCcc case 0x18: // DCcc
case 0x19: // DCNcc case 0x19: // DCNcc
case 0x1a: // DCALL case 0x1a: // DCALL
case 0x12: // DJMP case 0x12: // DJMP
{ {
if (cop == 0x10) if (cop == 0x10)
p += sprintf(p, "%s ", db_mnemonic[ef1]); p += sprintf(p, "%s ", db_mnemonic[ef1]);
@ -798,25 +798,25 @@ static unsigned dasm_mb86235(char *buffer, UINT32 pc, UINT64 opcode)
switch ((opcode >> 61) & 7) switch ((opcode >> 61) & 7)
{ {
case 0: // ALU / MUL / double transfer (type 1) case 0: // ALU / MUL / double transfer (type 1)
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_double_xfer1(opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_double_xfer1(opcode));
break; break;
case 1: // ALU / MYL / transfer (type 1) case 1: // ALU / MYL / transfer (type 1)
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_xfer1(opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_xfer1(opcode));
break; break;
case 2: // ALU / MUL / control case 2: // ALU / MUL / control
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_control(pc, opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, true), dasm_control(pc, opcode));
break; break;
case 4: // ALU or MUL / double transfer (type 2) case 4: // ALU or MUL / double transfer (type 2)
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_double_xfer2(opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_double_xfer2(opcode));
break; break;
case 5: // ALU or MUL / transfer (type 2) case 5: // ALU or MUL / transfer (type 2)
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_xfer2(opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_xfer2(opcode));
break; break;
case 6: // ALU or MUL / control case 6: // ALU or MUL / control
p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_control(pc, opcode)); p += sprintf(p, "%s : %s", dasm_alu_mul(opcode, false), dasm_control(pc, opcode));
break; break;
case 7: // transfer (type 3) case 7: // transfer (type 3)
p += sprintf(p, "%s", dasm_xfer3(opcode)); p += sprintf(p, "%s", dasm_xfer3(opcode));
break; break;

View File

@ -31,7 +31,7 @@ enum
#define MCFG_V25_PORT_P1_READ_CB(_devcb) \ #define MCFG_V25_PORT_P1_READ_CB(_devcb) \
devcb = &v25_common_device::set_p1_in_cb(*device, DEVCB_##_devcb); devcb = &v25_common_device::set_p1_in_cb(*device, DEVCB_##_devcb);
#define MCFG_V25_PORT_P2_READ_CB(_devcb) \ #define MCFG_V25_PORT_P2_READ_CB(_devcb) \
devcb = &v25_common_device::set_p2_in_cb(*device, DEVCB_##_devcb); devcb = &v25_common_device::set_p2_in_cb(*device, DEVCB_##_devcb);
@ -53,7 +53,7 @@ public:
// static configuration helpers // static configuration helpers
static void set_decryption_table(device_t &device, const UINT8 *decryption_table) { downcast<v25_common_device &>(device).m_v25v35_decryptiontable = decryption_table; } static void set_decryption_table(device_t &device, const UINT8 *decryption_table) { downcast<v25_common_device &>(device).m_v25v35_decryptiontable = decryption_table; }
template<class _Object> static devcb_base & set_pt_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_pt_in.set_callback(object); } template<class _Object> static devcb_base & set_pt_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_pt_in.set_callback(object); }
template<class _Object> static devcb_base & set_p0_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p0_in.set_callback(object); } template<class _Object> static devcb_base & set_p0_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p0_in.set_callback(object); }
template<class _Object> static devcb_base & set_p1_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p1_in.set_callback(object); } template<class _Object> static devcb_base & set_p1_in_cb(device_t &device, _Object object) { return downcast<v25_common_device &>(device).m_p1_in.set_callback(object); }

View File

@ -1,7 +1,7 @@
// license:GPL-2.0+ // license:GPL-2.0+
// copyright-holders:Felipe Sanches // copyright-holders:Felipe Sanches
/* /*
CPU emulation for Patinho Feio, the first computer designed and manufactured in Brazil CPU emulation for Patinho Feio, the first computer designed and manufactured in Brazil
*/ */
#include "emu.h" #include "emu.h"
@ -91,11 +91,11 @@ void patinho_feio_cpu_device::device_start()
//TODO: implement handling of these special purpose registers //TODO: implement handling of these special purpose registers
// which are also mapped to the first few main memory positions: // which are also mapped to the first few main memory positions:
// //
// ERI: "Endereço de Retorno de Interrupção" // ERI: "Endereco de Retorno de Interrupcao"
// "Interrupt Return Address" // "Interrupt Return Address"
// stored at addresses 002 and 003 // stored at addresses 002 and 003
// //
// ETI: "início de uma rotina de tratamento de interrupção (se houver)" // ETI: "inicio de uma rotina de tratamento de interrupcao (se houver)"
// "start of an interrupt service routine (if any)" // "start of an interrupt service routine (if any)"
// stored at address 004 (and 005 as well?) // stored at address 004 (and 005 as well?)
// //
@ -333,7 +333,7 @@ void patinho_feio_cpu_device::execute_instruction()
case 0x90: case 0x90:
//ST 0 = "Se T=0, Pula" //ST 0 = "Se T=0, Pula"
// If T is zero, skip the next instruction // If T is zero, skip the next instruction
if ((FLAGS & T) == 0) if ((FLAGS & T) == 0)
INCREMENT_PC_4K; //skip INCREMENT_PC_4K; //skip
return; return;
case 0x91: case 0x91:
@ -348,7 +348,7 @@ void patinho_feio_cpu_device::execute_instruction()
case 0x92: case 0x92:
//ST 1 = "Se T=1, Pula" //ST 1 = "Se T=1, Pula"
// If T is one, skip the next instruction // If T is one, skip the next instruction
if ((FLAGS & T) == 1) if ((FLAGS & T) == 1)
INCREMENT_PC_4K; //skip INCREMENT_PC_4K; //skip
return; return;
case 0x93: case 0x93:
@ -363,7 +363,7 @@ void patinho_feio_cpu_device::execute_instruction()
case 0x94: case 0x94:
//SV 0 = "Se V=0, Pula" //SV 0 = "Se V=0, Pula"
// If V is zero, skip the next instruction // If V is zero, skip the next instruction
if ((FLAGS & V) == 0) if ((FLAGS & V) == 0)
INCREMENT_PC_4K; //skip INCREMENT_PC_4K; //skip
return; return;
case 0x95: case 0x95:
@ -378,7 +378,7 @@ void patinho_feio_cpu_device::execute_instruction()
case 0x96: case 0x96:
//SV 1 = "Se V=1, Pula" //SV 1 = "Se V=1, Pula"
// If V is one, skip the next instruction // If V is one, skip the next instruction
if ((FLAGS & V) == 1) if ((FLAGS & V) == 1)
INCREMENT_PC_4K; //skip INCREMENT_PC_4K; //skip
return; return;
case 0x97: case 0x97:
@ -391,17 +391,17 @@ void patinho_feio_cpu_device::execute_instruction()
} }
return; return;
case 0x98: case 0x98:
//PUL="Pula para /002 a limpa estado de interrupção" //PUL="Pula para /002 a limpa estado de interrupcao"
// Jump to address /002 and disables interrupts // Jump to address /002 and disables interrupts
PC = 0x002; PC = 0x002;
m_interrupts_enabled = false; m_interrupts_enabled = false;
return; return;
case 0x99: case 0x99:
//TRE="Troca conteúdos de ACC e EXT" //TRE="Troca conteudos de ACC e EXT"
// Exchange the value of the accumulator with the ACC extension register // Exchange the value of the accumulator with the ACC extension register
value = ACC; value = ACC;
ACC = READ_ACC_EXTENSION_REG(); ACC = READ_ACC_EXTENSION_REG();
WRITE_ACC_EXTENSION_REG(value); WRITE_ACC_EXTENSION_REG(value);
return; return;
case 0x9A: case 0x9A:
//INIB="Inibe" //INIB="Inibe"
@ -621,7 +621,7 @@ void patinho_feio_cpu_device::execute_instruction()
{ {
case 0: case 0:
// FNC /n0: Desliga flip-flop PERMITE/IMPEDE para // FNC /n0: Desliga flip-flop PERMITE/IMPEDE para
// o dispositivo n (isto é, impede inter- // o dispositivo n (isto e, impede inter-
// -rupcao do dispositivo n). // -rupcao do dispositivo n).
// //
// Turns off the interrupt ENABLE/DISABLE // Turns off the interrupt ENABLE/DISABLE
@ -654,7 +654,7 @@ void patinho_feio_cpu_device::execute_instruction()
break; break;
case 5: case 5:
// FNC /n5: Liga flip-flop PERMITE/IMPEDE para o // FNC /n5: Liga flip-flop PERMITE/IMPEDE para o
// dispositivo n (isto é, permite inter- // dispositivo n (isto e, permite inter-
// -rupcao do dispositivo n). // -rupcao do dispositivo n).
// //
// Turns on the interrupt ENABLE/DISABLE // Turns on the interrupt ENABLE/DISABLE
@ -681,7 +681,7 @@ void patinho_feio_cpu_device::execute_instruction()
m_iodev_control[channel] = NO_REQUEST; m_iodev_control[channel] = NO_REQUEST;
break; break;
case 8: case 8:
// FNC /n8: Só funciona na leitora de fita, ca- // FNC /n8: So funciona na leitora de fita, ca-
// nal /E. Ignora todos os "feed-fra- // nal /E. Ignora todos os "feed-fra-
// -mes" ("bytes" nulos) da fita, ate' a // -mes" ("bytes" nulos) da fita, ate' a
// proxima perfuracao (1o "byte" nao // proxima perfuracao (1o "byte" nao
@ -695,7 +695,7 @@ void patinho_feio_cpu_device::execute_instruction()
//TODO: Implement-me! //TODO: Implement-me!
} else { } else {
printf("Function 8 of the /FNC instruction can only be used with"\ printf("Function 8 of the /FNC instruction can only be used with"\
"the papertape reader device at channel /E.\n"); "the papertape reader device at channel /E.\n");
} }
break; break;
default: default:
@ -705,7 +705,7 @@ void patinho_feio_cpu_device::execute_instruction()
case 0x20: case 0x20:
//SAL="Salta" //SAL="Salta"
// Skips a couple bytes if a condition is met // Skips a couple bytes if a condition is met
skip = false; skip = false;
switch(function) switch(function)
{ {
case 1: case 1:

View File

@ -35,18 +35,18 @@ enum
#define REQUEST true #define REQUEST true
#define NO_REQUEST false #define NO_REQUEST false
#define BUTTON_NORMAL (1 << 0) /* normal CPU execution */ #define BUTTON_NORMAL (1 << 0) /* normal CPU execution */
#define BUTTON_CICLO_UNICO (1 << 1) /* single-cycle step */ #define BUTTON_CICLO_UNICO (1 << 1) /* single-cycle step */
#define BUTTON_INSTRUCAO_UNICA (1 << 2) /* single-instruction step */ #define BUTTON_INSTRUCAO_UNICA (1 << 2) /* single-instruction step */
#define BUTTON_ENDERECAMENTO (1 << 3) /* addressing action */ #define BUTTON_ENDERECAMENTO (1 << 3) /* addressing action */
#define BUTTON_ARMAZENAMENTO (1 << 4) /* storage action */ #define BUTTON_ARMAZENAMENTO (1 << 4) /* storage action */
#define BUTTON_EXPOSICAO (1 << 5) /* memory viewing action */ #define BUTTON_EXPOSICAO (1 << 5) /* memory viewing action */
#define BUTTON_ESPERA (1 << 6) /* wait */ #define BUTTON_ESPERA (1 << 6) /* wait */
#define BUTTON_INTERRUPCAO (1 << 7) /* interrupt */ #define BUTTON_INTERRUPCAO (1 << 7) /* interrupt */
#define BUTTON_PARTIDA (1 << 8) /* startup */ #define BUTTON_PARTIDA (1 << 8) /* startup */
#define BUTTON_PREPARACAO (1 << 9) /* reset */ #define BUTTON_PREPARACAO (1 << 9) /* reset */
#define BUTTON_TIPO_DE_ENDERECAMENTO (1 << 10) /* Addressing mode (0: Fixed / 1: Sequential) */ #define BUTTON_TIPO_DE_ENDERECAMENTO (1 << 10) /* Addressing mode (0: Fixed / 1: Sequential) */
#define BUTTON_PROTECAO_DE_MEMORIA (1 << 11) /* Memory protection (in the address range 0xF80-0xFFF (1: write-only / 0: read-write) */ #define BUTTON_PROTECAO_DE_MEMORIA (1 << 11) /* Memory protection (in the address range 0xF80-0xFFF (1: write-only / 0: read-write) */
class patinho_feio_cpu_device : public cpu_device { class patinho_feio_cpu_device : public cpu_device {
public: public:
@ -76,14 +76,14 @@ protected:
/* processor registers */ /* processor registers */
unsigned char m_acc; /* accumulator (8 bits) */ unsigned char m_acc; /* accumulator (8 bits) */
unsigned int m_pc; /* program counter (12 bits) unsigned int m_pc; /* program counter (12 bits)
* Actual register name is CI, which * Actual register name is CI, which
* stands for "Contador de Instrucao" * stands for "Contador de Instrucao"
* or "instructions counter". * or "instructions counter".
*/ */
unsigned int m_rc; /* RC = "Registrador de Chaves" (Keys Register) unsigned int m_rc; /* RC = "Registrador de Chaves" (Keys Register)
* It represents the 12 bits of input data * It represents the 12 bits of input data
* from toggle switches in the computer panel * from toggle switches in the computer panel
*/ */
unsigned char m_idx; /* IDX = Index Register */ unsigned char m_idx; /* IDX = Index Register */
unsigned char m_ext; /* EXT = Accumulator Extension Register */ unsigned char m_ext; /* EXT = Accumulator Extension Register */

View File

@ -11,7 +11,7 @@
#include "sharcfe.h" #include "sharcfe.h"
#define DISABLE_FAST_REGISTERS 1 #define DISABLE_FAST_REGISTERS 1
@ -336,7 +336,7 @@ void adsp21062_device::external_dma_write(UINT32 address, UINT64 data)
void adsp21062_device::device_start() void adsp21062_device::device_start()
{ {
int saveindex; int saveindex;
m_core = (sharc_internal_state *)m_cache.alloc_near(sizeof(sharc_internal_state)); m_core = (sharc_internal_state *)m_cache.alloc_near(sizeof(sharc_internal_state));
memset(m_core, 0, sizeof(sharc_internal_state)); memset(m_core, 0, sizeof(sharc_internal_state));
@ -356,7 +356,7 @@ void adsp21062_device::device_start()
// add UML symbols // add UML symbols
m_drcuml->symbol_add(&m_core->pc, sizeof(m_core->pc), "pc"); m_drcuml->symbol_add(&m_core->pc, sizeof(m_core->pc), "pc");
m_drcuml->symbol_add(&m_core->icount, sizeof(m_core->icount), "icount"); m_drcuml->symbol_add(&m_core->icount, sizeof(m_core->icount), "icount");
for (int i=0; i < 16; i++) for (int i=0; i < 16; i++)
{ {
char buf[10]; char buf[10];
@ -412,7 +412,7 @@ void adsp21062_device::device_start()
m_drcuml->symbol_add(&m_core->astat_drc.sz, sizeof(m_core->astat_drc.sz), "astat_sz"); m_drcuml->symbol_add(&m_core->astat_drc.sz, sizeof(m_core->astat_drc.sz), "astat_sz");
m_drcuml->symbol_add(&m_core->astat_drc.sv, sizeof(m_core->astat_drc.sv), "astat_sv"); m_drcuml->symbol_add(&m_core->astat_drc.sv, sizeof(m_core->astat_drc.sv), "astat_sv");
m_drcuml->symbol_add(&m_core->astat_drc.ss, sizeof(m_core->astat_drc.ss), "astat_ss"); m_drcuml->symbol_add(&m_core->astat_drc.ss, sizeof(m_core->astat_drc.ss), "astat_ss");
m_drcuml->symbol_add(&m_core->arg0, sizeof(m_core->arg0), "arg0"); m_drcuml->symbol_add(&m_core->arg0, sizeof(m_core->arg0), "arg0");
m_drcuml->symbol_add(&m_core->arg1, sizeof(m_core->arg1), "arg1"); m_drcuml->symbol_add(&m_core->arg1, sizeof(m_core->arg1), "arg1");
m_drcuml->symbol_add(&m_core->arg2, sizeof(m_core->arg2), "arg2"); m_drcuml->symbol_add(&m_core->arg2, sizeof(m_core->arg2), "arg2");

View File

@ -111,25 +111,25 @@ struct SHARC_DMA_OP
#define MODE2_CAFRZ 0x80000 /* Cache freeze */ #define MODE2_CAFRZ 0x80000 /* Cache freeze */
#define SIGN_EXTEND6(x) (((x) & 0x20) ? (0xffffffc0 | (x)) : (x)) #define SIGN_EXTEND6(x) (((x) & 0x20) ? (0xffffffc0 | (x)) : (x))
#define SIGN_EXTEND24(x) (((x) & 0x800000) ? (0xff000000 | (x)) : (x)) #define SIGN_EXTEND24(x) (((x) & 0x800000) ? (0xff000000 | (x)) : (x))
#define MAKE_EXTRACT_MASK(start_bit, length) ((0xffffffff << start_bit) & (((UINT32)0xffffffff) >> (32 - (start_bit + length)))) #define MAKE_EXTRACT_MASK(start_bit, length) ((0xffffffff << start_bit) & (((UINT32)0xffffffff) >> (32 - (start_bit + length))))
#define OP_USERFLAG_COUNTER_LOOP 0x00000001 #define OP_USERFLAG_COUNTER_LOOP 0x00000001
#define OP_USERFLAG_COND_LOOP 0x00000002 #define OP_USERFLAG_COND_LOOP 0x00000002
#define OP_USERFLAG_COND_FIELD 0x000003fc #define OP_USERFLAG_COND_FIELD 0x000003fc
#define OP_USERFLAG_COND_FIELD_SHIFT 2 #define OP_USERFLAG_COND_FIELD_SHIFT 2
#define OP_USERFLAG_ASTAT_DELAY_COPY_AZ 0x00001000 #define OP_USERFLAG_ASTAT_DELAY_COPY_AZ 0x00001000
#define OP_USERFLAG_ASTAT_DELAY_COPY_AN 0x00002000 #define OP_USERFLAG_ASTAT_DELAY_COPY_AN 0x00002000
#define OP_USERFLAG_ASTAT_DELAY_COPY_AC 0x00004000 #define OP_USERFLAG_ASTAT_DELAY_COPY_AC 0x00004000
#define OP_USERFLAG_ASTAT_DELAY_COPY_AV 0x00008000 #define OP_USERFLAG_ASTAT_DELAY_COPY_AV 0x00008000
#define OP_USERFLAG_ASTAT_DELAY_COPY_MV 0x00010000 #define OP_USERFLAG_ASTAT_DELAY_COPY_MV 0x00010000
#define OP_USERFLAG_ASTAT_DELAY_COPY_MN 0x00020000 #define OP_USERFLAG_ASTAT_DELAY_COPY_MN 0x00020000
#define OP_USERFLAG_ASTAT_DELAY_COPY_SV 0x00040000 #define OP_USERFLAG_ASTAT_DELAY_COPY_SV 0x00040000
#define OP_USERFLAG_ASTAT_DELAY_COPY_SZ 0x00080000 #define OP_USERFLAG_ASTAT_DELAY_COPY_SZ 0x00080000
#define OP_USERFLAG_ASTAT_DELAY_COPY_BTF 0x00100000 #define OP_USERFLAG_ASTAT_DELAY_COPY_BTF 0x00100000
#define OP_USERFLAG_ASTAT_DELAY_COPY 0x001ff000 #define OP_USERFLAG_ASTAT_DELAY_COPY 0x001ff000
#define OP_USERFLAG_CALL 0x10000000 #define OP_USERFLAG_CALL 0x10000000
#define MCFG_SHARC_BOOT_MODE(boot_mode) \ #define MCFG_SHARC_BOOT_MODE(boot_mode) \
@ -439,7 +439,7 @@ private:
uml::code_handle *m_pop_loop; uml::code_handle *m_pop_loop;
uml::code_handle *m_push_status; uml::code_handle *m_push_status;
uml::code_handle *m_pop_status; uml::code_handle *m_pop_status;
uml::code_handle *m_exception[EXCEPTION_COUNT]; // exception handlers uml::code_handle *m_exception[EXCEPTION_COUNT]; // exception handlers
uml::code_handle *m_swap_dag1_0_3; uml::code_handle *m_swap_dag1_0_3;
uml::code_handle *m_swap_dag1_4_7; uml::code_handle *m_swap_dag1_4_7;
uml::code_handle *m_swap_dag2_0_3; uml::code_handle *m_swap_dag2_0_3;
@ -596,7 +596,7 @@ private:
{ {
UINT32 cycles; /* accumulated cycles */ UINT32 cycles; /* accumulated cycles */
UINT8 checkints; /* need to check interrupts before next instruction */ UINT8 checkints; /* need to check interrupts before next instruction */
uml::code_label labelnum; /* index for local labels */ uml::code_label labelnum; /* index for local labels */
struct struct
{ {
int counter; int counter;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -11,36 +11,36 @@
#include "sparcdasm.h" #include "sparcdasm.h"
#define SPARCV8 (0) #define SPARCV8 (0)
#define SPARC_NO_TRAP 256 #define SPARC_NO_TRAP 256
#define SPARC_RESET 0 #define SPARC_RESET 0
#define SPARC_INSTRUCTION_ACCESS_EXCEPTION 1 #define SPARC_INSTRUCTION_ACCESS_EXCEPTION 1
#define SPARC_ILLEGAL_INSTRUCTION 2 #define SPARC_ILLEGAL_INSTRUCTION 2
#define SPARC_PRIVILEGED_INSTRUCTION 3 #define SPARC_PRIVILEGED_INSTRUCTION 3
#define SPARC_FP_DISABLED 4 #define SPARC_FP_DISABLED 4
#define SPARC_WINDOW_OVERFLOW 5 #define SPARC_WINDOW_OVERFLOW 5
#define SPARC_WINDOW_UNDERFLOW 6 #define SPARC_WINDOW_UNDERFLOW 6
#define SPARC_MEM_ADDRESS_NOT_ALIGNED 7 #define SPARC_MEM_ADDRESS_NOT_ALIGNED 7
#define SPARC_FLOATING_POINT_EXCEPTION 8 #define SPARC_FLOATING_POINT_EXCEPTION 8
#define SPARC_DATA_ACCESS_EXCEPTION 9 #define SPARC_DATA_ACCESS_EXCEPTION 9
#define SPARC_TAG_OVERFLOW 10 #define SPARC_TAG_OVERFLOW 10
#define SPARC_INT1 17 #define SPARC_INT1 17
#define SPARC_INT2 18 #define SPARC_INT2 18
#define SPARC_INT3 19 #define SPARC_INT3 19
#define SPARC_INT4 20 #define SPARC_INT4 20
#define SPARC_INT5 21 #define SPARC_INT5 21
#define SPARC_INT6 22 #define SPARC_INT6 22
#define SPARC_INT7 23 #define SPARC_INT7 23
#define SPARC_INT8 24 #define SPARC_INT8 24
#define SPARC_INT9 25 #define SPARC_INT9 25
#define SPARC_INT10 26 #define SPARC_INT10 26
#define SPARC_INT11 27 #define SPARC_INT11 27
#define SPARC_INT12 28 #define SPARC_INT12 28
#define SPARC_INT13 29 #define SPARC_INT13 29
#define SPARC_INT14 30 #define SPARC_INT14 30
#define SPARC_INT15 31 #define SPARC_INT15 31
#define SPARC_TRAP_INSTRUCTION 128 #define SPARC_TRAP_INSTRUCTION 128
#define SPARC_FPU_SEQUENCE_ERROR #define SPARC_FPU_SEQUENCE_ERROR
// TODO: when there are more SPARC CPUs, move setter to a base class // TODO: when there are more SPARC CPUs, move setter to a base class
@ -200,16 +200,16 @@ protected:
UINT8 m_cp_sequence_err; UINT8 m_cp_sequence_err;
// fields separated out from PSR (Processor State Register) // fields separated out from PSR (Processor State Register)
UINT8 m_impl; // implementation (always 0 in MB86901) UINT8 m_impl; // implementation (always 0 in MB86901)
UINT8 m_ver; // version (always 0 in MB86901) UINT8 m_ver; // version (always 0 in MB86901)
UINT8 m_icc; // integer condition codes UINT8 m_icc; // integer condition codes
bool m_ec; // enable coprocessor bool m_ec; // enable coprocessor
bool m_ef; // enable FPU bool m_ef; // enable FPU
UINT8 m_pil; // processor interrupt level UINT8 m_pil; // processor interrupt level
bool m_s; // supervisor mode bool m_s; // supervisor mode
bool m_ps; // prior S state bool m_ps; // prior S state
bool m_et; // enable traps bool m_et; // enable traps
UINT8 m_cwp; // current window pointer UINT8 m_cwp; // current window pointer
bool m_alu_op3_assigned[64]; bool m_alu_op3_assigned[64];
bool m_ldst_op3_assigned[64]; bool m_ldst_op3_assigned[64];
@ -259,10 +259,10 @@ enum
SPARC_ICC, SPARC_ICC,
SPARC_CWP, SPARC_CWP,
SPARC_G0, SPARC_G1, SPARC_G2, SPARC_G3, SPARC_G4, SPARC_G5, SPARC_G6, SPARC_G7, SPARC_G0, SPARC_G1, SPARC_G2, SPARC_G3, SPARC_G4, SPARC_G5, SPARC_G6, SPARC_G7,
SPARC_O0, SPARC_O1, SPARC_O2, SPARC_O3, SPARC_O4, SPARC_O5, SPARC_O6, SPARC_O7, SPARC_O0, SPARC_O1, SPARC_O2, SPARC_O3, SPARC_O4, SPARC_O5, SPARC_O6, SPARC_O7,
SPARC_L0, SPARC_L1, SPARC_L2, SPARC_L3, SPARC_L4, SPARC_L5, SPARC_L6, SPARC_L7, SPARC_L0, SPARC_L1, SPARC_L2, SPARC_L3, SPARC_L4, SPARC_L5, SPARC_L6, SPARC_L7,
SPARC_I0, SPARC_I1, SPARC_I2, SPARC_I3, SPARC_I4, SPARC_I5, SPARC_I6, SPARC_I7, SPARC_I0, SPARC_I1, SPARC_I2, SPARC_I3, SPARC_I4, SPARC_I5, SPARC_I6, SPARC_I7,
SPARC_EC, SPARC_EC,
SPARC_EF, SPARC_EF,
@ -271,13 +271,13 @@ enum
SPARC_S, SPARC_S,
SPARC_PS, SPARC_PS,
SPARC_R0, SPARC_R1, SPARC_R2, SPARC_R3, SPARC_R4, SPARC_R5, SPARC_R6, SPARC_R7, SPARC_R8, SPARC_R9, SPARC_R10, SPARC_R11, SPARC_R12, SPARC_R13, SPARC_R14, SPARC_R15, SPARC_R0, SPARC_R1, SPARC_R2, SPARC_R3, SPARC_R4, SPARC_R5, SPARC_R6, SPARC_R7, SPARC_R8, SPARC_R9, SPARC_R10, SPARC_R11, SPARC_R12, SPARC_R13, SPARC_R14, SPARC_R15,
SPARC_R16, SPARC_R17, SPARC_R18, SPARC_R19, SPARC_R20, SPARC_R21, SPARC_R22, SPARC_R23, SPARC_R24, SPARC_R25, SPARC_R26, SPARC_R27, SPARC_R28, SPARC_R29, SPARC_R30, SPARC_R31, SPARC_R16, SPARC_R17, SPARC_R18, SPARC_R19, SPARC_R20, SPARC_R21, SPARC_R22, SPARC_R23, SPARC_R24, SPARC_R25, SPARC_R26, SPARC_R27, SPARC_R28, SPARC_R29, SPARC_R30, SPARC_R31,
SPARC_R32, SPARC_R33, SPARC_R34, SPARC_R35, SPARC_R36, SPARC_R37, SPARC_R38, SPARC_R39, SPARC_R40, SPARC_R41, SPARC_R42, SPARC_R43, SPARC_R44, SPARC_R45, SPARC_R46, SPARC_R47, SPARC_R32, SPARC_R33, SPARC_R34, SPARC_R35, SPARC_R36, SPARC_R37, SPARC_R38, SPARC_R39, SPARC_R40, SPARC_R41, SPARC_R42, SPARC_R43, SPARC_R44, SPARC_R45, SPARC_R46, SPARC_R47,
SPARC_R48, SPARC_R49, SPARC_R50, SPARC_R51, SPARC_R52, SPARC_R53, SPARC_R54, SPARC_R55, SPARC_R56, SPARC_R57, SPARC_R58, SPARC_R59, SPARC_R60, SPARC_R61, SPARC_R62, SPARC_R63, SPARC_R48, SPARC_R49, SPARC_R50, SPARC_R51, SPARC_R52, SPARC_R53, SPARC_R54, SPARC_R55, SPARC_R56, SPARC_R57, SPARC_R58, SPARC_R59, SPARC_R60, SPARC_R61, SPARC_R62, SPARC_R63,
SPARC_R64, SPARC_R65, SPARC_R66, SPARC_R67, SPARC_R68, SPARC_R69, SPARC_R70, SPARC_R71, SPARC_R72, SPARC_R73, SPARC_R74, SPARC_R75, SPARC_R76, SPARC_R77, SPARC_R78, SPARC_R79, SPARC_R64, SPARC_R65, SPARC_R66, SPARC_R67, SPARC_R68, SPARC_R69, SPARC_R70, SPARC_R71, SPARC_R72, SPARC_R73, SPARC_R74, SPARC_R75, SPARC_R76, SPARC_R77, SPARC_R78, SPARC_R79,
SPARC_R80, SPARC_R81, SPARC_R82, SPARC_R83, SPARC_R84, SPARC_R85, SPARC_R86, SPARC_R87, SPARC_R88, SPARC_R89, SPARC_R90, SPARC_R91, SPARC_R92, SPARC_R93, SPARC_R94, SPARC_R95, SPARC_R80, SPARC_R81, SPARC_R82, SPARC_R83, SPARC_R84, SPARC_R85, SPARC_R86, SPARC_R87, SPARC_R88, SPARC_R89, SPARC_R90, SPARC_R91, SPARC_R92, SPARC_R93, SPARC_R94, SPARC_R95,
SPARC_R96, SPARC_R97, SPARC_R98, SPARC_R99, SPARC_R100, SPARC_R101, SPARC_R102, SPARC_R103, SPARC_R104, SPARC_R105, SPARC_R106, SPARC_R107, SPARC_R108, SPARC_R109, SPARC_R110, SPARC_R111 SPARC_R96, SPARC_R97, SPARC_R98, SPARC_R99, SPARC_R100, SPARC_R101, SPARC_R102, SPARC_R103, SPARC_R104, SPARC_R105, SPARC_R106, SPARC_R107, SPARC_R108, SPARC_R109, SPARC_R110, SPARC_R111
}; };
#endif /* __SPARC_H__ */ #endif /* __SPARC_H__ */

View File

@ -12,375 +12,375 @@
#ifndef __MB86901_DEFS_H__ #ifndef __MB86901_DEFS_H__
#define __MB86901_DEFS_H__ #define __MB86901_DEFS_H__
#define PSR_CWP_MASK 0x0000001f #define PSR_CWP_MASK 0x0000001f
#define PSR_ET_SHIFT 5 #define PSR_ET_SHIFT 5
#define PSR_ET_MASK 0x00000020 #define PSR_ET_MASK 0x00000020
#define PSR_PS_SHIFT 6 #define PSR_PS_SHIFT 6
#define PSR_PS_MASK 0x00000040 #define PSR_PS_MASK 0x00000040
#define PSR_S_SHIFT 7 #define PSR_S_SHIFT 7
#define PSR_S_MASK 0x00000080 #define PSR_S_MASK 0x00000080
#define PSR_PIL_SHIFT 8 #define PSR_PIL_SHIFT 8
#define PSR_PIL_MASK 0x00000f00 #define PSR_PIL_MASK 0x00000f00
#define PSR_EF_SHIFT 12 #define PSR_EF_SHIFT 12
#define PSR_EF_MASK 0x00001000 #define PSR_EF_MASK 0x00001000
#define PSR_EC_SHIFT 13 #define PSR_EC_SHIFT 13
#define PSR_EC_MASK 0x00002000 #define PSR_EC_MASK 0x00002000
#define PSR_ICC_SHIFT 20 #define PSR_ICC_SHIFT 20
#define PSR_RES_MASK 0x000fc000 #define PSR_RES_MASK 0x000fc000
#define PSR_ICC_MASK 0x00f00000 #define PSR_ICC_MASK 0x00f00000
#define PSR_N_MASK 0x00800000 #define PSR_N_MASK 0x00800000
#define PSR_Z_MASK 0x00400000 #define PSR_Z_MASK 0x00400000
#define PSR_V_MASK 0x00200000 #define PSR_V_MASK 0x00200000
#define PSR_C_MASK 0x00100000 #define PSR_C_MASK 0x00100000
#define PSR_VER_SHIFT 24 #define PSR_VER_SHIFT 24
#define PSR_VER_MASK 0x0f000000 #define PSR_VER_MASK 0x0f000000
#define PSR_VER 0 #define PSR_VER 0
#define PSR_IMPL_SHIFT 28 #define PSR_IMPL_SHIFT 28
#define PSR_IMPL_MASK 0xf0000000 #define PSR_IMPL_MASK 0xf0000000
#define PSR_IMPL 0 #define PSR_IMPL 0
#define PSR_ZERO_MASK (PSR_IMPL_MASK | PSR_VER_MASK | PSR_RES_MASK) #define PSR_ZERO_MASK (PSR_IMPL_MASK | PSR_VER_MASK | PSR_RES_MASK)
#define ICC_N_SET (m_psr & PSR_N_MASK) #define ICC_N_SET (m_psr & PSR_N_MASK)
#define ICC_N (ICC_N_SET ? 1 : 0) #define ICC_N (ICC_N_SET ? 1 : 0)
#define ICC_N_CLEAR (!ICC_N_SET) #define ICC_N_CLEAR (!ICC_N_SET)
#define SET_ICC_N_FLAG do { m_psr |= PSR_N_MASK; } while(0) #define SET_ICC_N_FLAG do { m_psr |= PSR_N_MASK; } while(0)
#define CLEAR_ICC_N_FLAG do { m_psr &= ~PSR_N_MASK; } while(0) #define CLEAR_ICC_N_FLAG do { m_psr &= ~PSR_N_MASK; } while(0)
#define ICC_Z_SET (m_psr & PSR_Z_MASK) #define ICC_Z_SET (m_psr & PSR_Z_MASK)
#define ICC_Z (ICC_Z_SET ? 1 : 0) #define ICC_Z (ICC_Z_SET ? 1 : 0)
#define ICC_Z_CLEAR (!ICC_Z_SET) #define ICC_Z_CLEAR (!ICC_Z_SET)
#define SET_ICC_Z_FLAG do { m_psr |= PSR_Z_MASK; } while(0) #define SET_ICC_Z_FLAG do { m_psr |= PSR_Z_MASK; } while(0)
#define CLEAR_ICC_Z_FLAG do { m_psr &= ~PSR_Z_MASK; } while(0) #define CLEAR_ICC_Z_FLAG do { m_psr &= ~PSR_Z_MASK; } while(0)
#define ICC_V_SET (m_psr & PSR_V_MASK) #define ICC_V_SET (m_psr & PSR_V_MASK)
#define ICC_V (ICC_V_SET ? 1 : 0) #define ICC_V (ICC_V_SET ? 1 : 0)
#define ICC_V_CLEAR (!ICC_V_SET) #define ICC_V_CLEAR (!ICC_V_SET)
#define SET_ICC_V_FLAG do { m_psr |= PSR_V_MASK; } while(0) #define SET_ICC_V_FLAG do { m_psr |= PSR_V_MASK; } while(0)
#define CLEAR_ICC_V_FLAG do { m_psr &= ~PSR_V_MASK; } while(0) #define CLEAR_ICC_V_FLAG do { m_psr &= ~PSR_V_MASK; } while(0)
#define ICC_C_SET (m_psr & PSR_C_MASK) #define ICC_C_SET (m_psr & PSR_C_MASK)
#define ICC_C (ICC_C_SET ? 1 : 0) #define ICC_C (ICC_C_SET ? 1 : 0)
#define ICC_C_CLEAR (!ICC_C_SET) #define ICC_C_CLEAR (!ICC_C_SET)
#define SET_ICC_C_FLAG do { m_psr |= PSR_C_MASK; } while(0) #define SET_ICC_C_FLAG do { m_psr |= PSR_C_MASK; } while(0)
#define CLEAR_ICC_C_FLAG do { m_psr &= ~PSR_C_MASK; } while(0) #define CLEAR_ICC_C_FLAG do { m_psr &= ~PSR_C_MASK; } while(0)
#define CLEAR_ICC do { m_psr &= ~PSR_ICC_MASK; } while(0) #define CLEAR_ICC do { m_psr &= ~PSR_ICC_MASK; } while(0)
#define TEST_ICC_NZ(x) do { m_psr &= ~PSR_ICC_MASK; m_psr |= (x & 0x80000000) ? PSR_N_MASK : 0; m_psr |= (x == 0) ? PSR_Z_MASK : 0; } while (0) #define TEST_ICC_NZ(x) do { m_psr &= ~PSR_ICC_MASK; m_psr |= (x & 0x80000000) ? PSR_N_MASK : 0; m_psr |= (x == 0) ? PSR_Z_MASK : 0; } while (0)
#define MAKE_PSR do { m_psr = (m_impl << PSR_IMPL_SHIFT) | (m_ver << PSR_VER_SHIFT) | (m_icc << PSR_ICC_SHIFT) | (m_ec ? PSR_EC_MASK : 0) | (m_ef ? PSR_EF_MASK : 0) | (m_pil << PSR_PIL_SHIFT) | (m_s ? PSR_S_MASK : 0) | (m_ps ? PSR_PS_MASK : 0) | (m_et ? PSR_ET_MASK : 0) | m_cwp; } while(0) #define MAKE_PSR do { m_psr = (m_impl << PSR_IMPL_SHIFT) | (m_ver << PSR_VER_SHIFT) | (m_icc << PSR_ICC_SHIFT) | (m_ec ? PSR_EC_MASK : 0) | (m_ef ? PSR_EF_MASK : 0) | (m_pil << PSR_PIL_SHIFT) | (m_s ? PSR_S_MASK : 0) | (m_ps ? PSR_PS_MASK : 0) | (m_et ? PSR_ET_MASK : 0) | m_cwp; } while(0)
#define BREAK_PSR do { m_icc = (m_psr & PSR_ICC_MASK) >> PSR_ICC_SHIFT; m_ec = m_psr & PSR_EC_MASK; m_ef = m_psr & PSR_EF_MASK; m_pil = (m_psr & PSR_PIL_MASK) >> PSR_PIL_SHIFT; m_s = m_psr & PSR_S_MASK; m_ps = m_psr & PSR_PS_MASK; m_et = m_psr & PSR_ET_MASK; m_cwp = m_psr & PSR_CWP_MASK; } while(0) #define BREAK_PSR do { m_icc = (m_psr & PSR_ICC_MASK) >> PSR_ICC_SHIFT; m_ec = m_psr & PSR_EC_MASK; m_ef = m_psr & PSR_EF_MASK; m_pil = (m_psr & PSR_PIL_MASK) >> PSR_PIL_SHIFT; m_s = m_psr & PSR_S_MASK; m_ps = m_psr & PSR_PS_MASK; m_et = m_psr & PSR_ET_MASK; m_cwp = m_psr & PSR_CWP_MASK; } while(0)
#define MAKE_ICC do { m_icc = (m_psr & PSR_ICC_MASK) >> PSR_ICC_SHIFT; } while(0) #define MAKE_ICC do { m_icc = (m_psr & PSR_ICC_MASK) >> PSR_ICC_SHIFT; } while(0)
#define CWP m_cwp #define CWP m_cwp
#define S m_s #define S m_s
#define PS m_ps #define PS m_ps
#define IS_SUPERVISOR (m_psr & PSR_S_MASK) #define IS_SUPERVISOR (m_psr & PSR_S_MASK)
#define IS_USER (!IS_SUPERVISOR) #define IS_USER (!IS_SUPERVISOR)
#define TRAPS_ENABLED (m_psr & PSR_ET_MASK) #define TRAPS_ENABLED (m_psr & PSR_ET_MASK)
#define TRAPS_DISABLED (!TRAPS_ENABLED) #define TRAPS_DISABLED (!TRAPS_ENABLED)
#define PSR m_psr #define PSR m_psr
#define WIM m_wim #define WIM m_wim
#define TBR m_tbr #define TBR m_tbr
#define OP (op >> 30) // gangnam style #define OP (op >> 30) // gangnam style
#define OP2 ((op >> 22) & 7) #define OP2 ((op >> 22) & 7)
#define OP3 ((op >> 19) & 63) #define OP3 ((op >> 19) & 63)
#define OPF ((op >> 5) & 0x1ff) #define OPF ((op >> 5) & 0x1ff)
#define OPC ((op >> 5) & 0x1ff) #define OPC ((op >> 5) & 0x1ff)
#define OPFLOW ((op >> 5) & 0x3f) #define OPFLOW ((op >> 5) & 0x3f)
#define DISP30 (INT32(op << 2)) #define DISP30 (INT32(op << 2))
#define DISP22 (INT32(op << 10) >> 8) #define DISP22 (INT32(op << 10) >> 8)
#define DISP19 (INT32(op << 13) >> 11) #define DISP19 (INT32(op << 13) >> 11)
#define DISP16 (INT32(((op << 10) & 0xc0000000) | ((op << 16) & 0x3fff0000)) >> 14) #define DISP16 (INT32(((op << 10) & 0xc0000000) | ((op << 16) & 0x3fff0000)) >> 14)
#define IMM22 (op << 10) #define IMM22 (op << 10)
#define CONST22 (op & 0x3fffff) #define CONST22 (op & 0x3fffff)
#define SIMM13 (INT32(op << 19) >> 19) #define SIMM13 (INT32(op << 19) >> 19)
#define SIMM11 (INT32(op << 21) >> 21) #define SIMM11 (INT32(op << 21) >> 21)
#define SIMM10 (INT32(op << 22) >> 22) #define SIMM10 (INT32(op << 22) >> 22)
#define SIMM8 (INT32(op << 24) >> 24) #define SIMM8 (INT32(op << 24) >> 24)
#define IMM7 (op & 0x7f) #define IMM7 (op & 0x7f)
#define SIMM7 (INT32(op << 25) >> 25) #define SIMM7 (INT32(op << 25) >> 25)
#define SHCNT32 (op & 31) #define SHCNT32 (op & 31)
#define SHCNT64 (op & 63) #define SHCNT64 (op & 63)
#define IAMODE (op & 0x7) #define IAMODE (op & 0x7)
#define USEIMM ((op >> 13) & 1) #define USEIMM ((op >> 13) & 1)
#define USEEXT ((op >> 12) & 1) #define USEEXT ((op >> 12) & 1)
#define COND ((op >> 25) & 15) #define COND ((op >> 25) & 15)
#define RCOND ((op >> 10) & 7) #define RCOND ((op >> 10) & 7)
#define MOVCOND ((op >> 14) & 15) #define MOVCOND ((op >> 14) & 15)
#define PRED ((op >> 19) & 1) #define PRED ((op >> 19) & 1)
#define ANNUL ((op >> 29) & 1) #define ANNUL ((op >> 29) & 1)
#define BRCC ((op >> 20) & 3) #define BRCC ((op >> 20) & 3)
#define MOVCC (((op >> 11) & 3) | ((op >> 16) & 4)) #define MOVCC (((op >> 11) & 3) | ((op >> 16) & 4))
#define OPFCC ((op >> 11) & 7) #define OPFCC ((op >> 11) & 7)
#define TCCCC ((op >> 11) & 3) #define TCCCC ((op >> 11) & 3)
#define ASI ((op >> 5) & 255) #define ASI ((op >> 5) & 255)
#define MMASK (op & 15) #define MMASK (op & 15)
#define CMASK ((op >> 4) & 7) #define CMASK ((op >> 4) & 7)
#define RD ((op >> 25) & 31) #define RD ((op >> 25) & 31)
#define RS1 ((op >> 14) & 31) #define RS1 ((op >> 14) & 31)
#define RS2 (op & 31) #define RS2 (op & 31)
#define FREG(x) m_fpr[(x)] #define FREG(x) m_fpr[(x)]
#define FDREG m_fpr[RD] #define FDREG m_fpr[RD]
#define FSR m_fsr #define FSR m_fsr
#define REG(x) *m_regs[(x)] #define REG(x) *m_regs[(x)]
#define RDREG *m_regs[RD] #define RDREG *m_regs[RD]
#define RS1REG *m_regs[RS1] #define RS1REG *m_regs[RS1]
#define RS2REG *m_regs[RS2] #define RS2REG *m_regs[RS2]
#define SET_RDREG(x) do { if(RD) { RDREG = (x); } } while (0) #define SET_RDREG(x) do { if(RD) { RDREG = (x); } } while (0)
#define ADDRESS (USEIMM ? (RS1REG + SIMM13) : (RS1REG + RS2REG)) #define ADDRESS (USEIMM ? (RS1REG + SIMM13) : (RS1REG + RS2REG))
#define PC m_pc #define PC m_pc
#define nPC m_npc #define nPC m_npc
#define Y m_y #define Y m_y
#define ET m_et #define ET m_et
#define EF m_ef #define EF m_ef
#define EC m_ec #define EC m_ec
#define PIL m_pil #define PIL m_pil
#define MAE m_mae #define MAE m_mae
#define HOLD_BUS m_hold_bus #define HOLD_BUS m_hold_bus
#define BIT31(x) ((x) & 0x80000000) #define BIT31(x) ((x) & 0x80000000)
#define UPDATE_PC true #define UPDATE_PC true
#define PC_UPDATED false #define PC_UPDATED false
#define OP_TYPE0 0 #define OP_TYPE0 0
#define OP_CALL 1 #define OP_CALL 1
#define OP_ALU 2 #define OP_ALU 2
#define OP_LDST 3 #define OP_LDST 3
#define OP2_UNIMP 0 #define OP2_UNIMP 0
#define OP2_BICC 2 #define OP2_BICC 2
#define OP2_SETHI 4 #define OP2_SETHI 4
#define OP2_FBFCC 6 #define OP2_FBFCC 6
#define OP2_CBCCC 7 #define OP2_CBCCC 7
#define OP3_ADD 0 #define OP3_ADD 0
#define OP3_AND 1 #define OP3_AND 1
#define OP3_OR 2 #define OP3_OR 2
#define OP3_XOR 3 #define OP3_XOR 3
#define OP3_SUB 4 #define OP3_SUB 4
#define OP3_ANDN 5 #define OP3_ANDN 5
#define OP3_ORN 6 #define OP3_ORN 6
#define OP3_XNOR 7 #define OP3_XNOR 7
#define OP3_ADDX 8 #define OP3_ADDX 8
#define OP3_UMUL 10 #define OP3_UMUL 10
#define OP3_SMUL 11 #define OP3_SMUL 11
#define OP3_SUBX 12 #define OP3_SUBX 12
#define OP3_UDIV 14 #define OP3_UDIV 14
#define OP3_SDIV 15 #define OP3_SDIV 15
#define OP3_ADDCC 16 #define OP3_ADDCC 16
#define OP3_ANDCC 17 #define OP3_ANDCC 17
#define OP3_ORCC 18 #define OP3_ORCC 18
#define OP3_XORCC 19 #define OP3_XORCC 19
#define OP3_SUBCC 20 #define OP3_SUBCC 20
#define OP3_ANDNCC 21 #define OP3_ANDNCC 21
#define OP3_ORNCC 22 #define OP3_ORNCC 22
#define OP3_XNORCC 23 #define OP3_XNORCC 23
#define OP3_ADDXCC 24 #define OP3_ADDXCC 24
#define OP3_UMULCC 26 #define OP3_UMULCC 26
#define OP3_SMULCC 27 #define OP3_SMULCC 27
#define OP3_SUBXCC 28 #define OP3_SUBXCC 28
#define OP3_UDIVCC 30 #define OP3_UDIVCC 30
#define OP3_SDIVCC 31 #define OP3_SDIVCC 31
#define OP3_TADDCC 32 #define OP3_TADDCC 32
#define OP3_TSUBCC 33 #define OP3_TSUBCC 33
#define OP3_TADDCCTV 34 #define OP3_TADDCCTV 34
#define OP3_TSUBCCTV 35 #define OP3_TSUBCCTV 35
#define OP3_MULSCC 36 #define OP3_MULSCC 36
#define OP3_SLL 37 #define OP3_SLL 37
#define OP3_SRL 38 #define OP3_SRL 38
#define OP3_SRA 39 #define OP3_SRA 39
#define OP3_RDASR 40 #define OP3_RDASR 40
#define OP3_RDPSR 41 #define OP3_RDPSR 41
#define OP3_RDWIM 42 #define OP3_RDWIM 42
#define OP3_RDTBR 43 #define OP3_RDTBR 43
#define OP3_WRASR 48 #define OP3_WRASR 48
#define OP3_WRPSR 49 #define OP3_WRPSR 49
#define OP3_WRWIM 50 #define OP3_WRWIM 50
#define OP3_WRTBR 51 #define OP3_WRTBR 51
#define OP3_FPOP1 52 #define OP3_FPOP1 52
#define OP3_FPOP2 53 #define OP3_FPOP2 53
#define OP3_JMPL 56 #define OP3_JMPL 56
#define OP3_RETT 57 #define OP3_RETT 57
#define OP3_TICC 58 #define OP3_TICC 58
#define OP3_SAVE 60 #define OP3_SAVE 60
#define OP3_RESTORE 61 #define OP3_RESTORE 61
#define OP3_LD 0 #define OP3_LD 0
#define OP3_LDUB 1 #define OP3_LDUB 1
#define OP3_LDUH 2 #define OP3_LDUH 2
#define OP3_LDD 3 #define OP3_LDD 3
#define OP3_ST 4 #define OP3_ST 4
#define OP3_STB 5 #define OP3_STB 5
#define OP3_STH 6 #define OP3_STH 6
#define OP3_STD 7 #define OP3_STD 7
#define OP3_LDSB 9 #define OP3_LDSB 9
#define OP3_LDSH 10 #define OP3_LDSH 10
#define OP3_LDSTUB 13 #define OP3_LDSTUB 13
#define OP3_SWAP 15 #define OP3_SWAP 15
#define OP3_LDA 16 #define OP3_LDA 16
#define OP3_LDUBA 17 #define OP3_LDUBA 17
#define OP3_LDUHA 18 #define OP3_LDUHA 18
#define OP3_LDDA 19 #define OP3_LDDA 19
#define OP3_STA 20 #define OP3_STA 20
#define OP3_STBA 21 #define OP3_STBA 21
#define OP3_STHA 22 #define OP3_STHA 22
#define OP3_STDA 23 #define OP3_STDA 23
#define OP3_LDSBA 25 #define OP3_LDSBA 25
#define OP3_LDSHA 26 #define OP3_LDSHA 26
#define OP3_LDSTUBA 29 #define OP3_LDSTUBA 29
#define OP3_SWAPA 31 #define OP3_SWAPA 31
#define OP3_LDFPR 32 #define OP3_LDFPR 32
#define OP3_LDFSR 33 #define OP3_LDFSR 33
#define OP3_LDDFPR 35 #define OP3_LDDFPR 35
#define OP3_STFPR 36 #define OP3_STFPR 36
#define OP3_STFSR 37 #define OP3_STFSR 37
#define OP3_STDFQ 38 #define OP3_STDFQ 38
#define OP3_STDFPR 39 #define OP3_STDFPR 39
#define OP3_LDCPR 40 #define OP3_LDCPR 40
#define OP3_LDCSR 41 #define OP3_LDCSR 41
#define OP3_LDDCPR 43 #define OP3_LDDCPR 43
#define OP3_STCPR 44 #define OP3_STCPR 44
#define OP3_STCSR 45 #define OP3_STCSR 45
#define OP3_STDCQ 46 #define OP3_STDCQ 46
#define OP3_STDCPR 47 #define OP3_STDCPR 47
#define OP3_CPOP1 54 #define OP3_CPOP1 54
#define OP3_CPOP2 55 #define OP3_CPOP2 55
#define COND_BN 0 #define COND_BN 0
#define COND_BE 1 #define COND_BE 1
#define COND_BLE 2 #define COND_BLE 2
#define COND_BL 3 #define COND_BL 3
#define COND_BLEU 4 #define COND_BLEU 4
#define COND_BCS 5 #define COND_BCS 5
#define COND_BNEG 6 #define COND_BNEG 6
#define COND_BVS 7 #define COND_BVS 7
#define COND_BA 8 #define COND_BA 8
#define COND_BNE 9 #define COND_BNE 9
#define COND_BG 10 #define COND_BG 10
#define COND_BGE 11 #define COND_BGE 11
#define COND_BGU 12 #define COND_BGU 12
#define COND_BCC 13 #define COND_BCC 13
#define COND_BPOS 14 #define COND_BPOS 14
#define COND_BVC 15 #define COND_BVC 15
#define LDD (OP3 == OP3_LDD) #define LDD (OP3 == OP3_LDD)
#define LD (OP3 == OP3_LD) #define LD (OP3 == OP3_LD)
#define LDSH (OP3 == OP3_LDSH) #define LDSH (OP3 == OP3_LDSH)
#define LDUH (OP3 == OP3_LDUH) #define LDUH (OP3 == OP3_LDUH)
#define LDSB (OP3 == OP3_LDSB) #define LDSB (OP3 == OP3_LDSB)
#define LDUB (OP3 == OP3_LDUB) #define LDUB (OP3 == OP3_LDUB)
#define LDDF (OP3 == OP3_LDDFPR) #define LDDF (OP3 == OP3_LDDFPR)
#define LDF (OP3 == OP3_LDFPR) #define LDF (OP3 == OP3_LDFPR)
#define LDFSR (OP3 == OP3_LDFSR) #define LDFSR (OP3 == OP3_LDFSR)
#define LDDC (OP3 == OP3_LDDCPR) #define LDDC (OP3 == OP3_LDDCPR)
#define LDC (OP3 == OP3_LDCPR) #define LDC (OP3 == OP3_LDCPR)
#define LDCSR (OP3 == OP3_LDCSR) #define LDCSR (OP3 == OP3_LDCSR)
#define LDDA (OP3 == OP3_LDDA) #define LDDA (OP3 == OP3_LDDA)
#define LDA (OP3 == OP3_LDA) #define LDA (OP3 == OP3_LDA)
#define LDSHA (OP3 == OP3_LDSHA) #define LDSHA (OP3 == OP3_LDSHA)
#define LDUHA (OP3 == OP3_LDUHA) #define LDUHA (OP3 == OP3_LDUHA)
#define LDSBA (OP3 == OP3_LDSBA) #define LDSBA (OP3 == OP3_LDSBA)
#define LDUBA (OP3 == OP3_LDUBA) #define LDUBA (OP3 == OP3_LDUBA)
#define STD (OP3 == OP3_STD) #define STD (OP3 == OP3_STD)
#define ST (OP3 == OP3_ST) #define ST (OP3 == OP3_ST)
#define STH (OP3 == OP3_STH) #define STH (OP3 == OP3_STH)
#define STB (OP3 == OP3_STB) #define STB (OP3 == OP3_STB)
#define STDA (OP3 == OP3_STDA) #define STDA (OP3 == OP3_STDA)
#define STA (OP3 == OP3_STA) #define STA (OP3 == OP3_STA)
#define STHA (OP3 == OP3_STHA) #define STHA (OP3 == OP3_STHA)
#define STBA (OP3 == OP3_STBA) #define STBA (OP3 == OP3_STBA)
#define STF (OP3 == OP3_STFPR) #define STF (OP3 == OP3_STFPR)
#define STFSR (OP3 == OP3_STFSR) #define STFSR (OP3 == OP3_STFSR)
#define STDFQ (OP3 == OP3_STDFQ) #define STDFQ (OP3 == OP3_STDFQ)
#define STDF (OP3 == OP3_STDFPR) #define STDF (OP3 == OP3_STDFPR)
#define STC (OP3 == OP3_STCPR) #define STC (OP3 == OP3_STCPR)
#define STCSR (OP3 == OP3_STCSR) #define STCSR (OP3 == OP3_STCSR)
#define STDCQ (OP3 == OP3_STDCQ) #define STDCQ (OP3 == OP3_STDCQ)
#define STDC (OP3 == OP3_STDCPR) #define STDC (OP3 == OP3_STDCPR)
#define JMPL (OP3 == OP3_JMPL) #define JMPL (OP3 == OP3_JMPL)
#define TICC (OP3 == OP3_TICC) #define TICC (OP3 == OP3_TICC)
#define RETT (OP3 == OP3_RETT) #define RETT (OP3 == OP3_RETT)
#define SWAP (OP3 == OP3_SWAP) #define SWAP (OP3 == OP3_SWAP)
#define SWAPA (OP3 == OP3_SWAPA) #define SWAPA (OP3 == OP3_SWAPA)
#define FPOP1 (OP3 == OP3_FPOP1) #define FPOP1 (OP3 == OP3_FPOP1)
#define FPOP2 (OP3 == OP3_FPOP2) #define FPOP2 (OP3 == OP3_FPOP2)
#define CPOP1 (OP3 == OP3_CPOP1) #define CPOP1 (OP3 == OP3_CPOP1)
#define CPOP2 (OP3 == OP3_CPOP2) #define CPOP2 (OP3 == OP3_CPOP2)
#define LDSTUB (OP3 == OP3_LDSTUB) #define LDSTUB (OP3 == OP3_LDSTUB)
#define LDSTUBA (OP3 == OP3_LDSTUBA) #define LDSTUBA (OP3 == OP3_LDSTUBA)
#define ADD (OP3 == OP3_ADD) #define ADD (OP3 == OP3_ADD)
#define ADDX (OP3 == OP3_ADDX) #define ADDX (OP3 == OP3_ADDX)
#define ADDCC (OP3 == OP3_ADDCC) #define ADDCC (OP3 == OP3_ADDCC)
#define ADDXCC (OP3 == OP3_ADDXCC) #define ADDXCC (OP3 == OP3_ADDXCC)
#define SUB (OP3 == OP3_SUB) #define SUB (OP3 == OP3_SUB)
#define SUBX (OP3 == OP3_SUBX) #define SUBX (OP3 == OP3_SUBX)
#define SUBCC (OP3 == OP3_SUBCC) #define SUBCC (OP3 == OP3_SUBCC)
#define SUBXCC (OP3 == OP3_SUBXCC) #define SUBXCC (OP3 == OP3_SUBXCC)
#define TADDCCTV (OP3 == OP3_TADDCCTV) #define TADDCCTV (OP3 == OP3_TADDCCTV)
#define TSUBCCTV (OP3 == OP3_TSUBCCTV) #define TSUBCCTV (OP3 == OP3_TSUBCCTV)
#define AND (OP3 == OP3_AND) #define AND (OP3 == OP3_AND)
#define OR (OP3 == OP3_OR) #define OR (OP3 == OP3_OR)
#define XOR (OP3 == OP3_XOR) #define XOR (OP3 == OP3_XOR)
#define ANDN (OP3 == OP3_ANDN) #define ANDN (OP3 == OP3_ANDN)
#define ORN (OP3 == OP3_ORN) #define ORN (OP3 == OP3_ORN)
#define XNOR (OP3 == OP3_XNOR) #define XNOR (OP3 == OP3_XNOR)
#define ANDCC (OP3 == OP3_ANDCC) #define ANDCC (OP3 == OP3_ANDCC)
#define ORCC (OP3 == OP3_ORCC) #define ORCC (OP3 == OP3_ORCC)
#define XORCC (OP3 == OP3_XORCC) #define XORCC (OP3 == OP3_XORCC)
#define ANDNCC (OP3 == OP3_ANDNCC) #define ANDNCC (OP3 == OP3_ANDNCC)
#define ORNCC (OP3 == OP3_ORNCC) #define ORNCC (OP3 == OP3_ORNCC)
#define XNORCC (OP3 == OP3_XNORCC) #define XNORCC (OP3 == OP3_XNORCC)
#define SLL (OP3 == OP3_SLL) #define SLL (OP3 == OP3_SLL)
#define SRL (OP3 == OP3_SRL) #define SRL (OP3 == OP3_SRL)
#define SRA (OP3 == OP3_SRA) #define SRA (OP3 == OP3_SRA)
#define RDASR (OP3 == OP3_RDASR) #define RDASR (OP3 == OP3_RDASR)
#define RDPSR (OP3 == OP3_RDPSR) #define RDPSR (OP3 == OP3_RDPSR)
#define RDWIM (OP3 == OP3_RDWIM) #define RDWIM (OP3 == OP3_RDWIM)
#define RDTBR (OP3 == OP3_RDTBR) #define RDTBR (OP3 == OP3_RDTBR)
#define WRASR (OP3 == OP3_WRASR) #define WRASR (OP3 == OP3_WRASR)
#define WRPSR (OP3 == OP3_WRPSR) #define WRPSR (OP3 == OP3_WRPSR)
#define WRWIM (OP3 == OP3_WRWIM) #define WRWIM (OP3 == OP3_WRWIM)
#define WRTBR (OP3 == OP3_WRTBR) #define WRTBR (OP3 == OP3_WRTBR)
#define SAVE (OP3 == OP3_SAVE) #define SAVE (OP3 == OP3_SAVE)
#define RESTORE (OP3 == OP3_RESTORE) #define RESTORE (OP3 == OP3_RESTORE)
#define UMUL (OP3 == OP3_UMUL) #define UMUL (OP3 == OP3_UMUL)
#define UMULCC (OP3 == OP3_UMULCC) #define UMULCC (OP3 == OP3_UMULCC)
#define SMUL (OP3 == OP3_SMUL) #define SMUL (OP3 == OP3_SMUL)
#define SMULCC (OP3 == OP3_SMULCC) #define SMULCC (OP3 == OP3_SMULCC)
#define UDIV (OP3 == OP3_UDIV) #define UDIV (OP3 == OP3_UDIV)
#define UDIVCC (OP3 == OP3_UDIVCC) #define UDIVCC (OP3 == OP3_UDIVCC)
#define SDIV (OP3 == OP3_SDIV) #define SDIV (OP3 == OP3_SDIV)
#define SDIVCC (OP3 == OP3_SDIVCC) #define SDIVCC (OP3 == OP3_SDIVCC)
#endif // __MB86901_DEFS_H__ #endif // __MB86901_DEFS_H__

View File

@ -45,7 +45,7 @@ public:
// construction/destruction // construction/destruction
tms32010_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); tms32010_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
tms32010_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source, int addr_mask); tms32010_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source, int addr_mask);
// static configuration helpers // static configuration helpers
template<class _Object> static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast<tms32010_device &>(device).m_bio_in.set_callback(object); } template<class _Object> static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast<tms32010_device &>(device).m_bio_in.set_callback(object); }
@ -78,7 +78,7 @@ private:
address_space_config m_program_config; address_space_config m_program_config;
address_space_config m_data_config; address_space_config m_data_config;
address_space_config m_io_config; address_space_config m_io_config;
devcb_read_line m_bio_in; devcb_read_line m_bio_in;
typedef void ( tms32010_device::*opcode_func ) (); typedef void ( tms32010_device::*opcode_func ) ();

View File

@ -31,7 +31,7 @@
#define MCFG_TMS32025_HOLD_ACK_OUT_CB(_devcb) \ #define MCFG_TMS32025_HOLD_ACK_OUT_CB(_devcb) \
devcb = &tms32025_device::set_hold_ack_out_cb(*device, DEVCB_##_devcb); /* HOLD Acknowledge output */ devcb = &tms32025_device::set_hold_ack_out_cb(*device, DEVCB_##_devcb); /* HOLD Acknowledge output */
#define MCFG_TMS32025_XF_OUT_CB(_devcb) \ #define MCFG_TMS32025_XF_OUT_CB(_devcb) \
devcb = &tms32025_device::set_xf_out_cb(*device, DEVCB_##_devcb); /* XF output */ devcb = &tms32025_device::set_xf_out_cb(*device, DEVCB_##_devcb); /* XF output */
@ -41,7 +41,7 @@
#define MCFG_TMS32025_DX_OUT_CB(_devcb) \ #define MCFG_TMS32025_DX_OUT_CB(_devcb) \
devcb = &tms32025_device::set_dx_out_cb(*device, DEVCB_##_devcb); /* Serial Data Transmit output */ devcb = &tms32025_device::set_dx_out_cb(*device, DEVCB_##_devcb); /* Serial Data Transmit output */
/**************************************************************************** /****************************************************************************
* Interrupt constants * Interrupt constants
*/ */
@ -83,7 +83,7 @@ public:
// construction/destruction // construction/destruction
tms32025_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); tms32025_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
tms32025_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); tms32025_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
// static configuration helpers // static configuration helpers
template<class _Object> static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast<tms32025_device &>(device).m_bio_in.set_callback(object); } template<class _Object> static devcb_base & set_bio_in_cb(device_t &device, _Object object) { return downcast<tms32025_device &>(device).m_bio_in.set_callback(object); }
template<class _Object> static devcb_base & set_hold_in_cb(device_t &device, _Object object) { return downcast<tms32025_device &>(device).m_hold_in.set_callback(object); } template<class _Object> static devcb_base & set_hold_in_cb(device_t &device, _Object object) { return downcast<tms32025_device &>(device).m_hold_in.set_callback(object); }

View File

@ -359,7 +359,7 @@ void cassette_image_device::call_unload()
//------------------------------------------------- //-------------------------------------------------
// display a small tape animation, with the // display a small tape animation, with the
// current position in the tape image // current position in the tape image
//------------------------------------------------- //-------------------------------------------------
std::string cassette_image_device::call_display() std::string cassette_image_device::call_display()
@ -389,10 +389,10 @@ std::string cassette_image_device::call_display()
? u8"\u25BA" ? u8"\u25BA"
: u8"\u25CF"; : u8"\u25CF";
// Since you can have anything in a BDF file, we will use crude ascii characters instead // Since you can have anything in a BDF file, we will use crude ascii characters instead
result = string_format("%s %s %02d:%02d (%04d) [%02d:%02d (%04d)]", result = string_format("%s %s %02d:%02d (%04d) [%02d:%02d (%04d)]",
shapes[n], // animation shapes[n], // animation
status_icon, // play or record status_icon, // play or record
((int)position / 60), ((int)position / 60),
((int)position % 60), ((int)position % 60),
(int)position, (int)position,

View File

@ -46,7 +46,7 @@ const device_type PIT68230 = &device_creator<pit68230_device>;
//------------------------------------------------- //-------------------------------------------------
pit68230_device::pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source) pit68230_device::pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source)
: device_t (mconfig, type, name, tag, owner, clock, shortname, source), : device_t (mconfig, type, name, tag, owner, clock, shortname, source),
device_execute_interface (mconfig, *this) device_execute_interface (mconfig, *this)
, m_icount (0) , m_icount (0)
, m_pa_out_cb(*this) , m_pa_out_cb(*this)
, m_pa_in_cb(*this) , m_pa_in_cb(*this)
@ -70,9 +70,9 @@ pit68230_device::pit68230_device(const machine_config &mconfig, device_type type
, m_psr(0) , m_psr(0)
, m_tcr(0) , m_tcr(0)
, m_cpr(0) , m_cpr(0)
// , m_cprh(0) // , m_cprh(0)
// , m_cprm(0) // , m_cprm(0)
// , m_cprl(0) // , m_cprl(0)
, m_cntr(0) , m_cntr(0)
{ {
} }
@ -80,7 +80,7 @@ pit68230_device::pit68230_device(const machine_config &mconfig, device_type type
pit68230_device::pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) pit68230_device::pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t (mconfig, PIT68230, "PIT68230", tag, owner, clock, "pit68230", __FILE__), : device_t (mconfig, PIT68230, "PIT68230", tag, owner, clock, "pit68230", __FILE__),
device_execute_interface (mconfig, *this) device_execute_interface (mconfig, *this)
, m_icount (0) , m_icount (0)
, m_pa_out_cb (*this) , m_pa_out_cb (*this)
, m_pa_in_cb(*this) , m_pa_in_cb(*this)
@ -104,9 +104,9 @@ pit68230_device::pit68230_device(const machine_config &mconfig, const char *tag,
, m_psr(0) , m_psr(0)
, m_tcr(0) , m_tcr(0)
, m_cpr(0) , m_cpr(0)
// , m_cprh(0) // , m_cprh(0)
// , m_cprm(0) // , m_cprm(0)
// , m_cprl(0) // , m_cprl(0)
, m_cntr(0) , m_cntr(0)
{ {
} }
@ -263,70 +263,70 @@ void pit68230_device::wr_pitreg_psr(UINT8 data)
/* The timer control register (TCR) determines all operations of the timer. Bits 7-5 configure the PC3/TOUT /* The timer control register (TCR) determines all operations of the timer. Bits 7-5 configure the PC3/TOUT
and PC7/TIACKpins for port C, square wave, vectored interrupt, or autovectored interrupt operation bit and PC7/TIACKpins for port C, square wave, vectored interrupt, or autovectored interrupt operation bit
4 specifies whether the counter receives data from the counter preload register or continues counting when 4 specifies whether the counter receives data from the counter preload register or continues counting when
zero detect is reached ; bit 3 is unused and is read as zero bits 2 and 1 configure the path from the CLK zero detect is reached ; bit 3 is unused and is read as zero bits 2 and 1 configure the path from the CLK
and TINpins to the counter controller ; and bit 0 ena-bles the timer. This register is readable and writable and TINpins to the counter controller ; and bit 0 ena-bles the timer. This register is readable and writable
at all times. All bits are cleared to zero when the RESET pin is asserted. at all times. All bits are cleared to zero when the RESET pin is asserted.
TCR bits TCR bits
7 6 5 TOUT/TIACK Control 7 6 5 TOUT/TIACK Control
---------------------------- ----------------------------
0 0 X The dual-function pins PC3/TOUT and PC7/TIACK carry the port C function. 0 0 X The dual-function pins PC3/TOUT and PC7/TIACK carry the port C function.
0 1 X The dual-function pinPC3/TOUT carries the TOUT function. In the run state it is used as a squarewave 0 1 X The dual-function pinPC3/TOUT carries the TOUT function. In the run state it is used as a squarewave
output and is toggled on zero detect. The TOUT pin is high while in the halt state. The dualfunction output and is toggled on zero detect. The TOUT pin is high while in the halt state. The dualfunction
pin PC7/TIACK carries the PC7 function. pin PC7/TIACK carries the PC7 function.
1 0 0 The dual-function pin PC3/TOUT carries the TOUT function. In the run or halt state it is used as 1 0 0 The dual-function pin PC3/TOUT carries the TOUT function. In the run or halt state it is used as
a timer interrupt request output. The timer interrupt is disabled, thus, the pin is always three stated. a timer interrupt request output. The timer interrupt is disabled, thus, the pin is always three stated.
The dual-function pin PC7/TIACK carries the TIACK function ; however, since interrupt request is The dual-function pin PC7/TIACK carries the TIACK function ; however, since interrupt request is
negated, the PI/T produces no response (i.e., no data or DTACK) to an asserted TIACK. Refer to negated, the PI/T produces no response (i.e., no data or DTACK) to an asserted TIACK. Refer to
5.1.3. Timer Interrupt Acknowledge Cycles for details. 5.1.3. Timer Interrupt Acknowledge Cycles for details.
1 0 1 The dual-function pin PC3/TOUT carries the TOUTfunction and is used as a timer interrupt request 1 0 1 The dual-function pin PC3/TOUT carries the TOUTfunction and is used as a timer interrupt request
output. The timer interrupt is enabled ; thus, the pin is low when the timer ZDS status bit is one. output. The timer interrupt is enabled ; thus, the pin is low when the timer ZDS status bit is one.
The dual-function pin PC7/TIACK carries the TIACK function and is used as a timer interrupt acknowledge The dual-function pin PC7/TIACK carries the TIACK function and is used as a timer interrupt acknowledge
input. Refer to the5.1.3. Timer InterruptAcknowledge Cycles fordetails. Thiscombination input. Refer to the5.1.3. Timer InterruptAcknowledge Cycles fordetails. Thiscombination
supports vectored timer interrupts. supports vectored timer interrupts.
1 1 0 The dual-function pin PC3/TOUT function. In the run or halt state it is used as a timer interrupt 1 1 0 The dual-function pin PC3/TOUT function. In the run or halt state it is used as a timer interrupt
request output. The timer interrupt is disabled ; thus, the pin is always three-stated. The dual-function request output. The timer interrupt is disabled ; thus, the pin is always three-stated. The dual-function
pin PC7/TIACK carries the PC7 function. pin PC7/TIACK carries the PC7 function.
1 1 1 The dual-function pin PC3/TOUT carries the TOUTfunction and is used as a timer interrupt request 1 1 1 The dual-function pin PC3/TOUT carries the TOUTfunction and is used as a timer interrupt request
output. The timer interrupt is enabled ; thus, the pin is low when the timer ZDS status bit is one. output. The timer interrupt is enabled ; thus, the pin is low when the timer ZDS status bit is one.
The dual-function pin PC7/TIACK carries the PC7 function and autovectored interrupts are supported. The dual-function pin PC7/TIACK carries the PC7 function and autovectored interrupts are supported.
TCR bit 4 - Zero Detect Control TCR bit 4 - Zero Detect Control
0 The counter is loaded fromthe counter preload register on the first clock to the 24-bit counter after 0 The counter is loaded fromthe counter preload register on the first clock to the 24-bit counter after
zero detect, then resumes counting. zero detect, then resumes counting.
1 The counter rolls over on zero detect, then continues counting. 1 The counter rolls over on zero detect, then continues counting.
TCR bit 3 - Unused and is always read as zero. TCR bit 3 - Unused and is always read as zero.
TCR bits TCR bits
2 1 Clock Control 2 1 Clock Control
0 0 The PC2/TIN input pin carries the port C function, and the CLK pin and prescaler are used. The 0 0 The PC2/TIN input pin carries the port C function, and the CLK pin and prescaler are used. The
prescaler is decremented on the falling transition of the CLKpin ; the 24-bit counter is decremented, prescaler is decremented on the falling transition of the CLKpin ; the 24-bit counter is decremented,
rolls over, or is loaded from the counter preload registers when the prescaler rolls over from $OO rolls over, or is loaded from the counter preload registers when the prescaler rolls over from $OO
to $1F. The timer enable bit determines whether the timer is in the run or halt state. to $1F. The timer enable bit determines whether the timer is in the run or halt state.
0 1 The PC2/TIN pin serves as a timer input, and the CLK pin and prescaler are used. The prescaler 0 1 The PC2/TIN pin serves as a timer input, and the CLK pin and prescaler are used. The prescaler
is decremented on the falling transition of the CLK pin ; the 24-bit counter is decremented, rolls is decremented on the falling transition of the CLK pin ; the 24-bit counter is decremented, rolls
over, or is loaded from the counter preload registers when the prescaler rolls over from $00 to $1F. over, or is loaded from the counter preload registers when the prescaler rolls over from $00 to $1F.
The timer is in the run state when the timer enable bit is one and the TIN pin is high ; otherwise, The timer is in the run state when the timer enable bit is one and the TIN pin is high ; otherwise,
the timer is in the halt state. the timer is in the halt state.
1 0 The PC2/TIN pin serves as a timer input and the prescaler is used. The prescaler is decremented 1 0 The PC2/TIN pin serves as a timer input and the prescaler is used. The prescaler is decremented
following the rising transition of the TIN pin after being synchronized with the internal clock. The following the rising transition of the TIN pin after being synchronized with the internal clock. The
24-bit counter is decremented, rolls over, or is loaded from the counter preload registers when the 24-bit counter is decremented, rolls over, or is loaded from the counter preload registers when the
prescaler rolls over from $00 to $1F. The timer enable bit determines whether the timer is in the prescaler rolls over from $00 to $1F. The timer enable bit determines whether the timer is in the
run or halt state. run or halt state.
1 1 The PC2/TIN pin serves as a timer input and the prescaler is not used. The 24-bit counter is decremented, 1 1 The PC2/TIN pin serves as a timer input and the prescaler is not used. The 24-bit counter is decremented,
rolls over, or is loaded from the counter preload registers following the rising edge of rolls over, or is loaded from the counter preload registers following the rising edge of
the TIN pin after being synchronized with the internal clock. The timer enable bit determines whether the TIN pin after being synchronized with the internal clock. The timer enable bit determines whether
the timer is in the run or halt state. the timer is in the run or halt state.
TCR bit 0 - Timer Enable TCR bit 0 - Timer Enable
0 Disabled 0 Disabled
1 Enabled 1 Enabled
*/ */
void pit68230_device::wr_pitreg_tcr(UINT8 data) void pit68230_device::wr_pitreg_tcr(UINT8 data)
{ {
LOG(("%s(%02x) \"%s\": %s - %02x Timer %s\n", LOG(("%s(%02x) \"%s\": %s - %02x Timer %s\n",
FUNCNAME, data, m_owner->tag(), FUNCNAME, data, data & REG_TCR_ENABLE ? "enabled" : "disabled")); FUNCNAME, data, m_owner->tag(), FUNCNAME, data, data & REG_TCR_ENABLE ? "enabled" : "disabled"));
m_tcr = data; m_tcr = data;
} }
@ -335,7 +335,7 @@ void pit68230_device::wr_pitreg_cprh(UINT8 data)
LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data)); LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data));
m_cpr &= ~0xff0000; m_cpr &= ~0xff0000;
m_cpr |= ((data << 16) & 0xff0000); m_cpr |= ((data << 16) & 0xff0000);
// m_cprh = data; // m_cprh = data;
} }
void pit68230_device::wr_pitreg_cprm(UINT8 data) void pit68230_device::wr_pitreg_cprm(UINT8 data)
@ -343,7 +343,7 @@ void pit68230_device::wr_pitreg_cprm(UINT8 data)
LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data)); LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data));
m_cpr &= ~0x00ff00; m_cpr &= ~0x00ff00;
m_cpr |= ((data << 8) & 0x00ff00); m_cpr |= ((data << 8) & 0x00ff00);
// m_cprm = data; // m_cprm = data;
} }
void pit68230_device::wr_pitreg_cprl(UINT8 data) void pit68230_device::wr_pitreg_cprl(UINT8 data)
@ -351,28 +351,28 @@ void pit68230_device::wr_pitreg_cprl(UINT8 data)
LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data)); LOG(("%s(%02x) \"%s\": %s - %02x\n", FUNCNAME, data, m_owner->tag(), FUNCNAME, data));
m_cpr &= ~0x0000ff; m_cpr &= ~0x0000ff;
m_cpr |= ((data << 0) & 0x0000ff); m_cpr |= ((data << 0) & 0x0000ff);
// m_cprl = data; // m_cprl = data;
} }
WRITE8_MEMBER (pit68230_device::write) WRITE8_MEMBER (pit68230_device::write)
{ {
LOG(("%s %s \n",tag(), FUNCNAME)); LOG(("%s %s \n",tag(), FUNCNAME));
switch (offset) { switch (offset) {
case PIT_68230_PGCR: wr_pitreg_pgcr(data); break; case PIT_68230_PGCR: wr_pitreg_pgcr(data); break;
case PIT_68230_PSRR: wr_pitreg_psrr(data); break; case PIT_68230_PSRR: wr_pitreg_psrr(data); break;
case PIT_68230_PADDR: wr_pitreg_paddr(data); break; case PIT_68230_PADDR: wr_pitreg_paddr(data); break;
case PIT_68230_PBDDR: wr_pitreg_pbddr(data); break; case PIT_68230_PBDDR: wr_pitreg_pbddr(data); break;
case PIT_68230_PCDDR: wr_pitreg_pcddr(data); break; case PIT_68230_PCDDR: wr_pitreg_pcddr(data); break;
case PIT_68230_PACR: wr_pitreg_pacr(data); break; case PIT_68230_PACR: wr_pitreg_pacr(data); break;
case PIT_68230_PBCR: wr_pitreg_pbcr(data); break; case PIT_68230_PBCR: wr_pitreg_pbcr(data); break;
case PIT_68230_PADR: wr_pitreg_padr(data); break; case PIT_68230_PADR: wr_pitreg_padr(data); break;
case PIT_68230_PAAR: break; // RO register so ignored case PIT_68230_PAAR: break; // RO register so ignored
case PIT_68230_PBAR: break; // RO register so ignored case PIT_68230_PBAR: break; // RO register so ignored
case PIT_68230_PSR: wr_pitreg_psr(data); break; case PIT_68230_PSR: wr_pitreg_psr(data); break;
case PIT_68230_TCR: wr_pitreg_tcr(data); break; case PIT_68230_TCR: wr_pitreg_tcr(data); break;
case PIT_68230_CPRH: wr_pitreg_cprh(data); break; case PIT_68230_CPRH: wr_pitreg_cprh(data); break;
case PIT_68230_CPRM: wr_pitreg_cprm(data); break; case PIT_68230_CPRM: wr_pitreg_cprm(data); break;
case PIT_68230_CPRL: wr_pitreg_cprl(data); break; case PIT_68230_CPRL: wr_pitreg_cprl(data); break;
default: default:
LOG (("Unhandled Write of %02x to register %02x", data, offset)); LOG (("Unhandled Write of %02x to register %02x", data, offset));
} }
@ -458,22 +458,22 @@ UINT8 pit68230_device::rr_pitreg_pbdr()
return m_pbdr; return m_pbdr;
} }
/* The port A alternate register is an alternate register for reading the port A pins. /* The port A alternate register is an alternate register for reading the port A pins.
It is a read-only address and no other PI/T condition is affected. In all modes, It is a read-only address and no other PI/T condition is affected. In all modes,
the instantaneous pin level is read and no input latching is performed except at the the instantaneous pin level is read and no input latching is performed except at the
data bus interface. Writes to this address are answered with DTACK, but the data is ignored.*/ data bus interface. Writes to this address are answered with DTACK, but the data is ignored.*/
UINT8 pit68230_device::rr_pitreg_paar() UINT8 pit68230_device::rr_pitreg_paar()
{ {
// NOTE: no side effect emulated so using ..padr // NOTE: no side effect emulated so using ..padr
UINT8 ret; UINT8 ret;
ret = m_pa_in_cb(); ret = m_pa_in_cb();
LOGR(("%s %s <- %02x\n",tag(), FUNCNAME, ret)); LOGR(("%s %s <- %02x\n",tag(), FUNCNAME, ret));
return ret; return ret;
} }
/* The port B alternate register is an alternate register for reading the port B pins. /* The port B alternate register is an alternate register for reading the port B pins.
It is a read-only address and no other PI/T condition is affected. In all modes, It is a read-only address and no other PI/T condition is affected. In all modes,
the instantaneous pin level is read and no input latching is performed except at the the instantaneous pin level is read and no input latching is performed except at the
data bus interface.Writes to this address are answered with DTACK, but the data is ignored.*/ data bus interface.Writes to this address are answered with DTACK, but the data is ignored.*/
UINT8 pit68230_device::rr_pitreg_pbar() UINT8 pit68230_device::rr_pitreg_pbar()
{ {
@ -518,21 +518,21 @@ READ8_MEMBER (pit68230_device::read){
UINT8 data; UINT8 data;
switch (offset) { switch (offset) {
case PIT_68230_PGCR: data = rr_pitreg_pgcr(); break; case PIT_68230_PGCR: data = rr_pitreg_pgcr(); break;
case PIT_68230_PSRR: data = rr_pitreg_psrr(); break; case PIT_68230_PSRR: data = rr_pitreg_psrr(); break;
case PIT_68230_PADDR: data = rr_pitreg_paddr(); break; case PIT_68230_PADDR: data = rr_pitreg_paddr(); break;
case PIT_68230_PBDDR: data = rr_pitreg_pbddr(); break; case PIT_68230_PBDDR: data = rr_pitreg_pbddr(); break;
case PIT_68230_PCDDR: data = rr_pitreg_pcddr(); break; case PIT_68230_PCDDR: data = rr_pitreg_pcddr(); break;
case PIT_68230_PACR: data = rr_pitreg_pacr(); break; case PIT_68230_PACR: data = rr_pitreg_pacr(); break;
case PIT_68230_PBCR: data = rr_pitreg_pbcr(); break; case PIT_68230_PBCR: data = rr_pitreg_pbcr(); break;
case PIT_68230_PADR: data = rr_pitreg_padr(); break; case PIT_68230_PADR: data = rr_pitreg_padr(); break;
case PIT_68230_PBDR: data = rr_pitreg_pbdr(); break; case PIT_68230_PBDR: data = rr_pitreg_pbdr(); break;
case PIT_68230_PAAR: data = rr_pitreg_paar(); break; case PIT_68230_PAAR: data = rr_pitreg_paar(); break;
case PIT_68230_PBAR: data = rr_pitreg_pbar(); break; case PIT_68230_PBAR: data = rr_pitreg_pbar(); break;
case PIT_68230_PSR: data = rr_pitreg_psr(); break; case PIT_68230_PSR: data = rr_pitreg_psr(); break;
case PIT_68230_CNTRH: data = rr_pitreg_cntrh(); break; case PIT_68230_CNTRH: data = rr_pitreg_cntrh(); break;
case PIT_68230_CNTRM: data = rr_pitreg_cntrm(); break; case PIT_68230_CNTRM: data = rr_pitreg_cntrm(); break;
case PIT_68230_CNTRL: data = rr_pitreg_cntrl(); break; case PIT_68230_CNTRL: data = rr_pitreg_cntrl(); break;
default: default:
LOG (("Unhandled read register %02x\n", offset)); LOG (("Unhandled read register %02x\n", offset));
data = 0; data = 0;

View File

@ -105,7 +105,7 @@
//************************************************************************** //**************************************************************************
class pit68230_device : public device_t, public device_execute_interface class pit68230_device : public device_t, public device_execute_interface
{ {
public: public:
// construction/destruction // construction/destruction
pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source); pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source);
pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@ -161,7 +161,7 @@ class pit68230_device : public device_t, public device_execute_interface
protected: protected:
enum { enum {
REG_TCR_ENABLE = 0x01 REG_TCR_ENABLE = 0x01
}; };
// device-level overrides // device-level overrides
@ -171,16 +171,16 @@ protected:
virtual void execute_run () override; virtual void execute_run () override;
int m_icount; int m_icount;
devcb_write8 m_pa_out_cb; devcb_write8 m_pa_out_cb;
devcb_read8 m_pa_in_cb; devcb_read8 m_pa_in_cb;
devcb_write8 m_pb_out_cb; devcb_write8 m_pb_out_cb;
devcb_read8 m_pb_in_cb; devcb_read8 m_pb_in_cb;
devcb_write8 m_pc_out_cb; devcb_write8 m_pc_out_cb;
devcb_read8 m_pc_in_cb; devcb_read8 m_pc_in_cb;
devcb_write_line m_h1_out_cb; devcb_write_line m_h1_out_cb;
devcb_write_line m_h2_out_cb; devcb_write_line m_h2_out_cb;
devcb_write_line m_h3_out_cb; devcb_write_line m_h3_out_cb;
devcb_write_line m_h4_out_cb; devcb_write_line m_h4_out_cb;
// peripheral ports // peripheral ports
UINT8 m_pgcr; // Port General Control register UINT8 m_pgcr; // Port General Control register
@ -193,12 +193,12 @@ protected:
UINT8 m_padr; // Port A Data register UINT8 m_padr; // Port A Data register
UINT8 m_pbdr; // Port B Data register UINT8 m_pbdr; // Port B Data register
UINT8 m_psr; // Port Status Register UINT8 m_psr; // Port Status Register
UINT8 m_tcr; // Timer Control Register UINT8 m_tcr; // Timer Control Register
int m_cpr; // Counter Preload Registers (3 x 8 = 24 bits) int m_cpr; // Counter Preload Registers (3 x 8 = 24 bits)
// UINT8 m_cprh; // Counter Preload Register High // UINT8 m_cprh; // Counter Preload Register High
// UINT8 m_cprm; // Counter Preload Register Mid // UINT8 m_cprm; // Counter Preload Register Mid
// UINT8 m_cprl; // Counter Preload Register Low // UINT8 m_cprl; // Counter Preload Register Low
int m_cntr; // - The 24 bit Counter int m_cntr; // - The 24 bit Counter
}; };
// device type definition // device type definition

View File

@ -480,8 +480,8 @@ UINT8 scc8530_t::read_reg(int offset)
switch(offset) switch(offset)
{ {
case 0: /* Channel B (Printer Port) Control */ case 0: /* Channel B (Printer Port) Control */
case 1: /* Channel A (Modem Port) Control */ case 1: /* Channel A (Modem Port) Control */
if (mode == 1) if (mode == 1)
mode = 0; mode = 0;
@ -491,7 +491,7 @@ UINT8 scc8530_t::read_reg(int offset)
result = (offset == 0) ? getbreg() : getareg(); result = (offset == 0) ? getbreg() : getareg();
break; break;
case 2: /* Channel B (Printer Port) Data */ case 2: /* Channel B (Printer Port) Data */
case 3:/* Channel A (Modem Port) Data */ case 3:/* Channel A (Modem Port) Data */
result = channel[offset == 2 ? 1 : 0].rxData; result = channel[offset == 2 ? 1 : 0].rxData;
break; break;
@ -527,8 +527,8 @@ void scc8530_t::write_reg(int offset, UINT8 data)
//Chan *pChan; //Chan *pChan;
switch(offset) switch(offset)
{ {
case 0: /* Channel B (Printer Port) Control */ case 0: /* Channel B (Printer Port) Control */
case 1: /* Channel A (Modem Port) Control */ case 1: /* Channel A (Modem Port) Control */
{ {
int chan = ((offset == 2) ? 1 : 0); int chan = ((offset == 2) ? 1 : 0);
if (mode == 0) if (mode == 0)
@ -537,7 +537,7 @@ void scc8530_t::write_reg(int offset, UINT8 data)
{ {
mode = 1; mode = 1;
reg = data & 0x0f; reg = data & 0x0f;
// putbreg(data & 0xf0); // putbreg(data & 0xf0);
} }
else if (data == 0x10) else if (data == 0x10)
{ {
@ -555,8 +555,8 @@ void scc8530_t::write_reg(int offset, UINT8 data)
break; break;
} }
case 2: /* Channel B (Printer Port) Data */ case 2: /* Channel B (Printer Port) Data */
case 3: /* Channel A (Modem Port) Data */ case 3: /* Channel A (Modem Port) Data */
{ {
int chan = ((offset == 2) ? 1 : 0); int chan = ((offset == 2) ? 1 : 0);
if (channel[chan].txEnable) if (channel[chan].txEnable)

View File

@ -44,7 +44,7 @@
// ======================> eeprom_base_device // ======================> eeprom_base_device
class eeprom_base_device : public device_t, class eeprom_base_device : public device_t,
public device_nvram_interface public device_nvram_interface
{ {
protected: protected:
// construction/destruction // construction/destruction

View File

@ -2,12 +2,12 @@
// copyright-holders:Angelo Salese // copyright-holders:Angelo Salese
/*************************************************************************** /***************************************************************************
Sony LDP-1000 laserdisc emulation. Sony LDP-1000 laserdisc emulation.
TODO: TODO:
- Dump BIOSes (seven of them according to docs); - Dump BIOSes (seven of them according to docs);
- Serial interface, needs BIOS dump; - Serial interface, needs BIOS dump;
- Hookup with Sony SMC-70 / SMC-777; - Hookup with Sony SMC-70 / SMC-777;
***************************************************************************/ ***************************************************************************/
@ -71,7 +71,7 @@ void sony_ldp1000_device::device_start()
void sony_ldp1000_device::device_reset() void sony_ldp1000_device::device_reset()
{ {
laserdisc_device::device_reset(); laserdisc_device::device_reset();
for(int i=0;i<0x10;i++) for(int i=0;i<0x10;i++)
m_internal_bcd[i] = 0; m_internal_bcd[i] = 0;
@ -152,12 +152,12 @@ UINT32 sony_ldp1000_device::bcd_to_raw()
void sony_ldp1000_device::exec_enter_cmd() void sony_ldp1000_device::exec_enter_cmd()
{ {
//const UINT32 saved_frame = bcd_to_raw(); //const UINT32 saved_frame = bcd_to_raw();
switch(m_player_state) switch(m_player_state)
{ {
case player_standby: case player_standby:
throw emu_fatalerror("Unimplemented standby state detected"); throw emu_fatalerror("Unimplemented standby state detected");
case player_search: case player_search:
// TODO: move to timer // TODO: move to timer
//advance_slider(1); //advance_slider(1);
@ -187,18 +187,18 @@ WRITE8_MEMBER( sony_ldp1000_device::command_w )
exec_enter_cmd(); exec_enter_cmd();
m_status = stat_ack; m_status = stat_ack;
break; break;
case 0x43: // search case 0x43: // search
set_new_player_state(player_search); set_new_player_state(player_search);
m_status = stat_ack; m_status = stat_ack;
break; break;
/* /*
audio channels absolute enable / disable audio channels absolute enable / disable
---- --x- select channel ---- --x- select channel
---- ---x enable channel (active low) ---- ---x enable channel (active low)
*/ */
case 0x46: case 0x46:
case 0x47: case 0x47:
case 0x48: case 0x48:
case 0x49: case 0x49:

View File

@ -2,7 +2,7 @@
// copyright-holders:Angelo Salese // copyright-holders:Angelo Salese
/*************************************************************************** /***************************************************************************
Sony LDP-1000 laserdisc emulation. Sony LDP-1000 laserdisc emulation.
***************************************************************************/ ***************************************************************************/
@ -46,27 +46,27 @@ protected:
virtual void device_start() override; virtual void device_start() override;
virtual void device_reset() override; virtual void device_reset() override;
virtual const rom_entry *device_rom_region() const override; virtual const rom_entry *device_rom_region() const override;
virtual void player_vsync(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override; virtual void player_vsync(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override;
virtual INT32 player_update(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override; virtual INT32 player_update(const vbi_metadata &vbi, int fieldnum, const attotime &curtime) override;
virtual void player_overlay(bitmap_yuy16 &bitmap) override { } virtual void player_overlay(bitmap_yuy16 &bitmap) override { }
enum ldp1000_status { enum ldp1000_status {
stat_undef = 0x00, stat_undef = 0x00,
stat_completion = 0x01, stat_completion = 0x01,
stat_error = 0x02, stat_error = 0x02,
stat_pgm_end = 0x04, stat_pgm_end = 0x04,
stat_not_target = 0x05, stat_not_target = 0x05,
stat_no_frame = 0x06, stat_no_frame = 0x06,
stat_ack = 0x0a, stat_ack = 0x0a,
stat_nak = 0x0b stat_nak = 0x0b
}; };
enum ldp1000_player_state { enum ldp1000_player_state {
player_standby = 0, player_standby = 0,
player_search player_search
}; };
private: private:
UINT8 m_command; UINT8 m_command;
ldp1000_status m_status; ldp1000_status m_status;
@ -79,7 +79,7 @@ private:
void exec_enter_cmd(); void exec_enter_cmd();
UINT8 m_internal_bcd[0x10]; UINT8 m_internal_bcd[0x10];
UINT8 m_index_state; UINT8 m_index_state;
}; };

View File

@ -176,7 +176,7 @@ void pioneer_ldv1000_device::device_start()
// allocate timers // allocate timers
m_multitimer = timer_alloc(TID_MULTIJUMP); m_multitimer = timer_alloc(TID_MULTIJUMP);
m_command_strobe_cb.resolve_safe(); m_command_strobe_cb.resolve_safe();
} }
@ -653,7 +653,7 @@ WRITE8_MEMBER( pioneer_ldv1000_device::ppi1_portc_w )
// bit 4 sends a command strobe signal to Host CPU // bit 4 sends a command strobe signal to Host CPU
m_command_strobe_cb(bool(data & 0x10)); m_command_strobe_cb(bool(data & 0x10));
// video squelch is controlled by bit 3 // video squelch is controlled by bit 3
set_video_squelch((data & 0x08) == 0); set_video_squelch((data & 0x08) == 0);

View File

@ -129,7 +129,7 @@ protected:
UINT8 m_vbi[7*3]; /* VBI data */ UINT8 m_vbi[7*3]; /* VBI data */
bool m_vbiready; /* VBI ready flag */ bool m_vbiready; /* VBI ready flag */
UINT8 m_vbiindex; /* index within the VBI data */ UINT8 m_vbiindex; /* index within the VBI data */
}; };

View File

@ -132,7 +132,6 @@ WRITE_LINE_MEMBER(ide_pci_device::ide_interrupt)
// PCI646U2 Offset 0x50 is interrupt status // PCI646U2 Offset 0x50 is interrupt status
if (main_id == 0x10950646) { if (main_id == 0x10950646) {
if (state) if (state)
m_config_data[0x10 / 4] |= 0x4; m_config_data[0x10 / 4] |= 0x4;
else else

File diff suppressed because it is too large Load Diff

View File

@ -186,10 +186,10 @@ public:
void do_dusccreg_ictsr_w(UINT8 data); void do_dusccreg_ictsr_w(UINT8 data);
void do_dusccreg_gsr_w(UINT8 data); void do_dusccreg_gsr_w(UINT8 data);
void do_dusccreg_ier_w(UINT8 data); void do_dusccreg_ier_w(UINT8 data);
// void do_dusccreg_rea_w(UINT8 data); // Short cutted non complex feature // void do_dusccreg_rea_w(UINT8 data); // Short cutted non complex feature
void do_dusccreg_ivr_w(UINT8 data); void do_dusccreg_ivr_w(UINT8 data);
void do_dusccreg_icr_w(UINT8 data); void do_dusccreg_icr_w(UINT8 data);
// void do_dusccreg_sea_w(UINT8 data); // Short cutted non complex feature // void do_dusccreg_sea_w(UINT8 data); // Short cutted non complex feature
void do_dusccreg_mrr_w(UINT8 data); void do_dusccreg_mrr_w(UINT8 data);
void do_dusccreg_ier1_w(UINT8 data); void do_dusccreg_ier1_w(UINT8 data);
void do_dusccreg_ier2_w(UINT8 data); void do_dusccreg_ier2_w(UINT8 data);
@ -201,8 +201,8 @@ public:
UINT8 read(offs_t &offset); UINT8 read(offs_t &offset);
void write(UINT8 data, offs_t &offset); void write(UINT8 data, offs_t &offset);
// UINT8 data_read(); // UINT8 data_read();
// void data_write(UINT8 data); // void data_write(UINT8 data);
void receive_data(UINT8 data); void receive_data(UINT8 data);
void m_tx_fifo_rp_step(); void m_tx_fifo_rp_step();
@ -246,11 +246,11 @@ public:
UINT8 m_ictsr; UINT8 m_ictsr;
UINT8 m_gsr; UINT8 m_gsr;
UINT8 m_ier; UINT8 m_ier;
// UINT8 m_rea; // UINT8 m_rea;
UINT8 m_cid; UINT8 m_cid;
UINT8 m_ivr; UINT8 m_ivr;
UINT8 m_icr; UINT8 m_icr;
// UINT8 m_sea; // UINT8 m_sea;
UINT8 m_ivrm; UINT8 m_ivrm;
UINT8 m_mrr; UINT8 m_mrr;
UINT8 m_ier1; UINT8 m_ier1;
@ -261,7 +261,7 @@ public:
UINT8 m_ftlr; UINT8 m_ftlr;
UINT8 m_trmsr; UINT8 m_trmsr;
UINT8 m_telr; UINT8 m_telr;
protected: protected:
enum enum
{ {
@ -273,24 +273,24 @@ protected:
enum enum
{ {
REG_CCR_RESET_TX = 0x00, REG_CCR_RESET_TX = 0x00,
REG_CCR_ENABLE_TX = 0x02, REG_CCR_ENABLE_TX = 0x02,
REG_CCR_DISABLE_TX = 0x03, REG_CCR_DISABLE_TX = 0x03,
REG_CCR_RESET_RX = 0x40, REG_CCR_RESET_RX = 0x40,
REG_CCR_ENABLE_RX = 0x42, REG_CCR_ENABLE_RX = 0x42,
REG_CCR_DISABLE_RX = 0x43 REG_CCR_DISABLE_RX = 0x43
}; };
enum enum
{ {
REG_CMR1_PARITY = 0x20, REG_CMR1_PARITY = 0x20,
REG_CMR1_PMMODE_MASK = 0x18, REG_CMR1_PMMODE_MASK = 0x18,
REG_CMR1_PMMODE_NONE = 0x00, REG_CMR1_PMMODE_NONE = 0x00,
REG_CMR1_PMMODE_RES = 0x01, REG_CMR1_PMMODE_RES = 0x01,
REG_CMR1_PMMODE_PARITY = 0x10, REG_CMR1_PMMODE_PARITY = 0x10,
REG_CMR1_PMMODE_FORCED = 0x11, REG_CMR1_PMMODE_FORCED = 0x11,
REG_CMR1_CPMODE_MASK = 0x07, REG_CMR1_CPMODE_MASK = 0x07,
REG_CMR1_CPMODE_ASYNC = 0x07 REG_CMR1_CPMODE_ASYNC = 0x07
}; };
enum enum
@ -301,129 +301,129 @@ protected:
enum enum
{ {
REG_RPR_DATA_BITS_MASK = 0x03, REG_RPR_DATA_BITS_MASK = 0x03,
REG_RPR_DATA_BITS_5BIT = 0x00, REG_RPR_DATA_BITS_5BIT = 0x00,
REG_RPR_DATA_BITS_6BIT = 0x01, REG_RPR_DATA_BITS_6BIT = 0x01,
REG_RPR_DATA_BITS_7BIT = 0x02, REG_RPR_DATA_BITS_7BIT = 0x02,
REG_RPR_DATA_BITS_8BIT = 0x03, REG_RPR_DATA_BITS_8BIT = 0x03,
REG_RPR_DCD = 0x04, REG_RPR_DCD = 0x04,
REG_RPR_STRIP_PARITY = 0x08, REG_RPR_STRIP_PARITY = 0x08,
REG_RPR_RTS = 0x10 REG_RPR_RTS = 0x10
}; };
enum enum
{ {
REG_TPR_DATA_BITS_MASK = 0x03, REG_TPR_DATA_BITS_MASK = 0x03,
REG_TPR_DATA_BITS_5BIT = 0x00, REG_TPR_DATA_BITS_5BIT = 0x00,
REG_TPR_DATA_BITS_6BIT = 0x01, REG_TPR_DATA_BITS_6BIT = 0x01,
REG_TPR_DATA_BITS_7BIT = 0x02, REG_TPR_DATA_BITS_7BIT = 0x02,
REG_TPR_DATA_BITS_8BIT = 0x03, REG_TPR_DATA_BITS_8BIT = 0x03,
REG_TPR_CTS = 0x04, REG_TPR_CTS = 0x04,
REG_TPR_RTS = 0x08, REG_TPR_RTS = 0x08,
REG_TPR_STOP_BITS_MASK = 0xf0 REG_TPR_STOP_BITS_MASK = 0xf0
}; };
enum enum
{ {
REG_TTR_EXT = 0x80, REG_TTR_EXT = 0x80,
REG_TTR_TXCLK_MASK = 0x70, REG_TTR_TXCLK_MASK = 0x70,
REG_TTR_TXCLK_1XEXT = 0x00, REG_TTR_TXCLK_1XEXT = 0x00,
REG_TTR_TXCLK_16XEXT = 0x10, REG_TTR_TXCLK_16XEXT = 0x10,
REG_TTR_TXCLK_DPLL = 0x20, REG_TTR_TXCLK_DPLL = 0x20,
REG_TTR_TXCLK_BRG = 0x30, REG_TTR_TXCLK_BRG = 0x30,
REG_TTR_TXCLK_2X_OTHER = 0x40, REG_TTR_TXCLK_2X_OTHER = 0x40,
REG_TTR_TXCLK_32X_OTHER = 0x50, REG_TTR_TXCLK_32X_OTHER = 0x50,
REG_TTR_TXCLK_2X_OWN = 0x60, REG_TTR_TXCLK_2X_OWN = 0x60,
REG_TTR_TXCLK_32X_OWN = 0x70, REG_TTR_TXCLK_32X_OWN = 0x70,
REG_TTR_BRG_RATE_MASK = 0x0f, REG_TTR_BRG_RATE_MASK = 0x0f,
}; };
enum enum
{ {
REG_RTR_EXT = 0x80, REG_RTR_EXT = 0x80,
REG_RTR_RXCLK_MASK = 0x70, REG_RTR_RXCLK_MASK = 0x70,
REG_RTR_RXCLK_1XEXT = 0x00, REG_RTR_RXCLK_1XEXT = 0x00,
REG_RTR_RXCLK_16XEXT = 0x10, REG_RTR_RXCLK_16XEXT = 0x10,
REG_RTR_RXCLK_BRG = 0x20, REG_RTR_RXCLK_BRG = 0x20,
REG_RTR_RXCLK_CT = 0x30, REG_RTR_RXCLK_CT = 0x30,
REG_RTR_RXCLK_DPLL_64X_X1 = 0x40, REG_RTR_RXCLK_DPLL_64X_X1 = 0x40,
REG_RTR_RXCLK_DPLL_32X_EXT = 0x50, REG_RTR_RXCLK_DPLL_32X_EXT = 0x50,
REG_RTR_RXCLK_DPLL_32X_BRG = 0x60, REG_RTR_RXCLK_DPLL_32X_BRG = 0x60,
REG_RTR_RXCLK_DPLL_32X_CT = 0x70, REG_RTR_RXCLK_DPLL_32X_CT = 0x70,
REG_RTR_BRG_RATE_MASK = 0x0f, REG_RTR_BRG_RATE_MASK = 0x0f,
}; };
enum enum
{ {
REG_PCR_X2_IDC = 0x80, REG_PCR_X2_IDC = 0x80,
REG_PCR_GP02_RTS = 0x40, REG_PCR_GP02_RTS = 0x40,
REG_PCR_SYNOUT_RTS = 0x20, REG_PCR_SYNOUT_RTS = 0x20,
REG_PCR_RTXC_MASK = 0x18, REG_PCR_RTXC_MASK = 0x18,
REG_PCR_RTXC_INPUT = 0x00, REG_PCR_RTXC_INPUT = 0x00,
REG_PCR_RTXC_CNTR_OUT = 0x08, REG_PCR_RTXC_CNTR_OUT = 0x08,
REG_PCR_RTXC_TXCLK_OUT = 0x10, REG_PCR_RTXC_TXCLK_OUT = 0x10,
REG_PCR_RTXC_RXCLK_OUT = 0x18, REG_PCR_RTXC_RXCLK_OUT = 0x18,
REG_PCR_TRXC_MASK = 0x07, REG_PCR_TRXC_MASK = 0x07,
REG_PCR_TRXC_INPUT = 0x00, REG_PCR_TRXC_INPUT = 0x00,
REG_PCR_TRXC_CRYST_OUT = 0x01, REG_PCR_TRXC_CRYST_OUT = 0x01,
REG_PCR_TRXC_DPLL_OUT = 0x02, REG_PCR_TRXC_DPLL_OUT = 0x02,
REG_PCR_TRXC_CNTR_OUT = 0x03, REG_PCR_TRXC_CNTR_OUT = 0x03,
REG_PCR_TRXC_TXBRG_OUT = 0x04, REG_PCR_TRXC_TXBRG_OUT = 0x04,
REG_PCR_TRXC_RXBRG_OUT = 0x05, REG_PCR_TRXC_RXBRG_OUT = 0x05,
REG_PCR_TRXC_TXCLK_OUT = 0x06, REG_PCR_TRXC_TXCLK_OUT = 0x06,
REG_PCR_TRXC_RXCLK_OUT = 0x07, REG_PCR_TRXC_RXCLK_OUT = 0x07,
}; };
enum enum
{ {
REG_OMR_TXRCL_MASK = 0xe0, REG_OMR_TXRCL_MASK = 0xe0,
REG_OMR_TXRCL_8BIT = 0xe0, REG_OMR_TXRCL_8BIT = 0xe0,
REG_OMR_TXRDY_ACTIVATED = 0x10, REG_OMR_TXRDY_ACTIVATED = 0x10,
REG_OMR_RXRDY_ACTIVATED = 0x08, REG_OMR_RXRDY_ACTIVATED = 0x08,
REG_OMR_GP02 = 0x04, REG_OMR_GP02 = 0x04,
REG_OMR_GP01 = 0x02, REG_OMR_GP01 = 0x02,
REG_OMR_RTS = 0x01, REG_OMR_RTS = 0x01,
}; };
enum enum
{ {
REG_RSR_OVERRUN_ERROR = 0x20, REG_RSR_OVERRUN_ERROR = 0x20,
}; };
enum enum
{ {
REG_ICTSR_DELTA_CTS = 0x10, REG_ICTSR_DELTA_CTS = 0x10,
REG_ICTSR_DCD = 0x08, REG_ICTSR_DCD = 0x08,
REG_ICTSR_CTS = 0x04, REG_ICTSR_CTS = 0x04,
}; };
enum enum
{ {
REG_GSR_CHAN_A_RXREADY = 0x01, REG_GSR_CHAN_A_RXREADY = 0x01,
REG_GSR_CHAN_B_RXREADY = 0x10, REG_GSR_CHAN_B_RXREADY = 0x10,
REG_GSR_CHAN_A_TXREADY = 0x02, REG_GSR_CHAN_A_TXREADY = 0x02,
REG_GSR_CHAN_B_TXREADY = 0x20, REG_GSR_CHAN_B_TXREADY = 0x20,
}; };
// Register offsets, stripped from channel bit 0x20 but including A7 bit // Register offsets, stripped from channel bit 0x20 but including A7 bit
enum enum
{ {
REG_CMR1 = 0x00, REG_CMR1 = 0x00,
REG_CMR2 = 0x01, REG_CMR2 = 0x01,
REG_S1R = 0x02, REG_S1R = 0x02,
REG_S2R = 0x03, REG_S2R = 0x03,
REG_TPR = 0x04, REG_TPR = 0x04,
REG_TTR = 0x05, REG_TTR = 0x05,
REG_RPR = 0x06, REG_RPR = 0x06,
REG_RTR = 0x07, REG_RTR = 0x07,
REG_CTPRH = 0x08, REG_CTPRH = 0x08,
REG_CTPRL = 0x09, REG_CTPRL = 0x09,
REG_CTCR = 0x0a, REG_CTCR = 0x0a,
REG_OMR = 0x0b, REG_OMR = 0x0b,
REG_CTH = 0x0c, REG_CTH = 0x0c,
REG_CTL = 0x0d, REG_CTL = 0x0d,
REG_PCR = 0x0e, REG_PCR = 0x0e,
REG_CCR = 0x0f, REG_CCR = 0x0f,
REG_TXFIFO_0= 0x10, REG_TXFIFO_0= 0x10,
REG_TXFIFO_1= 0x11, REG_TXFIFO_1= 0x11,
REG_TXFIFO_2= 0x12, REG_TXFIFO_2= 0x12,
@ -432,26 +432,26 @@ protected:
REG_RXFIFO_1= 0x15, REG_RXFIFO_1= 0x15,
REG_RXFIFO_2= 0x16, REG_RXFIFO_2= 0x16,
REG_RXFIFO_3= 0x17, REG_RXFIFO_3= 0x17,
REG_RSR = 0x18, REG_RSR = 0x18,
REG_TRSR = 0x19, REG_TRSR = 0x19,
REG_ICTSR = 0x1a, REG_ICTSR = 0x1a,
REG_GSR = 0x1b, REG_GSR = 0x1b,
REG_IER = 0x1c, REG_IER = 0x1c,
REG_REA = 0x1d, REG_REA = 0x1d,
REG_CID = 0x1d, REG_CID = 0x1d,
REG_IVR = 0x1e, REG_IVR = 0x1e,
REG_ICR = 0x1f, REG_ICR = 0x1f,
REG_SEA = 0x1d, REG_SEA = 0x1d,
REG_IVRM = 0x1e, REG_IVRM = 0x1e,
REG_MRR = 0x1f, REG_MRR = 0x1f,
REG_IER1 = 0x42, REG_IER1 = 0x42,
REG_IER2 = 0x43, REG_IER2 = 0x43,
REG_IER3 = 0x45, REG_IER3 = 0x45,
REG_TRCR = 0x47, REG_TRCR = 0x47,
REG_RFLR = 0x4e, REG_RFLR = 0x4e,
REG_FTLR = 0x5c, REG_FTLR = 0x5c,
REG_TRMSR = 0x5e, REG_TRMSR = 0x5e,
REG_TELR = 0x5f, REG_TELR = 0x5f,
}; };
enum enum
@ -471,22 +471,22 @@ protected:
{ {
switch (br) switch (br)
{ {
case 0x00: return 50; break; case 0x00: return 50; break;
case 0x01: return 75; break; case 0x01: return 75; break;
case 0x02: return 110; break; case 0x02: return 110; break;
case 0x03: return 134; break; case 0x03: return 134; break;
case 0x04: return 150; break; case 0x04: return 150; break;
case 0x05: return 200; break; case 0x05: return 200; break;
case 0x06: return 300; break; case 0x06: return 300; break;
case 0x07: return 600; break; case 0x07: return 600; break;
case 0x08: return 1050; break; case 0x08: return 1050; break;
case 0x09: return 1200; break; case 0x09: return 1200; break;
case 0x0a: return 2000; break; case 0x0a: return 2000; break;
case 0x0b: return 2400; break; case 0x0b: return 2400; break;
case 0x0c: return 4800; break; case 0x0c: return 4800; break;
case 0x0d: return 9600; break; case 0x0d: return 9600; break;
case 0x0e: return 19200; break; case 0x0e: return 19200; break;
case 0x0f: return 38400; break; case 0x0f: return 38400; break;
}; };
return 0; return 0;
} }
@ -503,47 +503,47 @@ protected:
/* FIFOs and rx/tx status */ /* FIFOs and rx/tx status */
/* Receiver */ /* Receiver */
UINT8 m_rx_data_fifo[16]; // data FIFO UINT8 m_rx_data_fifo[16]; // data FIFO
UINT8 m_rx_error_fifo[16]; // error FIFO UINT8 m_rx_error_fifo[16]; // error FIFO
int m_rx_fifo_rp; // FIFO read pointer int m_rx_fifo_rp; // FIFO read pointer
int m_rx_fifo_wp; // FIFO write pointer int m_rx_fifo_wp; // FIFO write pointer
int m_rx_fifo_sz; // FIFO size int m_rx_fifo_sz; // FIFO size
UINT8 m_rx_error; // current error UINT8 m_rx_error; // current error
/* Transmitter */ /* Transmitter */
UINT8 m_tx_data_fifo[16]; // data FIFO UINT8 m_tx_data_fifo[16]; // data FIFO
UINT8 m_tx_error_fifo[16]; // error FIFO UINT8 m_tx_error_fifo[16]; // error FIFO
int m_tx_fifo_rp; // FIFO read pointer int m_tx_fifo_rp; // FIFO read pointer
int m_tx_fifo_wp; // FIFO write pointer int m_tx_fifo_wp; // FIFO write pointer
int m_tx_fifo_sz; // FIFO size int m_tx_fifo_sz; // FIFO size
UINT8 m_tx_error; // current error UINT8 m_tx_error; // current error
int m_rx_clock; // receive clock pulse count int m_rx_clock; // receive clock pulse count
int m_rx_first; // first character received int m_rx_first; // first character received
int m_rx_break; // receive break condition int m_rx_break; // receive break condition
// UINT8 m_rx_rr0_latch; // read register 0 latched // UINT8 m_rx_rr0_latch; // read register 0 latched
int m_rxd; int m_rxd;
int m_ri; // ring indicator latch int m_ri; // ring indicator latch
int m_cts; // clear to send latch int m_cts; // clear to send latch
int m_dcd; // data carrier detect latch int m_dcd; // data carrier detect latch
// transmitter state // transmitter state
UINT8 m_tx_data; // transmit data register UINT8 m_tx_data; // transmit data register
int m_tx_clock; // transmit clock pulse count int m_tx_clock; // transmit clock pulse count
int m_dtr; // data terminal ready int m_dtr; // data terminal ready
int m_rts; // request to send int m_rts; // request to send
// synchronous state // synchronous state
UINT16 m_sync; // sync character UINT16 m_sync; // sync character
int m_rcv_mode; int m_rcv_mode;
int m_index; int m_index;
duscc_device *m_uart; duscc_device *m_uart;
// CDUSCC specifics // CDUSCC specifics
int m_a7; // Access additional registers int m_a7; // Access additional registers
}; };
@ -551,7 +551,7 @@ protected:
class duscc_device : public device_t class duscc_device : public device_t
// ,public device_z80daisy_interface // ,public device_z80daisy_interface
{ {
friend class duscc_channel; friend class duscc_channel;
@ -585,7 +585,7 @@ public:
DECLARE_WRITE8_MEMBER( write ); DECLARE_WRITE8_MEMBER( write );
// interrupt acknowledge // interrupt acknowledge
// int m1_r(); // int m1_r();
DECLARE_WRITE_LINE_MEMBER( rxa_w ) { m_chanA->write_rx(state); } DECLARE_WRITE_LINE_MEMBER( rxa_w ) { m_chanA->write_rx(state); }
DECLARE_WRITE_LINE_MEMBER( rxb_w ) { m_chanB->write_rx(state); } DECLARE_WRITE_LINE_MEMBER( rxb_w ) { m_chanB->write_rx(state); }
@ -596,7 +596,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( ria_w ) { m_chanA->ri_w(state); } DECLARE_WRITE_LINE_MEMBER( ria_w ) { m_chanA->ri_w(state); }
DECLARE_WRITE_LINE_MEMBER( rib_w ) { m_chanB->ri_w(state); } DECLARE_WRITE_LINE_MEMBER( rib_w ) { m_chanB->ri_w(state); }
#if 0 #if 0
DECLARE_WRITE_LINE_MEMBER( rxca_w ) { m_chanA->rxc_w(state); } DECLARE_WRITE_LINE_MEMBER( rxca_w ) { m_chanA->rxc_w(state); }
DECLARE_WRITE_LINE_MEMBER( rxcb_w ) { m_chanB->rxc_w(state); } DECLARE_WRITE_LINE_MEMBER( rxcb_w ) { m_chanB->rxc_w(state); }
DECLARE_WRITE_LINE_MEMBER( txca_w ) { m_chanA->txc_w(state); } DECLARE_WRITE_LINE_MEMBER( txca_w ) { m_chanA->txc_w(state); }
DECLARE_WRITE_LINE_MEMBER( txcb_w ) { m_chanB->txc_w(state); } DECLARE_WRITE_LINE_MEMBER( txcb_w ) { m_chanB->txc_w(state); }

View File

@ -536,18 +536,18 @@ protected:
int get_tx_word_length(); int get_tx_word_length();
// receiver state // receiver state
UINT8 m_rx_data_fifo[8]; // receive data FIFO UINT8 m_rx_data_fifo[8]; // receive data FIFO
UINT8 m_rx_error_fifo[8]; // receive error FIFO UINT8 m_rx_error_fifo[8]; // receive error FIFO
UINT8 m_rx_error; // current receive error UINT8 m_rx_error; // current receive error
//int m_rx_fifo // receive FIFO pointer //int m_rx_fifo // receive FIFO pointer
int m_rx_fifo_rp; // receive FIFO read pointer int m_rx_fifo_rp; // receive FIFO read pointer
int m_rx_fifo_wp; // receive FIFO write pointer int m_rx_fifo_wp; // receive FIFO write pointer
int m_rx_fifo_sz; // receive FIFO size int m_rx_fifo_sz; // receive FIFO size
int m_rx_clock; // receive clock pulse count int m_rx_clock; // receive clock pulse count
int m_rx_first; // first character received int m_rx_first; // first character received
int m_rx_break; // receive break condition int m_rx_break; // receive break condition
UINT8 m_rx_rr0_latch; // read register 0 latched UINT8 m_rx_rr0_latch; // read register 0 latched
int m_rxd; int m_rxd;
int m_ri; // ring indicator latch int m_ri; // ring indicator latch

View File

@ -38,7 +38,7 @@ TIMER_CALLBACK_MEMBER(zeus2_device::display_irq_off)
///* if zero, adjust to next frame, otherwise we may get stuck in an infinite loop */ ///* if zero, adjust to next frame, otherwise we may get stuck in an infinite loop */
//if (vblank_period == attotime::zero) //if (vblank_period == attotime::zero)
// vblank_period = m_screen->frame_period(); // vblank_period = m_screen->frame_period();
//vblank_timer->adjust(vblank_period); //vblank_timer->adjust(vblank_period);
vblank_timer->adjust(m_screen->time_until_vblank_start()); vblank_timer->adjust(m_screen->time_until_vblank_start());
//machine().scheduler().timer_set(attotime::from_hz(30000000), timer_expired_delegate(FUNC(zeus2_device::display_irq), this)); //machine().scheduler().timer_set(attotime::from_hz(30000000), timer_expired_delegate(FUNC(zeus2_device::display_irq), this));
@ -66,7 +66,6 @@ TIMER_CALLBACK_MEMBER(zeus2_device::int_timer_callback)
void zeus2_device::device_start() void zeus2_device::device_start()
{ {
/* allocate memory for "wave" RAM */ /* allocate memory for "wave" RAM */
waveram[0] = auto_alloc_array(machine(), UINT32, WAVERAM0_WIDTH * WAVERAM0_HEIGHT * 8/4); waveram[0] = auto_alloc_array(machine(), UINT32, WAVERAM0_WIDTH * WAVERAM0_HEIGHT * 8/4);
//waveram[1] = auto_alloc_array(machine(), UINT32, WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 12/4); //waveram[1] = auto_alloc_array(machine(), UINT32, WAVERAM1_WIDTH * WAVERAM1_HEIGHT * 12/4);
@ -257,7 +256,7 @@ if (machine().input().code_pressed(KEYCODE_DOWN)) { zbase -= 1.0f; popmessage("Z
READ32_MEMBER( zeus2_device::zeus2_r ) READ32_MEMBER( zeus2_device::zeus2_r )
{ {
int logit = (offset != 0x00 && offset != 0x01 && int logit = (offset != 0x00 && offset != 0x01 &&
offset != 0x48 && offset != 0x49 && offset != 0x48 && offset != 0x49 &&
offset != 0x54 && offset != 0x58 && offset != 0x59 && offset != 0x5a); offset != 0x54 && offset != 0x58 && offset != 0x59 && offset != 0x5a);
logit &= LOG_REGS; logit &= LOG_REGS;
@ -457,7 +456,7 @@ void zeus2_device::zeus2_register_update(offs_t offset, UINT32 oldval, int logit
m_zeusbase[0x41] += (m_zeusbase[0x41] & 0x400) << 6; m_zeusbase[0x41] += (m_zeusbase[0x41] & 0x400) << 6;
m_zeusbase[0x41] &= ~0xfc00; m_zeusbase[0x41] &= ~0xfc00;
} }
} }
break; break;
case 0x41: case 0x41:
/* this is the address, except in read mode, where it latches values */ /* this is the address, except in read mode, where it latches values */
@ -541,7 +540,7 @@ void zeus2_device::zeus2_register_update(offs_t offset, UINT32 oldval, int logit
//printf("Clearing buffer: numPixels: %08X addr: %08X reg50: %08X\n", numBytes/4, addr, m_zeusbase[0x50]); //printf("Clearing buffer: numPixels: %08X addr: %08X reg50: %08X\n", numBytes/4, addr, m_zeusbase[0x50]);
memset(&m_frameColor[addr], m_fill_color, numBytes); memset(&m_frameColor[addr], m_fill_color, numBytes);
memset(&m_frameDepth[addr], m_fill_depth, numBytes/2); memset(&m_frameDepth[addr], m_fill_depth, numBytes/2);
} }
else if ((m_zeusbase[0x5e] >> 16) != 0xf208 && !(m_zeusbase[0x5e] & 0xffff)) { else if ((m_zeusbase[0x5e] >> 16) != 0xf208 && !(m_zeusbase[0x5e] & 0xffff)) {
/* If 0x5e==0xf20a0000 (atlantis) or 0xf20d0000 (the grid) then process the read/write now */ /* If 0x5e==0xf20a0000 (atlantis) or 0xf20d0000 (the grid) then process the read/write now */
/* /*
@ -585,16 +584,16 @@ void zeus2_device::zeus2_register_update(offs_t offset, UINT32 oldval, int logit
/* thegrid uses this to write either left or right halves of pixels */ /* thegrid uses this to write either left or right halves of pixels */
//if (m_zeusbase[0x50] == 0x00e90000) //if (m_zeusbase[0x50] == 0x00e90000)
//{ //{
// UINT32 addr = frame_addr_from_reg51(); // UINT32 addr = frame_addr_from_reg51();
// if (m_zeusbase[0x57] & 1) // if (m_zeusbase[0x57] & 1)
// m_frameColor[addr] = m_zeusbase[0x58]; // m_frameColor[addr] = m_zeusbase[0x58];
// if (m_zeusbase[0x57] & 4) // if (m_zeusbase[0x57] & 4)
// m_frameColor[addr+1] = m_zeusbase[0x59]; // m_frameColor[addr+1] = m_zeusbase[0x59];
//} //}
///* make sure we log anything else */ ///* make sure we log anything else */
//else if (logit) //else if (logit)
// logerror("\t[50]=%08X [5E]=%08X\n", m_zeusbase[0x50], m_zeusbase[0x5e]); // logerror("\t[50]=%08X [5E]=%08X\n", m_zeusbase[0x50], m_zeusbase[0x5e]);
break; break;
case 0x58: case 0x58:
@ -1246,39 +1245,39 @@ void zeus2_renderer::zeus2_draw_quad(const UINT32 *databuffer, UINT32 texdata, i
//case 0x95d: /* crusnexo */ //case 0x95d: /* crusnexo */
//case 0xc1d: /* crusnexo */ //case 0xc1d: /* crusnexo */
//case 0xc5d: /* crusnexo */ //case 0xc5d: /* crusnexo */
// extra.texwidth = 256; // extra.texwidth = 256;
// break; // break;
//case 0x18a: // atlantis //case 0x18a: // atlantis
//case 0x059: /* crusnexo */ //case 0x059: /* crusnexo */
//case 0x0d9: /* crusnexo */ //case 0x0d9: /* crusnexo */
//case 0x119: /* crusnexo: license plates */ //case 0x119: /* crusnexo: license plates */
//case 0x159: /* crusnexo */ //case 0x159: /* crusnexo */
// extra.texwidth = 128; // extra.texwidth = 128;
// break; // break;
//case 0x055: /* crusnexo */ //case 0x055: /* crusnexo */
//case 0x145: // atlantis //case 0x145: // atlantis
//case 0x155: /* crusnexo */ //case 0x155: /* crusnexo */
// extra.texwidth = 64; // extra.texwidth = 64;
// break; // break;
//case 0x000: // thegrid guess //case 0x000: // thegrid guess
//case 0x120: // thegrid guess //case 0x120: // thegrid guess
//case 0x140: // atlantis //case 0x140: // atlantis
//case 0x141: // atlantis //case 0x141: // atlantis
// extra.texwidth = 32; // extra.texwidth = 32;
// break; // break;
//default: //default:
//{ //{
// static UINT8 hits[0x10000]; // static UINT8 hits[0x10000];
// if (!hits[(texdata & 0xffff)]) // if (!hits[(texdata & 0xffff)])
// { // {
// hits[(texdata & 0xffff)] = 1; // hits[(texdata & 0xffff)] = 1;
// printf("texMode = %04X\n", (texdata & 0xffff)); // printf("texMode = %04X\n", (texdata & 0xffff));
// } // }
// break; // break;
//} //}
//} //}

View File

@ -94,8 +94,8 @@ UINT64 debugger_commands::cheat_read_extended(const cheat_system *cheatsys, addr
debugger_commands::debugger_commands(running_machine& machine, debugger_cpu& cpu, debugger_console& console) debugger_commands::debugger_commands(running_machine& machine, debugger_cpu& cpu, debugger_console& console)
: m_machine(machine) : m_machine(machine)
, m_cpu(cpu) , m_cpu(cpu)
, m_console(console) , m_console(console)
{ {
m_global_array = auto_alloc_array_clear(m_machine, global_entry, MAX_GLOBALS); m_global_array = auto_alloc_array_clear(m_machine, global_entry, MAX_GLOBALS);
@ -271,7 +271,7 @@ debugger_commands::debugger_commands(running_machine& machine, debugger_cpu& cpu
/* set up the initial debugscript if specified */ /* set up the initial debugscript if specified */
const char* name = m_machine.options().debug_script(); const char* name = m_machine.options().debug_script();
if (name[0] != 0) if (name[0] != 0)
m_cpu.source_script(name); m_cpu.source_script(name);
m_cheat.cpu[0] = m_cheat.cpu[1] = 0; m_cheat.cpu[0] = m_cheat.cpu[1] = 0;
} }
@ -683,7 +683,7 @@ void debugger_commands::execute_tracelog(int ref, int params, const char *param[
/* then do a printf */ /* then do a printf */
char buffer[1024]; char buffer[1024];
if (mini_printf(buffer, param[0], params - 1, &values[1])) if (mini_printf(buffer, param[0], params - 1, &values[1]))
m_cpu.get_visible_cpu()->debug()->trace_printf("%s", buffer); m_cpu.get_visible_cpu()->debug()->trace_printf("%s", buffer);
} }
@ -720,7 +720,7 @@ void debugger_commands::execute_step(int ref, int params, const char *param[])
if (!validate_number_parameter(param[0], &steps)) if (!validate_number_parameter(param[0], &steps))
return; return;
m_cpu.get_visible_cpu()->debug()->single_step(steps); m_cpu.get_visible_cpu()->debug()->single_step(steps);
} }
@ -735,7 +735,7 @@ void debugger_commands::execute_over(int ref, int params, const char *param[])
if (!validate_number_parameter(param[0], &steps)) if (!validate_number_parameter(param[0], &steps))
return; return;
m_cpu.get_visible_cpu()->debug()->single_step_over(steps); m_cpu.get_visible_cpu()->debug()->single_step_over(steps);
} }
@ -745,7 +745,7 @@ void debugger_commands::execute_over(int ref, int params, const char *param[])
void debugger_commands::execute_out(int ref, int params, const char *param[]) void debugger_commands::execute_out(int ref, int params, const char *param[])
{ {
m_cpu.get_visible_cpu()->debug()->single_step_out(); m_cpu.get_visible_cpu()->debug()->single_step_out();
} }
@ -761,7 +761,7 @@ void debugger_commands::execute_go(int ref, int params, const char *param[])
if (!validate_number_parameter(param[0], &addr)) if (!validate_number_parameter(param[0], &addr))
return; return;
m_cpu.get_visible_cpu()->debug()->go(addr); m_cpu.get_visible_cpu()->debug()->go(addr);
} }
@ -772,7 +772,7 @@ void debugger_commands::execute_go(int ref, int params, const char *param[])
void debugger_commands::execute_go_vblank(int ref, int params, const char *param[]) void debugger_commands::execute_go_vblank(int ref, int params, const char *param[])
{ {
m_cpu.get_visible_cpu()->debug()->go_vblank(); m_cpu.get_visible_cpu()->debug()->go_vblank();
} }
@ -788,7 +788,7 @@ void debugger_commands::execute_go_interrupt(int ref, int params, const char *pa
if (!validate_number_parameter(param[0], &irqline)) if (!validate_number_parameter(param[0], &irqline))
return; return;
m_cpu.get_visible_cpu()->debug()->go_interrupt(irqline); m_cpu.get_visible_cpu()->debug()->go_interrupt(irqline);
} }
@ -804,7 +804,7 @@ void debugger_commands::execute_go_time(int ref, int params, const char *param[]
if (!validate_number_parameter(param[0], &milliseconds)) if (!validate_number_parameter(param[0], &milliseconds))
return; return;
m_cpu.get_visible_cpu()->debug()->go_milliseconds(milliseconds); m_cpu.get_visible_cpu()->debug()->go_milliseconds(milliseconds);
} }
@ -814,7 +814,7 @@ void debugger_commands::execute_go_time(int ref, int params, const char *param[]
void debugger_commands::execute_next(int ref, int params, const char *param[]) void debugger_commands::execute_next(int ref, int params, const char *param[])
{ {
m_cpu.get_visible_cpu()->debug()->go_next_device(); m_cpu.get_visible_cpu()->debug()->go_next_device();
} }
@ -1008,8 +1008,8 @@ void debugger_commands::execute_comment_del(int ref, int params, const char *par
/** /**
* @fn void execute_comment_list(running_machine &machine, int ref, int params, const char *param[]) * @fn void execute_comment_list(running_machine &machine, int ref, int params, const char *param[])
* @brief Print current list of comments in debugger * @brief Print current list of comments in debugger
* *
* *
*/ */
void debugger_commands::execute_comment_list(int ref, int params, const char *param[]) void debugger_commands::execute_comment_list(int ref, int params, const char *param[])
@ -1029,7 +1029,7 @@ void debugger_commands::execute_comment_commit(int ref, int params, const char *
execute_comment_add(ref, params, param); execute_comment_add(ref, params, param);
execute_comment_save(ref, params, param); execute_comment_save(ref, params, param);
} }
/*------------------------------------------------- /*-------------------------------------------------
execute_comment - add a comment to a line execute_comment - add a comment to a line
-------------------------------------------------*/ -------------------------------------------------*/
@ -1053,7 +1053,7 @@ void debugger_commands::execute_comment_save(int ref, int params, const char *pa
* @todo add shorthand for color modify and save * @todo add shorthand for color modify and save
* *
*/ */
/*------------------------------------------------- /*-------------------------------------------------
@ -1651,7 +1651,7 @@ void debugger_commands::execute_load(int ref, int params, const char *param[])
/* check if end of file has been reached and stop loading if it has */ /* check if end of file has been reached and stop loading if it has */
if (feof(f)) if (feof(f))
break; break;
m_cpu.write_byte(*space, i, byte, true); m_cpu.write_byte(*space, i, byte, true);
} }
/* close the file */ /* close the file */
fclose(f); fclose(f);
@ -2513,7 +2513,7 @@ void debugger_commands::execute_traceover(int ref, int params, const char *param
void debugger_commands::execute_traceflush(int ref, int params, const char *param[]) void debugger_commands::execute_traceflush(int ref, int params, const char *param[])
{ {
m_cpu.flush_traces(); m_cpu.flush_traces();
} }
@ -2733,7 +2733,7 @@ void debugger_commands::execute_snap(int ref, int params, const char *param[])
void debugger_commands::execute_source(int ref, int params, const char *param[]) void debugger_commands::execute_source(int ref, int params, const char *param[])
{ {
m_cpu.source_script(param[0]); m_cpu.source_script(param[0]);
} }

View File

@ -157,9 +157,9 @@ private:
void execute_input(int ref, int params, const char **param); void execute_input(int ref, int params, const char **param);
void execute_dumpkbd(int ref, int params, const char **param); void execute_dumpkbd(int ref, int params, const char **param);
running_machine& m_machine; running_machine& m_machine;
debugger_cpu& m_cpu; debugger_cpu& m_cpu;
debugger_console& m_console; debugger_console& m_console;
global_entry *m_global_array; global_entry *m_global_array;
cheat_system m_cheat; cheat_system m_cheat;

View File

@ -124,12 +124,12 @@ private:
int maxparams; int maxparams;
}; };
running_machine &m_machine; running_machine &m_machine;
text_buffer *m_console_textbuf; text_buffer *m_console_textbuf;
text_buffer *m_errorlog_textbuf; text_buffer *m_errorlog_textbuf;
debug_command *m_commandlist; debug_command *m_commandlist;
}; };
#endif #endif

View File

@ -36,19 +36,19 @@ const size_t debugger_cpu::NUM_TEMP_VARIABLES = 10;
debugger_cpu::debugger_cpu(running_machine &machine) debugger_cpu::debugger_cpu(running_machine &machine)
: m_machine(machine) : m_machine(machine)
, m_livecpu(nullptr) , m_livecpu(nullptr)
, m_visiblecpu(nullptr) , m_visiblecpu(nullptr)
, m_breakcpu(nullptr) , m_breakcpu(nullptr)
, m_source_file(nullptr) , m_source_file(nullptr)
, m_symtable(nullptr) , m_symtable(nullptr)
, m_execution_state(EXECUTION_STATE_STOPPED) , m_execution_state(EXECUTION_STATE_STOPPED)
, m_bpindex(1) , m_bpindex(1)
, m_wpindex(1) , m_wpindex(1)
, m_rpindex(1) , m_rpindex(1)
, m_wpdata(0) , m_wpdata(0)
, m_wpaddr(0) , m_wpaddr(0)
, m_last_periodic_update_time(0) , m_last_periodic_update_time(0)
, m_comments_loaded(false) , m_comments_loaded(false)
{ {
screen_device *first_screen = m_machine.first_screen(); screen_device *first_screen = m_machine.first_screen();
@ -327,7 +327,7 @@ bool debugger_cpu::comment_load(bool is_inline)
{ {
if(is_inline == false) if(is_inline == false)
m_machine.debugger().console().printf("@%s\n", cputag_name); m_machine.debugger().console().printf("@%s\n", cputag_name);
if (!device->debug()->comment_import(*cpunode,is_inline)) if (!device->debug()->comment_import(*cpunode,is_inline))
throw emu_exception(); throw emu_exception();
} }
@ -392,11 +392,11 @@ UINT8 debugger_cpu::read_byte(address_space &space, offs_t address, int apply_tr
result = 0xff; result = 0xff;
} }
else if (space.device().memory().read(space.spacenum(), address, 1, custom)) else if (space.device().memory().read(space.spacenum(), address, 1, custom))
{ /* if there is a custom read handler, and it returns true, use that value */ { /* if there is a custom read handler, and it returns true, use that value */
result = custom; result = custom;
} }
else else
{ /* otherwise, call the byte reading function for the translated address */ { /* otherwise, call the byte reading function for the translated address */
result = space.read_byte(address); result = space.read_byte(address);
} }
@ -419,7 +419,7 @@ UINT16 debugger_cpu::read_word(address_space &space, offs_t address, int apply_t
UINT16 result; UINT16 result;
if (!WORD_ALIGNED(address)) if (!WORD_ALIGNED(address))
{ /* if this is misaligned read, or if there are no word readers, just read two bytes */ { /* if this is misaligned read, or if there are no word readers, just read two bytes */
UINT8 byte0 = read_byte(space, address + 0, apply_translation); UINT8 byte0 = read_byte(space, address + 0, apply_translation);
UINT8 byte1 = read_byte(space, address + 1, apply_translation); UINT8 byte1 = read_byte(space, address + 1, apply_translation);
@ -430,7 +430,7 @@ UINT16 debugger_cpu::read_word(address_space &space, offs_t address, int apply_t
result = byte1 | (byte0 << 8); result = byte1 | (byte0 << 8);
} }
else else
{ /* otherwise, this proceeds like the byte case */ { /* otherwise, this proceeds like the byte case */
/* all accesses from this point on are for the debugger */ /* all accesses from this point on are for the debugger */
m_debugger_access = true; m_debugger_access = true;
@ -443,11 +443,11 @@ UINT16 debugger_cpu::read_word(address_space &space, offs_t address, int apply_t
result = 0xffff; result = 0xffff;
} }
else if (space.device().memory().read(space.spacenum(), address, 2, custom)) else if (space.device().memory().read(space.spacenum(), address, 2, custom))
{ /* if there is a custom read handler, and it returns true, use that value */ { /* if there is a custom read handler, and it returns true, use that value */
result = custom; result = custom;
} }
else else
{ /* otherwise, call the byte reading function for the translated address */ { /* otherwise, call the byte reading function for the translated address */
result = space.read_word(address); result = space.read_word(address);
} }
@ -472,7 +472,7 @@ UINT32 debugger_cpu::read_dword(address_space &space, offs_t address, int apply_
UINT32 result; UINT32 result;
if (!DWORD_ALIGNED(address)) if (!DWORD_ALIGNED(address))
{ /* if this is a misaligned read, or if there are no dword readers, just read two words */ { /* if this is a misaligned read, or if there are no dword readers, just read two words */
UINT16 word0 = read_word(space, address + 0, apply_translation); UINT16 word0 = read_word(space, address + 0, apply_translation);
UINT16 word1 = read_word(space, address + 2, apply_translation); UINT16 word1 = read_word(space, address + 2, apply_translation);
@ -483,7 +483,7 @@ UINT32 debugger_cpu::read_dword(address_space &space, offs_t address, int apply_
result = word1 | (word0 << 16); result = word1 | (word0 << 16);
} }
else else
{ /* otherwise, this proceeds like the byte case */ { /* otherwise, this proceeds like the byte case */
/* all accesses from this point on are for the debugger */ /* all accesses from this point on are for the debugger */
m_debugger_access = true; m_debugger_access = true;
@ -491,15 +491,15 @@ UINT32 debugger_cpu::read_dword(address_space &space, offs_t address, int apply_
UINT64 custom; UINT64 custom;
if (apply_translation && !translate(space, TRANSLATE_READ_DEBUG, &address)) if (apply_translation && !translate(space, TRANSLATE_READ_DEBUG, &address))
{ /* translate if necessary; if not mapped, return 0xffffffff */ { /* translate if necessary; if not mapped, return 0xffffffff */
result = 0xffffffff; result = 0xffffffff;
} }
else if (space.device().memory().read(space.spacenum(), address, 4, custom)) else if (space.device().memory().read(space.spacenum(), address, 4, custom))
{ /* if there is a custom read handler, and it returns true, use that value */ { /* if there is a custom read handler, and it returns true, use that value */
result = custom; result = custom;
} }
else else
{ /* otherwise, call the byte reading function for the translated address */ { /* otherwise, call the byte reading function for the translated address */
result = space.read_dword(address); result = space.read_dword(address);
} }
@ -524,7 +524,7 @@ UINT64 debugger_cpu::read_qword(address_space &space, offs_t address, int apply_
UINT64 result; UINT64 result;
if (!QWORD_ALIGNED(address)) if (!QWORD_ALIGNED(address))
{ /* if this is a misaligned read, or if there are no qword readers, just read two dwords */ { /* if this is a misaligned read, or if there are no qword readers, just read two dwords */
UINT32 dword0 = read_dword(space, address + 0, apply_translation); UINT32 dword0 = read_dword(space, address + 0, apply_translation);
UINT32 dword1 = read_dword(space, address + 4, apply_translation); UINT32 dword1 = read_dword(space, address + 4, apply_translation);
@ -535,7 +535,7 @@ UINT64 debugger_cpu::read_qword(address_space &space, offs_t address, int apply_
result = dword1 | ((UINT64)dword0 << 32); result = dword1 | ((UINT64)dword0 << 32);
} }
else else
{ /* otherwise, this proceeds like the byte case */ { /* otherwise, this proceeds like the byte case */
/* all accesses from this point on are for the debugger */ /* all accesses from this point on are for the debugger */
m_debugger_access = true; m_debugger_access = true;
@ -548,11 +548,11 @@ UINT64 debugger_cpu::read_qword(address_space &space, offs_t address, int apply_
result = ~(UINT64)0; result = ~(UINT64)0;
} }
else if (space.device().memory().read(space.spacenum(), address, 8, custom)) else if (space.device().memory().read(space.spacenum(), address, 8, custom))
{ /* if there is a custom read handler, and it returns true, use that value */ { /* if there is a custom read handler, and it returns true, use that value */
result = custom; result = custom;
} }
else else
{ /* otherwise, call the byte reading function for the translated address */ { /* otherwise, call the byte reading function for the translated address */
result = space.read_qword(address); result = space.read_qword(address);
} }
@ -1528,13 +1528,13 @@ void debugger_cpu::start_hook(device_t *device, bool stop_on_vblank)
if (m_execution_state != EXECUTION_STATE_STOPPED) if (m_execution_state != EXECUTION_STATE_STOPPED)
{ {
if (device == m_visiblecpu && osd_ticks() > m_last_periodic_update_time + osd_ticks_per_second() / 4) if (device == m_visiblecpu && osd_ticks() > m_last_periodic_update_time + osd_ticks_per_second() / 4)
{ // check for periodic updates { // check for periodic updates
m_machine.debug_view().update_all(); m_machine.debug_view().update_all();
m_machine.debug_view().flush_osd_updates(); m_machine.debug_view().flush_osd_updates();
m_last_periodic_update_time = osd_ticks(); m_last_periodic_update_time = osd_ticks();
} }
else if (device == m_breakcpu) else if (device == m_breakcpu)
{ // check for pending breaks { // check for pending breaks
m_execution_state = EXECUTION_STATE_STOPPED; m_execution_state = EXECUTION_STATE_STOPPED;
m_breakcpu = nullptr; m_breakcpu = nullptr;
} }
@ -2613,7 +2613,7 @@ bool device_debug::comment_export(xml_data_node &curnode)
//------------------------------------------------- //-------------------------------------------------
bool device_debug::comment_import(xml_data_node &cpunode,bool is_inline) bool device_debug::comment_import(xml_data_node &cpunode,bool is_inline)
{ {
// iterate through nodes // iterate through nodes
for (xml_data_node *datanode = xml_get_sibling(cpunode.child, "comment"); datanode; datanode = xml_get_sibling(datanode->next, "comment")) for (xml_data_node *datanode = xml_get_sibling(cpunode.child, "comment"); datanode; datanode = xml_get_sibling(datanode->next, "comment"))
{ {

View File

@ -603,36 +603,35 @@ private:
/* internal helpers */ /* internal helpers */
void on_vblank(screen_device &device, bool vblank_state); void on_vblank(screen_device &device, bool vblank_state);
running_machine& m_machine; running_machine& m_machine;
device_t * m_livecpu; device_t * m_livecpu;
device_t * m_visiblecpu; device_t * m_visiblecpu;
device_t * m_breakcpu; device_t * m_breakcpu;
FILE * m_source_file; // script source file FILE * m_source_file; // script source file
std::unique_ptr<symbol_table> m_symtable; // global symbol table std::unique_ptr<symbol_table> m_symtable; // global symbol table
bool m_within_instruction_hook; bool m_within_instruction_hook;
bool m_vblank_occurred; bool m_vblank_occurred;
bool m_memory_modified; bool m_memory_modified;
bool m_debugger_access; bool m_debugger_access;
int m_execution_state; int m_execution_state;
device_t * m_stop_when_not_device; // stop execution when the device ceases to be this device_t * m_stop_when_not_device; // stop execution when the device ceases to be this
UINT32 m_bpindex; UINT32 m_bpindex;
UINT32 m_wpindex; UINT32 m_wpindex;
UINT32 m_rpindex; UINT32 m_rpindex;
UINT64 m_wpdata; UINT64 m_wpdata;
UINT64 m_wpaddr; UINT64 m_wpaddr;
std::unique_ptr<UINT64[]> m_tempvar; std::unique_ptr<UINT64[]> m_tempvar;
osd_ticks_t m_last_periodic_update_time; osd_ticks_t m_last_periodic_update_time;
bool m_comments_loaded; bool m_comments_loaded;
}; };
#endif #endif

View File

@ -1258,7 +1258,7 @@ static const help_item static_help_list[] =
"\n" "\n"
" commit[/*] <address>,<comment>\n" " commit[/*] <address>,<comment>\n"
"\n" "\n"
"Adds a string <comment> to the disassembled code at <address> then saves to file. Basically same as comadd + comsave via a single line.\n" "Adds a string <comment> to the disassembled code at <address> then saves to file. Basically same as comadd + comsave via a single line.\n"
"The shortcut for this command is simply '/*'\n" "The shortcut for this command is simply '/*'\n"
"\n" "\n"
"Examples:\n" "Examples:\n"

View File

@ -125,7 +125,7 @@ debugger_manager::debugger_manager(running_machine &machine)
/* initialize the submodules */ /* initialize the submodules */
m_cpu = std::make_unique<debugger_cpu>(machine); m_cpu = std::make_unique<debugger_cpu>(machine);
m_console = std::make_unique<debugger_console>(machine); m_console = std::make_unique<debugger_console>(machine);
m_commands = std::make_unique<debugger_commands>(machine, cpu(), console()); m_commands = std::make_unique<debugger_commands>(machine, cpu(), console());
g_machine = &machine; g_machine = &machine;

View File

@ -77,13 +77,13 @@ memory_region *device_t::memregion(const char *_tag) const
if (_tag) if (_tag)
{ {
auto search = machine().memory().regions().find(subtag(_tag).c_str()); auto search = machine().memory().regions().find(subtag(_tag).c_str());
if (search != machine().memory().regions().end()) if (search != machine().memory().regions().end())
return search->second.get(); return search->second.get();
else else
return nullptr; return nullptr;
} }
else else
return nullptr; return nullptr;
} }
@ -104,7 +104,7 @@ memory_share *device_t::memshare(const char *_tag) const
return nullptr; return nullptr;
} }
else else
return nullptr; return nullptr;
} }

View File

@ -1766,14 +1766,14 @@ void address_space::allocate(std::vector<std::unique_ptr<address_space>> &space_
case 8: case 8:
if (config.endianness() == ENDIANNESS_LITTLE) if (config.endianness() == ENDIANNESS_LITTLE)
{ {
if (large) if (large)
space_list.push_back(std::make_unique<address_space_8le_large>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_8le_large>(manager, memory, spacenum));
else else
space_list.push_back(std::make_unique<address_space_8le_small>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_8le_small>(manager, memory, spacenum));
} }
else else
{ {
if (large) if (large)
space_list.push_back(std::make_unique<address_space_8be_large>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_8be_large>(manager, memory, spacenum));
else else
space_list.push_back(std::make_unique<address_space_8be_small>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_8be_small>(manager, memory, spacenum));
@ -1783,7 +1783,7 @@ void address_space::allocate(std::vector<std::unique_ptr<address_space>> &space_
case 16: case 16:
if (config.endianness() == ENDIANNESS_LITTLE) if (config.endianness() == ENDIANNESS_LITTLE)
{ {
if (large) if (large)
space_list.push_back(std::make_unique<address_space_16le_large>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_16le_large>(manager, memory, spacenum));
else else
space_list.push_back(std::make_unique<address_space_16le_small>(manager, memory, spacenum)); space_list.push_back(std::make_unique<address_space_16le_small>(manager, memory, spacenum));
@ -1832,7 +1832,7 @@ void address_space::allocate(std::vector<std::unique_ptr<address_space>> &space_
break; break;
default: default:
throw emu_fatalerror("Invalid width %d specified for address_space::allocate", config.data_width()); throw emu_fatalerror("Invalid width %d specified for address_space::allocate", config.data_width());
} }
} }
@ -2208,7 +2208,7 @@ void address_space::allocate_memory()
// loop over all blocks just allocated and assign pointers from them // loop over all blocks just allocated and assign pointers from them
address_map_entry *unassigned = nullptr; address_map_entry *unassigned = nullptr;
for (auto memblock = blocklist.begin() + tail; memblock != blocklist.end(); ++memblock) for (auto memblock = blocklist.begin() + tail; memblock != blocklist.end(); ++memblock)
unassigned = block_assign_intersecting(memblock->get()->bytestart(), memblock->get()->byteend(), memblock->get()->data()); unassigned = block_assign_intersecting(memblock->get()->bytestart(), memblock->get()->byteend(), memblock->get()->data());
@ -2252,7 +2252,7 @@ void address_space::allocate_memory()
offs_t curbytestart = curblockstart * MEMORY_BLOCK_CHUNK; offs_t curbytestart = curblockstart * MEMORY_BLOCK_CHUNK;
offs_t curbyteend = curblockend * MEMORY_BLOCK_CHUNK + (MEMORY_BLOCK_CHUNK - 1); offs_t curbyteend = curblockend * MEMORY_BLOCK_CHUNK + (MEMORY_BLOCK_CHUNK - 1);
auto block = std::make_unique<memory_block>(*this, curbytestart, curbyteend); auto block = std::make_unique<memory_block>(*this, curbytestart, curbyteend);
// assign memory that intersected the new block // assign memory that intersected the new block
unassigned = block_assign_intersecting(curbytestart, curbyteend, block.get()->data()); unassigned = block_assign_intersecting(curbytestart, curbyteend, block.get()->data());
blocklist.push_back(std::move(block)); blocklist.push_back(std::move(block));
@ -2577,7 +2577,7 @@ void address_space::install_ram_generic(offs_t addrstart, offs_t addrend, offs_t
{ {
if (machine().phase() >= MACHINE_PHASE_RESET) if (machine().phase() >= MACHINE_PHASE_RESET)
fatalerror("Attempted to call install_ram_generic() after initialization time without a baseptr!\n"); fatalerror("Attempted to call install_ram_generic() after initialization time without a baseptr!\n");
auto block = std::make_unique<memory_block>(*this, address_to_byte(addrstart), address_to_byte_end(addrend)); auto block = std::make_unique<memory_block>(*this, address_to_byte(addrstart), address_to_byte_end(addrend));
bank.set_base(block.get()->data()); bank.set_base(block.get()->data());
manager().m_blocklist.push_back(std::move(block)); manager().m_blocklist.push_back(std::move(block));
} }
@ -4262,7 +4262,7 @@ void memory_bank::configure_entries(int startentry, int numentries, void *base,
//------------------------------------------------- //-------------------------------------------------
memory_region::memory_region(running_machine &machine, const char *name, UINT32 length, UINT8 width, endianness_t endian) memory_region::memory_region(running_machine &machine, const char *name, UINT32 length, UINT8 width, endianness_t endian)
: m_machine(machine), : m_machine(machine),
m_name(name), m_name(name),
m_buffer(length), m_buffer(length),
m_endianness(endian), m_endianness(endian),
@ -4474,7 +4474,7 @@ void handler_entry::description(char *buffer) const
m_subunit_infos[i].m_shift, m_subunit_infos[i].m_shift,
m_subunit_infos[i].m_offset, m_subunit_infos[i].m_offset,
m_subunit_infos[i].m_multiplier, m_subunit_infos[i].m_multiplier,
m_subunit_infos[i].m_bytemask, m_subunit_infos[i].m_bytemask,
subunit_name(i)); subunit_name(i));
} }
} }

View File

@ -148,9 +148,9 @@ public:
public: public:
// construction // construction
direct_range(): m_bytestart(0),m_byteend(~0) { } direct_range(): m_bytestart(0),m_byteend(~0) { }
inline bool operator==(direct_range val) noexcept inline bool operator==(direct_range val) noexcept
{ // return true if _Left and _Right identify the same thread { // return true if _Left and _Right identify the same thread
return (m_bytestart == val.m_bytestart) && (m_byteend == val.m_byteend); return (m_bytestart == val.m_bytestart) && (m_byteend == val.m_byteend);
} }
@ -521,7 +521,7 @@ class memory_bank
// construction/destruction // construction/destruction
bank_reference(address_space &space, read_or_write readorwrite) bank_reference(address_space &space, read_or_write readorwrite)
: m_space(space), : m_space(space),
m_readorwrite(readorwrite) { } m_readorwrite(readorwrite) { }
// getters // getters
address_space &space() const { return m_space; } address_space &space() const { return m_space; }

View File

@ -198,7 +198,7 @@ public:
UI_CABINET, UI_CABINET,
UI_SIMPLE UI_SIMPLE
}; };
// construction/destruction // construction/destruction
emu_options(); emu_options();

View File

@ -32,7 +32,7 @@ bool read_hash_config(device_image_interface &image, const char *sysname, std::s
pugi::xml_document doc; pugi::xml_document doc;
pugi::xml_parse_result res = doc.load_file(file.fullpath()); pugi::xml_parse_result res = doc.load_file(file.fullpath());
if (res) if (res)
{ {
// Do search by CRC32 and SHA1 // Do search by CRC32 and SHA1
std::string query = "/hashfile/hash["; std::string query = "/hashfile/hash[";
@ -46,7 +46,7 @@ bool read_hash_config(device_image_interface &image, const char *sysname, std::s
return true; return true;
} }
// Try search by CRC32 only // Try search by CRC32 only
query = "/hashfile/hash["; query = "/hashfile/hash[";
query += "@crc32='" + crc + "']/extrainfo"; query += "@crc32='" + crc + "']/extrainfo";
tools = doc.select_nodes(query.c_str()); tools = doc.select_nodes(query.c_str());

View File

@ -811,7 +811,7 @@ void rom_load_manager::fill_rom_data(const rom_entry *romp)
/* make sure the length was valid */ /* make sure the length was valid */
if (numbytes == 0) if (numbytes == 0)
fatalerror("Error in RomModule definition: FILL has an invalid length\n"); fatalerror("Error in RomModule definition: FILL has an invalid length\n");
/* fill the data (filling value is stored in place of the hashdata) */ /* fill the data (filling value is stored in place of the hashdata) */
if(skip != 0) if(skip != 0)
{ {

View File

@ -54,21 +54,21 @@ const UINT32 UPDATE_HAS_NOT_CHANGED = 0x0001; // the video has not changed
@def VIDEO_UPDATE_BEFORE_VBLANK @def VIDEO_UPDATE_BEFORE_VBLANK
update_video called at the start of the VBLANK period update_video called at the start of the VBLANK period
@todo hack, remove me @todo hack, remove me
@def VIDEO_UPDATE_AFTER_VBLANK @def VIDEO_UPDATE_AFTER_VBLANK
update_video called at the end of the VBLANK period update_video called at the end of the VBLANK period
@todo hack, remove me @todo hack, remove me
@def VIDEO_SELF_RENDER @def VIDEO_SELF_RENDER
indicates VIDEO_UPDATE will add container bits itself indicates VIDEO_UPDATE will add container bits itself
@def VIDEO_ALWAYS_UPDATE @def VIDEO_ALWAYS_UPDATE
force VIDEO_UPDATE to be called even for skipped frames. force VIDEO_UPDATE to be called even for skipped frames.
@todo in case you need this one for model updating, then you're doing it wrong (read: hack) @todo in case you need this one for model updating, then you're doing it wrong (read: hack)
@def VIDEO_UPDATE_SCANLINE @def VIDEO_UPDATE_SCANLINE
calls VIDEO_UPDATE for every visible scanline, even for skipped frames calls VIDEO_UPDATE for every visible scanline, even for skipped frames
@} @}
*/ */
@ -377,82 +377,82 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
@{ @{
@def MCFG_SCREEN_ADD @def MCFG_SCREEN_ADD
Add a new legacy screen color device Add a new legacy screen color device
@def MCFG_SCREEN_ADD_MONOCHROME @def MCFG_SCREEN_ADD_MONOCHROME
Add a new legacy monochrome screen device Add a new legacy monochrome screen device
@def MCFG_SCREEN_MODIFY @def MCFG_SCREEN_MODIFY
Modify a legacy screen device Modify a legacy screen device
@def MCFG_SCREEN_TYPE @def MCFG_SCREEN_TYPE
Modify the screen device type Modify the screen device type
@see screen_type_enum @see screen_type_enum
@def MCFG_SCREEN_RAW_PARAMS @def MCFG_SCREEN_RAW_PARAMS
Configures screen parameters for the given screen. Configures screen parameters for the given screen.
@remark It's better than using @see MCFG_SCREEN_REFRESH_RATE and @see MCFG_SCREEN_VBLANK_TIME but still not enough. @remark It's better than using @see MCFG_SCREEN_REFRESH_RATE and @see MCFG_SCREEN_VBLANK_TIME but still not enough.
@param _pixclock @param _pixclock
Pixel Clock frequency value Pixel Clock frequency value
@param _htotal @param _htotal
Total number of horizontal pixels, including hblank period. Total number of horizontal pixels, including hblank period.
@param _hbend @param _hbend
Horizontal pixel position for HBlank end event, also first pixel where screen rectangle is visible. Horizontal pixel position for HBlank end event, also first pixel where screen rectangle is visible.
@param _hbstart @param _hbstart
Horizontal pixel position for HBlank start event, also last pixel where screen rectangle is visible. Horizontal pixel position for HBlank start event, also last pixel where screen rectangle is visible.
@param _vtotal @param _vtotal
Total number of vertical pixels, including vblank period. Total number of vertical pixels, including vblank period.
@param _vbend @param _vbend
Vertical pixel position for VBlank end event, also first pixel where screen rectangle is visible. Vertical pixel position for VBlank end event, also first pixel where screen rectangle is visible.
@param _vbstart @param _vbstart
Vertical pixel position for VBlank start event, also last pixel where screen rectangle is visible. Vertical pixel position for VBlank start event, also last pixel where screen rectangle is visible.
@def MCFG_SCREEN_REFRESH_RATE @def MCFG_SCREEN_REFRESH_RATE
Sets the number of Frames Per Second for this screen Sets the number of Frames Per Second for this screen
@remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings. @remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
@param _rate @param _rate
FPS number FPS number
@def MCFG_SCREEN_VBLANK_TIME @def MCFG_SCREEN_VBLANK_TIME
Sets the vblank time of the given screen Sets the vblank time of the given screen
@remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings. @remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
@param _time @param _time
Time parameter, in attotime value Time parameter, in attotime value
@def MCFG_SCREEN_SIZE @def MCFG_SCREEN_SIZE
Sets total screen size, including H/V-Blanks Sets total screen size, including H/V-Blanks
@remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings. @remarks Please use @see MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
@param _width @param _width
Screen horizontal size Screen horizontal size
@param _height @param _height
Screen vertical size Screen vertical size
@def MCFG_SCREEN_VISIBLE_AREA @def MCFG_SCREEN_VISIBLE_AREA
Sets screen visible area Sets screen visible area
@remarks Please use MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings. @remarks Please use MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
@param _minx @param _minx
Screen left border Screen left border
@param _maxx @param _maxx
Screen right border, must be in N-1 format Screen right border, must be in N-1 format
@param _miny @param _miny
Screen top border Screen top border
@param _maxx @param _maxx
Screen bottom border, must be in N-1 format Screen bottom border, must be in N-1 format
@} @}
*/ */

View File

@ -401,7 +401,7 @@ void cheat_script::save(emu_file &cheatfile) const
cheat_script::script_entry::script_entry(cheat_manager &manager, symbol_table &symbols, const char *filename, xml_data_node &entrynode, bool isaction) cheat_script::script_entry::script_entry(cheat_manager &manager, symbol_table &symbols, const char *filename, xml_data_node &entrynode, bool isaction)
: m_condition(&symbols), : m_condition(&symbols),
m_expression(&symbols) m_expression(&symbols)
{ {
const char *expression = nullptr; const char *expression = nullptr;
try try
@ -444,7 +444,7 @@ cheat_script::script_entry::script_entry(cheat_manager &manager, symbol_table &s
int totalargs = 0; int totalargs = 0;
for (xml_data_node *argnode = xml_get_sibling(entrynode.child, "argument"); argnode != nullptr; argnode = xml_get_sibling(argnode->next, "argument")) for (xml_data_node *argnode = xml_get_sibling(entrynode.child, "argument"); argnode != nullptr; argnode = xml_get_sibling(argnode->next, "argument"))
{ {
auto curarg = std::make_unique<output_argument>(manager, symbols, filename, *argnode); auto curarg = std::make_unique<output_argument>(manager, symbols, filename, *argnode);
// verify we didn't overrun the argument count // verify we didn't overrun the argument count
totalargs += curarg->count(); totalargs += curarg->count();
@ -610,7 +610,7 @@ void cheat_script::script_entry::validate_format(const char *filename, int line)
cheat_script::script_entry::output_argument::output_argument(cheat_manager &manager, symbol_table &symbols, const char *filename, xml_data_node &argnode) cheat_script::script_entry::output_argument::output_argument(cheat_manager &manager, symbol_table &symbols, const char *filename, xml_data_node &argnode)
: m_expression(&symbols), : m_expression(&symbols),
m_count(0) m_count(0)
{ {
// first extract attributes // first extract attributes
m_count = xml_get_attribute_int(&argnode, "count", 1); m_count = xml_get_attribute_int(&argnode, "count", 1);

View File

@ -100,7 +100,7 @@ private:
// construction/destruction // construction/destruction
item(const char *text, UINT64 value, int valformat) item(const char *text, UINT64 value, int valformat)
: m_text(text), : m_text(text),
m_value(value, valformat) { } m_value(value, valformat) { }
// getters // getters
const number_and_format &value() const { return m_value; } const number_and_format &value() const { return m_value; }
@ -175,12 +175,12 @@ private:
void validate_format(const char *filename, int line); void validate_format(const char *filename, int line);
// internal state // internal state
parsed_expression m_condition; // condition under which this is executed parsed_expression m_condition; // condition under which this is executed
parsed_expression m_expression; // expression to execute parsed_expression m_expression; // expression to execute
std::string m_format; // string format to print std::string m_format; // string format to print
std::vector<std::unique_ptr<output_argument>> m_arglist; // list of arguments std::vector<std::unique_ptr<output_argument>> m_arglist; // list of arguments
INT8 m_line; // which line to print on INT8 m_line; // which line to print on
ui::text_layout::text_justify m_justify; // justification when printing ui::text_layout::text_justify m_justify; // justification when printing
// constants // constants
static const int MAX_ARGUMENTS = 32; static const int MAX_ARGUMENTS = 32;
@ -306,12 +306,12 @@ private:
std::vector<std::unique_ptr<cheat_entry>> m_cheatlist; // cheat list std::vector<std::unique_ptr<cheat_entry>> m_cheatlist; // cheat list
UINT64 m_framecount; // frame count UINT64 m_framecount; // frame count
std::vector<std::string> m_output; // array of output strings std::vector<std::string> m_output; // array of output strings
std::vector<ui::text_layout::text_justify> m_justify; // justification for each string std::vector<ui::text_layout::text_justify> m_justify; // justification for each string
UINT8 m_numlines; // number of lines available for output UINT8 m_numlines; // number of lines available for output
INT8 m_lastline; // last line used for output INT8 m_lastline; // last line used for output
bool m_disabled; // true if the cheat engine is disabled bool m_disabled; // true if the cheat engine is disabled
symbol_table m_symtable; // global symbol table symbol_table m_symtable; // global symbol table
std::unique_ptr<debugger_cpu> m_cpu; // debugger interface for cpus/memory std::unique_ptr<debugger_cpu> m_cpu; // debugger interface for cpus/memory
// constants // constants
static constexpr int CHEAT_VERSION = 1; static constexpr int CHEAT_VERSION = 1;

View File

@ -18,7 +18,6 @@
extern const char UI_VERSION_TAG[]; extern const char UI_VERSION_TAG[];
namespace ui { namespace ui {
//------------------------------------------------- //-------------------------------------------------
// sort // sort
//------------------------------------------------- //-------------------------------------------------

View File

@ -16,7 +16,6 @@
#include "ui/menu.h" #include "ui/menu.h"
namespace ui { namespace ui {
//------------------------------------------------- //-------------------------------------------------
// class audit menu // class audit menu
//------------------------------------------------- //-------------------------------------------------

View File

@ -14,7 +14,6 @@
#include "ui/ui.h" #include "ui/ui.h"
namespace ui { namespace ui {
// itemrefs for key menu items // itemrefs for key menu items
#define ITEMREF_NEW_BARCODE ((void *) 0x0001) #define ITEMREF_NEW_BARCODE ((void *) 0x0001)
#define ITEMREF_ENTER_BARCODE ((void *) 0x0002) #define ITEMREF_ENTER_BARCODE ((void *) 0x0002)
@ -157,4 +156,4 @@ void menu_barcode_reader::handle()
} }
} }
} // namespace ui } // namespace ui

View File

@ -17,7 +17,6 @@
#include "ui/devctrl.h" #include "ui/devctrl.h"
namespace ui { namespace ui {
class menu_barcode_reader : public menu_device_control<barcode_reader_device> { class menu_barcode_reader : public menu_device_control<barcode_reader_device> {
public: public:
menu_barcode_reader(mame_ui_manager &mui, render_container *container, barcode_reader_device *device); menu_barcode_reader(mame_ui_manager &mui, render_container *container, barcode_reader_device *device);

View File

@ -18,7 +18,6 @@
namespace ui { namespace ui {
// itemrefs for key menu items // itemrefs for key menu items
#define ITEMREF_CHEATS_RESET_ALL ((void *) 0x0001) #define ITEMREF_CHEATS_RESET_ALL ((void *) 0x0001)
#define ITEMREF_CHEATS_RELOAD_ALL ((void *) 0x0002) #define ITEMREF_CHEATS_RELOAD_ALL ((void *) 0x0002)

View File

@ -16,7 +16,6 @@
#include "ui/menu.h" #include "ui/menu.h"
namespace ui { namespace ui {
class menu_cheat : public menu class menu_cheat : public menu
{ {
public: public:

View File

@ -18,7 +18,6 @@
namespace ui { namespace ui {
/************************************************** /**************************************************
MENU CUSTOM FILTER MENU CUSTOM FILTER
**************************************************/ **************************************************/

View File

@ -18,7 +18,6 @@
#include "ui/utils.h" #include "ui/utils.h"
namespace ui { namespace ui {
// Software region // Software region
struct c_sw_region struct c_sw_region
{ {

View File

@ -20,7 +20,6 @@
#include "osdepend.h" #include "osdepend.h"
namespace ui { namespace ui {
const char *const menu_custom_ui::hide_status[] = { const char *const menu_custom_ui::hide_status[] = {
__("Show All"), __("Show All"),
__("Hide Filters"), __("Hide Filters"),

View File

@ -16,7 +16,6 @@
#include "ui/menu.h" #include "ui/menu.h"
namespace ui { namespace ui {
//------------------------------------------------- //-------------------------------------------------
// Custom UI menu // Custom UI menu
//------------------------------------------------- //-------------------------------------------------

View File

@ -60,7 +60,7 @@ bool datfile_manager::first_run = true;
//------------------------------------------------- //-------------------------------------------------
// ctor // ctor
//------------------------------------------------- //-------------------------------------------------
datfile_manager::datfile_manager(running_machine &machine, ui_options &moptions) datfile_manager::datfile_manager(running_machine &machine, ui_options &moptions)
: m_machine(machine) : m_machine(machine)
, m_options(moptions) , m_options(moptions)
{ {

View File

@ -20,7 +20,6 @@
#include "softlist.h" #include "softlist.h"
namespace ui { namespace ui {
//------------------------------------------------- //-------------------------------------------------
// ctor / dtor // ctor / dtor
//------------------------------------------------- //-------------------------------------------------

View File

@ -23,7 +23,6 @@
struct ui_software_info; struct ui_software_info;
namespace ui { namespace ui {
//------------------------------------------------- //-------------------------------------------------
// class dats menu // class dats menu
//------------------------------------------------- //-------------------------------------------------

Some files were not shown because too many files have changed in this diff Show More