mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Cleanups and version bump
This commit is contained in:
parent
4b0b4e6b2f
commit
a440a8e020
@ -6579,12 +6579,12 @@
|
|||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
<publisher>Viza</publisher>
|
<publisher>Viza</publisher>
|
||||||
<sharedfeat name="compatibility" value="NTSC,PAL"/>
|
<sharedfeat name="compatibility" value="NTSC,PAL"/>
|
||||||
|
|
||||||
<part name="cart" interface="c64_cart">
|
<part name="cart" interface="c64_cart">
|
||||||
<feature name="slot" value="vizastar" />
|
<feature name="slot" value="vizastar" />
|
||||||
<feature name="game" value="1" />
|
<feature name="game" value="1" />
|
||||||
<feature name="exrom" value="0" />
|
<feature name="exrom" value="0" />
|
||||||
|
|
||||||
<dataarea name="roml" size="0x1000">
|
<dataarea name="roml" size="0x1000">
|
||||||
<rom name="v" size="0x1000" crc="d17689a0" sha1="4df4d254d7fae916c473d421515b2b74d77e9fd9" offset="0" />
|
<rom name="v" size="0x1000" crc="d17689a0" sha1="4df4d254d7fae916c473d421515b2b74d77e9fd9" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
@ -6598,7 +6598,7 @@
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- Dummy cartridge entries to allow requirement mappings from c64_flop -->
|
<!-- Dummy cartridge entries to allow requirement mappings from c64_flop -->
|
||||||
|
|
||||||
<software name="cpm">
|
<software name="cpm">
|
||||||
<description>CP/M</description>
|
<description>CP/M</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
<!-- based on c64tapes.org dumps -->
|
<!-- based on c64tapes.org dumps -->
|
||||||
<softwarelist name="c64_cass" description="Commodore 64 cassettes">
|
<softwarelist name="c64_cass" description="Commodore 64 cassettes">
|
||||||
|
|
||||||
<software name="jacknip2">
|
<software name="jacknip2">
|
||||||
<description>Jack the Nipper II: In Coconut Capers</description>
|
<description>Jack the Nipper II: In Coconut Capers</description>
|
||||||
<year>1987</year>
|
<year>1987</year>
|
||||||
|
@ -701,8 +701,8 @@
|
|||||||
to look at track 26 sector 2. There you find the beginning of a hidden
|
to look at track 26 sector 2. There you find the beginning of a hidden
|
||||||
file. If you load this file into the correct start address ($C000) and
|
file. If you load this file into the correct start address ($C000) and
|
||||||
execute it from BASIC (SYS 49152) you get a rather cool surprise ;)
|
execute it from BASIC (SYS 49152) you get a rather cool surprise ;)
|
||||||
|
|
||||||
The copy protection (looking for 22,READ ERROR,18,18) has been removed by
|
The copy protection (looking for 22,READ ERROR,18,18) has been removed by
|
||||||
changing the two bytes in block 26,1 at offsets $23 and $2A from $AC to $AE
|
changing the two bytes in block 26,1 at offsets $23 and $2A from $AC to $AE
|
||||||
-->
|
-->
|
||||||
<part name="flop1" interface="floppy_5_25">
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
@ -1256,7 +1256,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="cbug88">
|
<software name="cbug88">
|
||||||
<description>CBUG #88</description>
|
<description>CBUG #88</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
|
@ -270231,23 +270231,23 @@ stick to CPC-Power disks, when available)
|
|||||||
<!-- Robot-PD New Range -->
|
<!-- Robot-PD New Range -->
|
||||||
|
|
||||||
|
|
||||||
<!-- Text files
|
<!-- Text files
|
||||||
|
|
||||||
|
|
||||||
00001 The Big Book Of Mischief
|
00001 The Big Book Of Mischief
|
||||||
Anarchic text files detailing how to blow things up. 18
|
Anarchic text files detailing how to blow things up. 18
|
||||||
03000 Comms text files.
|
03000 Comms text files.
|
||||||
03001 Comms text files.
|
03001 Comms text files.
|
||||||
04000 Programming tutorials
|
04000 Programming tutorials
|
||||||
Learn how to program your computer in BASIC or machine code.
|
Learn how to program your computer in BASIC or machine code.
|
||||||
04400* CPC Guide
|
04400* CPC Guide
|
||||||
Kevin Thacker's excellent and comprehensive guide to the CPC's internals.
|
Kevin Thacker's excellent and comprehensive guide to the CPC's internals.
|
||||||
04401 CRTC Source Code Collection
|
04401 CRTC Source Code Collection
|
||||||
Z80 source for programs like PowerSpell, BTL intros, and Pro-Ext - plus a selection of subroutines usable in your own programs.
|
Z80 source for programs like PowerSpell, BTL intros, and Pro-Ext - plus a selection of subroutines usable in your own programs.
|
||||||
06100 Tips for adventure games.
|
06100 Tips for adventure games.
|
||||||
06101 Tips for adventure games.
|
06101 Tips for adventure games.
|
||||||
09100 Nutworks
|
09100 Nutworks
|
||||||
A comic look at computers from the early days of the Internet.
|
A comic look at computers from the early days of the Internet.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -270401,29 +270401,29 @@ AMSDOS software, 1
|
|||||||
|
|
||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
10000* The Plus Disc
|
10000* The Plus Disc
|
||||||
Make the most of your CPC Plus's capabilities! Sampled sound demos, colour editors, an art package (Rob Buckley's acclaimed Smart Plus),
|
Make the most of your CPC Plus's capabilities! Sampled sound demos, colour editors, an art package (Rob Buckley's acclaimed Smart Plus),
|
||||||
games (previews of Futur's new Stormlord Plus), and other software utilising the extra features of the CPC Plus computers. Includes Logon
|
games (previews of Futur's new Stormlord Plus), and other software utilising the extra features of the CPC Plus computers. Includes Logon
|
||||||
System's fantastic B-ASIC, so you can access 4 096 colours and hardware sprites from your own programs. XC 128: Plus only
|
System's fantastic B-ASIC, so you can access 4 096 colours and hardware sprites from your own programs. XC 128: Plus only
|
||||||
10001* Sean McManus Collection
|
10001* Sean McManus Collection
|
||||||
Collected works from an AA Type-Ins regular. Includes the classic Easi-Sprite Driver, the frenetic arcade romp Further Adventures of Fred,
|
Collected works from an AA Type-Ins regular. Includes the classic Easi-Sprite Driver, the frenetic arcade romp Further Adventures of Fred,
|
||||||
demo programs for ComSoft's Basic Idea, and many more.
|
demo programs for ComSoft's Basic Idea, and many more.
|
||||||
10002 Robot PD Catalogue
|
10002 Robot PD Catalogue
|
||||||
The double-sided disc catalogue published by Robot PD around 1992. Although the PD discs are no longer available in that form, it provides
|
The double-sided disc catalogue published by Robot PD around 1992. Although the PD discs are no longer available in that form, it provides
|
||||||
succinct descriptions of many PD programs.
|
succinct descriptions of many PD programs.
|
||||||
10100 Educational programs for all ages.
|
10100 Educational programs for all ages.
|
||||||
10200 Artificial intelligence programs, including several variants on the classic "Eliza" conversation program. Single-sided collection
|
10200 Artificial intelligence programs, including several variants on the classic "Eliza" conversation program. Single-sided collection
|
||||||
10300 Music by British coder CRTC (aka Richard Fairhurst).
|
10300 Music by British coder CRTC (aka Richard Fairhurst).
|
||||||
10301 The Jean-Michel Jarre music collection and Acid Music Box 2.
|
10301 The Jean-Michel Jarre music collection and Acid Music Box 2.
|
||||||
10302 Music Pack 4 (hacked tunes), plus Epsilon's new Anthology.
|
10302 Music Pack 4 (hacked tunes), plus Epsilon's new Anthology.
|
||||||
10304 Advanced Music System files by Rob Baxter.
|
10304 Advanced Music System files by Rob Baxter.
|
||||||
10305 Advanced Music System files by Rob Baxter.
|
10305 Advanced Music System files by Rob Baxter.
|
||||||
10306 Advanced Music System files by Rob Baxter.
|
10306 Advanced Music System files by Rob Baxter.
|
||||||
10307 Advanced Music System files by Rob Baxter.
|
10307 Advanced Music System files by Rob Baxter.
|
||||||
10308 Advanced Music System files by Rob Baxter.
|
10308 Advanced Music System files by Rob Baxter.
|
||||||
10311 Soundhakker hacked music, complete with player program.
|
10311 Soundhakker hacked music, complete with player program.
|
||||||
10314 Music to be loaded into Soundtrakker (see disc 11001).
|
10314 Music to be loaded into Soundtrakker (see disc 11001).
|
||||||
10315 Music to be loaded into Soundtrakker (see disc 11001).
|
10315 Music to be loaded into Soundtrakker (see disc 11001).
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -270735,27 +270735,27 @@ AMSDOS software, 2
|
|||||||
|
|
||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
11000 Protracker
|
11000 Protracker
|
||||||
An impressive music editor which uses real samples - it can even import .MOD files from the Amiga and PC.128
|
An impressive music editor which uses real samples - it can even import .MOD files from the Amiga and PC.128
|
||||||
11001* Soundtrackers
|
11001* Soundtrackers
|
||||||
Four great music editors: Digitrakker (like Protracker, but better), Advanced Music Creator, BooTracker, and Soundtrakker 128,
|
Four great music editors: Digitrakker (like Protracker, but better), Advanced Music Creator, BooTracker, and Soundtrakker 128,
|
||||||
complete with example files. All you need to create your own music. XC 128
|
complete with example files. All you need to create your own music. XC 128
|
||||||
11100 Rob Buckley's friendly Domain Word word-processor, Robot Software's flexible PowerSpell spell-checker, plus I-Spell and an
|
11100 Rob Buckley's friendly Domain Word word-processor, Robot Software's flexible PowerSpell spell-checker, plus I-Spell and an
|
||||||
elementary WP for Citizen printers. 128
|
elementary WP for Citizen printers. 128
|
||||||
11200 Databases.
|
11200 Databases.
|
||||||
11201 Databases.
|
11201 Databases.
|
||||||
11300 Spreadsheets, including PD Planner.
|
11300 Spreadsheets, including PD Planner.
|
||||||
11400 PowerPage 64
|
11400 PowerPage 64
|
||||||
The original version of the CPC desktop publisher. Lets you edit a fully graphical A5 page on even an unexpanded 464.
|
The original version of the CPC desktop publisher. Lets you edit a fully graphical A5 page on even an unexpanded 464.
|
||||||
11401* PowerPage 128
|
11401* PowerPage 128
|
||||||
Robot Software's famous desktop publishing system, PowerPage 128, is all you need to create A5 posters and publications on your CPC.
|
Robot Software's famous desktop publishing system, PowerPage 128, is all you need to create A5 posters and publications on your CPC.
|
||||||
Includes extremely advanced text layout features, fast drawing functions, and a host of sensible design touches (such as automatic file compression)
|
Includes extremely advanced text layout features, fast drawing functions, and a host of sensible design touches (such as automatic file compression)
|
||||||
to make DTP as easy as possible. As used by Artificial Intelligence, CPC SouthWest, Potential Difference and countless other fanzines. 128
|
to make DTP as easy as possible. As used by Artificial Intelligence, CPC SouthWest, Potential Difference and countless other fanzines. 128
|
||||||
11402 Alan Scully's simple Pagemaker DTP program.
|
11402 Alan Scully's simple Pagemaker DTP program.
|
||||||
11500* The Artist
|
11500* The Artist
|
||||||
The best-selling disc gets a new look with version two of the classic art package, GPaint - packed with features, and the only serious competitor to
|
The best-selling disc gets a new look with version two of the classic art package, GPaint - packed with features, and the only serious competitor to
|
||||||
Advanced Art Studio. Exclusively translated by Robot Software. Also includes PC-CPC graphic transfer programs, Smart II, and several other drawing
|
Advanced Art Studio. Exclusively translated by Robot Software. Also includes PC-CPC graphic transfer programs, Smart II, and several other drawing
|
||||||
programs.
|
programs.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -270891,33 +270891,33 @@ AMSDOS software, 3
|
|||||||
|
|
||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
12000 Hacking Disc
|
12000 Hacking Disc
|
||||||
Utilities to help the budding game hacker, including the JW Brown suite, plus several excellent tape-disc transfer programs by Rob Scott.
|
Utilities to help the budding game hacker, including the JW Brown suite, plus several excellent tape-disc transfer programs by Rob Scott.
|
||||||
12002* The Sentinel Collection
|
12002* The Sentinel Collection
|
||||||
Two ex-commercial programs from Sentinel Software. TUSS is a hacker's dream, enabling you to easily rip graphics out of other people's
|
Two ex-commercial programs from Sentinel Software. TUSS is a hacker's dream, enabling you to easily rip graphics out of other people's
|
||||||
programs, while Pro-Ext brings clip art and headline font capabilities to Protext.XC 128
|
programs, while Pro-Ext brings clip art and headline font capabilities to Protext.XC 128
|
||||||
12003 Print Enhancer
|
12003 Print Enhancer
|
||||||
Geoff Short's package replaces your printer's default font with a set of well-drawn high resolution alternatives.
|
Geoff Short's package replaces your printer's default font with a set of well-drawn high resolution alternatives.
|
||||||
12004 Screen dumps and other printer utilities.
|
12004 Screen dumps and other printer utilities.
|
||||||
12005 The Connectivity Disc
|
12005 The Connectivity Disc
|
||||||
DOS-to-CPC copying utilities, file translators (such as Sanko, GIF Converter and IFF Converter), and the comp.sys.amstrad.8bit FAQ combine
|
DOS-to-CPC copying utilities, file translators (such as Sanko, GIF Converter and IFF Converter), and the comp.sys.amstrad.8bit FAQ combine
|
||||||
to make a useful collection for those wishing to ship files between their CPC and PC, Mac or Amiga. Some programs 128
|
to make a useful collection for those wishing to ship files between their CPC and PC, Mac or Amiga. Some programs 128
|
||||||
12100 The International Collection
|
12100 The International Collection
|
||||||
Disc utilities from all over Europe - copiers, formatters, rescue programs, you name it. Includes classics such as DMon and Crime.
|
Disc utilities from all over Europe - copiers, formatters, rescue programs, you name it. Includes classics such as DMon and Crime.
|
||||||
12200 RSX-Lib
|
12200 RSX-Lib
|
||||||
A programming utility from Smogware Systems. XC
|
A programming utility from Smogware Systems. XC
|
||||||
12201* Demo creators
|
12201* Demo creators
|
||||||
Write a flashy demo without having to learn machine code! The NWC Demomaker, Vorspann utility, and Tom & Jerry's acclaimed Ghoul's Writer
|
Write a flashy demo without having to learn machine code! The NWC Demomaker, Vorspann utility, and Tom & Jerry's acclaimed Ghoul's Writer
|
||||||
are on the disc. Perfect for sending interesting disc letters to your CPC contacts.
|
are on the disc. Perfect for sending interesting disc letters to your CPC contacts.
|
||||||
12202 "Toolkit" programs to add extra commands to BASIC.
|
12202 "Toolkit" programs to add extra commands to BASIC.
|
||||||
12300 File crunchers - instant disc space savings. Includes Cheese, Columbia, SQ23 screen squeezer, and Turbo Imploder.
|
12300 File crunchers - instant disc space savings. Includes Cheese, Columbia, SQ23 screen squeezer, and Turbo Imploder.
|
||||||
12400 A bizarre Unix-like operating system.
|
12400 A bizarre Unix-like operating system.
|
||||||
12401 Front-ends
|
12401 Front-ends
|
||||||
David Wild's Desk, Worktop, and the PD version of DES (plus utilities) - graphical front-ends to make your CPC even more user-friendly.
|
David Wild's Desk, Worktop, and the PD version of DES (plus utilities) - graphical front-ends to make your CPC even more user-friendly.
|
||||||
Just like using Windows or a Macintosh.
|
Just like using Windows or a Macintosh.
|
||||||
13100* Terminal programs for modem users, including ANSI-Term, the fast and friendly Australian utility which has become a standard for CPC communicators.
|
13100* Terminal programs for modem users, including ANSI-Term, the fast and friendly Australian utility which has become a standard for CPC communicators.
|
||||||
14400 Z80 Pack
|
14400 Z80 Pack
|
||||||
A collection of assemblers, monitors and disassemblers for the novice or experienced coder. Includes the powerful LARA monitor.
|
A collection of assemblers, monitors and disassemblers for the novice or experienced coder. Includes the powerful LARA monitor.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -271089,40 +271089,40 @@ AMSDOS software, 4
|
|||||||
|
|
||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
16000 Alan Scully Collection
|
16000 Alan Scully Collection
|
||||||
Adventure and arcade games by a great PD figure of yesteryear, plus a slightly partial history of his infamous Scull PD library.
|
Adventure and arcade games by a great PD figure of yesteryear, plus a slightly partial history of his infamous Scull PD library.
|
||||||
16001 POKEs and cheats for commercial games.
|
16001 POKEs and cheats for commercial games.
|
||||||
16100* Eve of Shadows, Rob Buckley's ground-breaking graphical adventure, and Neil Scrimgeour's epic Lost Phirious trilogy. An essential disc
|
16100* Eve of Shadows, Rob Buckley's ground-breaking graphical adventure, and Neil Scrimgeour's epic Lost Phirious trilogy. An essential disc
|
||||||
for adventure enthusiasts. XC
|
for adventure enthusiasts. XC
|
||||||
16101 Simon Avery Collection
|
16101 Simon Avery Collection
|
||||||
Quilled text adventures by the prolific Devon author, aka Romeo Squirrel. Nothing special, but a good introduction to the genre.
|
Quilled text adventures by the prolific Devon author, aka Romeo Squirrel. Nothing special, but a good introduction to the genre.
|
||||||
16103 Edmund Spicer Collection
|
16103 Edmund Spicer Collection
|
||||||
A disc of largely unchallenging adventures.
|
A disc of largely unchallenging adventures.
|
||||||
16104 The mammoth Geno, plus Secrets of Ur, Blue Raider, and other adventures.
|
16104 The mammoth Geno, plus Secrets of Ur, Blue Raider, and other adventures.
|
||||||
16105 Hitch-Hiker's Guide to Prague
|
16105 Hitch-Hiker's Guide to Prague
|
||||||
16106 Hitch-Hiker's Guide to London
|
16106 Hitch-Hiker's Guide to London
|
||||||
Humorous text adventures by the Electric Monk and Guardian of the Blind. Both discs are required to play the London game.
|
Humorous text adventures by the Electric Monk and Guardian of the Blind. Both discs are required to play the London game.
|
||||||
16200 Puzzle games galore, including several well-presented mindbenders from Germany's MOPS group.
|
16200 Puzzle games galore, including several well-presented mindbenders from Germany's MOPS group.
|
||||||
16201 Crossword Compiler
|
16201 Crossword Compiler
|
||||||
Keith Mortimer's over-rated crossword utility and word games. 128
|
Keith Mortimer's over-rated crossword utility and word games. 128
|
||||||
16202* Tetris Games
|
16202* Tetris Games
|
||||||
Variations on a famous theme, from pure Tetris clones like Alinka, Power Tetris, and DrehDriss, to related concepts such as Couleurs.
|
Variations on a famous theme, from pure Tetris clones like Alinka, Power Tetris, and DrehDriss, to related concepts such as Couleurs.
|
||||||
The most addictive disc in the library?
|
The most addictive disc in the library?
|
||||||
16203* Joe Moulding's unmissable Last Of The Smileys arcade puzzle, plus Cool World and a selection of French games to exercise your grey matter.
|
16203* Joe Moulding's unmissable Last Of The Smileys arcade puzzle, plus Cool World and a selection of French games to exercise your grey matter.
|
||||||
16300 Demos of Continental arcade smashes Zap't'Balls and Xyphoes Phantasy.
|
16300 Demos of Continental arcade smashes Zap't'Balls and Xyphoes Phantasy.
|
||||||
16301* The Radical Collection volume 1
|
16301* The Radical Collection volume 1
|
||||||
Rob Buckley's stunning platform game Fluff (6128 Plus only), the enjoyable Ball Bearing, and a demo of shootemup Masters of Space. XC
|
Rob Buckley's stunning platform game Fluff (6128 Plus only), the enjoyable Ball Bearing, and a demo of shootemup Masters of Space. XC
|
||||||
16302* Arcade classics including Invaders, Croco Magneto, Dripzone (a Breakout clone), and Pacman-with-a-difference Cyberboy.
|
16302* Arcade classics including Invaders, Croco Magneto, Dripzone (a Breakout clone), and Pacman-with-a-difference Cyberboy.
|
||||||
16303* The Vortex Collection
|
16303* The Vortex Collection
|
||||||
Four fantastic games from Vortex Software, ranging from the zapping action of HATE to the fiendish puzzles of Deflektor, plus colourful PD games
|
Four fantastic games from Vortex Software, ranging from the zapping action of HATE to the fiendish puzzles of Deflektor, plus colourful PD games
|
||||||
from the assembler of David Hall. XC 128
|
from the assembler of David Hall. XC 128
|
||||||
16304 Demos of Incentive Software's Total Eclipse (3D arcade adventure) and Megablasters, plus Space Froggy and Wipeout, two great arcade games
|
16304 Demos of Incentive Software's Total Eclipse (3D arcade adventure) and Megablasters, plus Space Froggy and Wipeout, two great arcade games
|
||||||
written to demonstrate game creation systems.
|
written to demonstrate game creation systems.
|
||||||
16307 Street Warriors
|
16307 Street Warriors
|
||||||
An ambitious Street Fighter clone by Marcus Kasumba. Its BASIC shell makes it sluggish at times, but the gameplay is still there.
|
An ambitious Street Fighter clone by Marcus Kasumba. Its BASIC shell makes it sluggish at times, but the gameplay is still there.
|
||||||
16308* The Radical Collection volume 2
|
16308* The Radical Collection volume 2
|
||||||
Two more ex-commercial games from the Radical Software vaults: this time futuristic racing sim Star Driver and the excellent Light-Force clone
|
Two more ex-commercial games from the Radical Software vaults: this time futuristic racing sim Star Driver and the excellent Light-Force clone
|
||||||
Masters of Space, by Stephen Lond Davis. XC
|
Masters of Space, by Stephen Lond Davis. XC
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -271404,47 +271404,47 @@ AMSDOS software, 5
|
|||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
|
|
||||||
17000 An introduction to overscan graphics (full screen, no border).
|
17000 An introduction to overscan graphics (full screen, no border).
|
||||||
17100* Amiga Graphics
|
17100* Amiga Graphics
|
||||||
David Carter's famous compilation of pictures transferred from the Amiga. A slideshow of simply stunning quality.
|
David Carter's famous compilation of pictures transferred from the Amiga. A slideshow of simply stunning quality.
|
||||||
17101* Amiga Graphics 2
|
17101* Amiga Graphics 2
|
||||||
Volume two of the classic slideshow.
|
Volume two of the classic slideshow.
|
||||||
17102 Digital Demo 7
|
17102 Digital Demo 7
|
||||||
17103 Peter Campbell Collection
|
17103 Peter Campbell Collection
|
||||||
Showcasing the bizarre sense of humour of the Comsoft boss and self-proclaimed babe magnet.
|
Showcasing the bizarre sense of humour of the Comsoft boss and self-proclaimed babe magnet.
|
||||||
17104 Rock Show
|
17104 Rock Show
|
||||||
Pictures of '80s rock stars, digitised by Nullos Cracker.
|
Pictures of '80s rock stars, digitised by Nullos Cracker.
|
||||||
17105 David Carter's Turtlemuck slideshow (the Teenage Mutant Hero Turtles as you've never seen them before) and scenes from Gone With The Wind.
|
17105 David Carter's Turtlemuck slideshow (the Teenage Mutant Hero Turtles as you've never seen them before) and scenes from Gone With The Wind.
|
||||||
17106 Miscellaneous slideshows (or 'Diashows') from Germany.
|
17106 Miscellaneous slideshows (or 'Diashows') from Germany.
|
||||||
17107 Pictures produced by members of the British CPC club WACCI.
|
17107 Pictures produced by members of the British CPC club WACCI.
|
||||||
17108 More WACCI pictures.
|
17108 More WACCI pictures.
|
||||||
17109 A high-quality slideshow of overscan (full screen) pictures.
|
17109 A high-quality slideshow of overscan (full screen) pictures.
|
||||||
17110 Stills from the Victor and Hugo cartoon and from the Schwarzenegger film Terminator II.
|
17110 Stills from the Victor and Hugo cartoon and from the Schwarzenegger film Terminator II.
|
||||||
17111* Beautiful hand-drawn overscan pictures by MaDe of Rebels (regularly voted "best artist" in European fanzines' readers' polls), plus subtly drawn
|
17111* Beautiful hand-drawn overscan pictures by MaDe of Rebels (regularly voted "best artist" in European fanzines' readers' polls), plus subtly drawn
|
||||||
MODE 1 artwork which was used to demonstrate the CPC in its early days!
|
MODE 1 artwork which was used to demonstrate the CPC in its early days!
|
||||||
17112 Conspiracy Plus Slideshow
|
17112 Conspiracy Plus Slideshow
|
||||||
Digitised pictures in 16 shades of grey, for viewing on CPC Plus machines. Plus only
|
Digitised pictures in 16 shades of grey, for viewing on CPC Plus machines. Plus only
|
||||||
17114 Digitised and hand-drawn pictures by David Carter.
|
17114 Digitised and hand-drawn pictures by David Carter.
|
||||||
17115 Digitised and hand-drawn pictures by David Carter and Mark Chater.
|
17115 Digitised and hand-drawn pictures by David Carter and Mark Chater.
|
||||||
17200 Clip art in .CUT format for Stop Press or PowerPage.
|
17200 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17201 Clip art in .CUT format for Stop Press or PowerPage.
|
17201 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17202 Clip art in .CUT format for Stop Press or PowerPage.
|
17202 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17203 Clip art in .CUT format for Stop Press or PowerPage.
|
17203 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17204 Clip art in .CUT format for Stop Press or PowerPage.
|
17204 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17205 Clip art in .CUT format for Stop Press or PowerPage. Includes a themed set of transport pictures.
|
17205 Clip art in .CUT format for Stop Press or PowerPage. Includes a themed set of transport pictures.
|
||||||
17206 PowerPage clip art from the CPC SouthWest user group.
|
17206 PowerPage clip art from the CPC SouthWest user group.
|
||||||
17207 Clip art for Stop Press and MicroDesign.
|
17207 Clip art for Stop Press and MicroDesign.
|
||||||
17208 Clip art in .CUT format for Stop Press or PowerPage.
|
17208 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17209 Clip art in .CUT format for Stop Press or PowerPage.
|
17209 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17210 Clip art in .CUT format for Stop Press or PowerPage.
|
17210 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17211 Clip art in .CUT format for Stop Press or PowerPage.
|
17211 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17212 Clip art in .CUT format for Stop Press or PowerPage.
|
17212 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17213 Clip art in .CUT format for Stop Press or PowerPage.
|
17213 Clip art in .CUT format for Stop Press or PowerPage.
|
||||||
17300 Femmes Entre Elles and Lovepack, two explicit slideshows for over-18s only. 18
|
17300 Femmes Entre Elles and Lovepack, two explicit slideshows for over-18s only. 18
|
||||||
17301 Two more collections of explicit pictures: Electric Show and Nice Picture Show II (green-screen only). 18
|
17301 Two more collections of explicit pictures: Electric Show and Nice Picture Show II (green-screen only). 18
|
||||||
17401 Short graphical demos, including a well-drawn collection of flags by Stuart Gascoigne and Andre Coutanche.
|
17401 Short graphical demos, including a well-drawn collection of flags by Stuart Gascoigne and Andre Coutanche.
|
||||||
17500* A superbly varied pack of fonts, in PowerPage, MicroDesign, Advanced Art Studio, and 8x8 screen formats. Whether you're laying out a fanzine
|
17500* A superbly varied pack of fonts, in PowerPage, MicroDesign, Advanced Art Studio, and 8x8 screen formats. Whether you're laying out a fanzine
|
||||||
or coding a scrolltext, there's sure to be a font for you here.
|
or coding a scrolltext, there's sure to be a font for you here.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -272050,53 +272050,53 @@ AMSDOS software, 6
|
|||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
|
|
||||||
18100 Simple demos by LDC, aka David Long of Demon PD.
|
18100 Simple demos by LDC, aka David Long of Demon PD.
|
||||||
18101 British demos.
|
18101 British demos.
|
||||||
18102 CRTC Collection
|
18102 CRTC Collection
|
||||||
Demos by CRTC (Richard Fairhurst), including 1992's Inspiration demo and the MacBugs meeting demo.
|
Demos by CRTC (Richard Fairhurst), including 1992's Inspiration demo and the MacBugs meeting demo.
|
||||||
18103 British demos.
|
18103 British demos.
|
||||||
18104 Demoware
|
18104 Demoware
|
||||||
Excruciating demo by the Bitmap Vandals, plus previews of the follow-up, recently unearthed by Matthew Breckon.
|
Excruciating demo by the Bitmap Vandals, plus previews of the follow-up, recently unearthed by Matthew Breckon.
|
||||||
18105* Four excellent British demos: Wulf 3 (with truly beautiful graphics), Conspiracy TV, Atlantic Coding's Chill, and Frequency's Soundtrakker demo.
|
18105* Four excellent British demos: Wulf 3 (with truly beautiful graphics), Conspiracy TV, Atlantic Coding's Chill, and Frequency's Soundtrakker demo.
|
||||||
18106 Martin Young's impressive 4-bit samples, and Palm Coding's superlative Blip! Music compilation.
|
18106 Martin Young's impressive 4-bit samples, and Palm Coding's superlative Blip! Music compilation.
|
||||||
18108* Audio Illusions
|
18108* Audio Illusions
|
||||||
A huge collection of music penned by Frequency of Systeme D, complete with interesting graphic effects and quality pictures by the Doodler.
|
A huge collection of music penned by Frequency of Systeme D, complete with interesting graphic effects and quality pictures by the Doodler.
|
||||||
18200 Terrific Demo
|
18200 Terrific Demo
|
||||||
A classic megademo by Weee! and Thriller (Cadjo Clan), with some of the best music around. 128
|
A classic megademo by Weee! and Thriller (Cadjo Clan), with some of the best music around. 128
|
||||||
18201* The Demo
|
18201* The Demo
|
||||||
As definitive as the title suggests, this is Logon System's meisterwerk. Seven parts forming the best examples of demo coding you'll ever find,
|
As definitive as the title suggests, this is Logon System's meisterwerk. Seven parts forming the best examples of demo coding you'll ever find,
|
||||||
and a revolution on its release in 1992. If you only ever see one demo, make sure it's this one. 128
|
and a revolution on its release in 1992. If you only ever see one demo, make sure it's this one. 128
|
||||||
18202 Logon System Collection 1
|
18202 Logon System Collection 1
|
||||||
Early demos by the founders of CPC demo coding, including the Malibu/Logon collaboration, Amazing Demo.
|
Early demos by the founders of CPC demo coding, including the Malibu/Logon collaboration, Amazing Demo.
|
||||||
18203* Logon System Collection 2
|
18203* Logon System Collection 2
|
||||||
The final releases by Logon System, including Overflow's breath-taking third demo, F**ing Exams, and the Euromeeting Demo. 128
|
The final releases by Logon System, including Overflow's breath-taking third demo, F**ing Exams, and the Euromeeting Demo. 128
|
||||||
18204 Paradise Demo
|
18204 Paradise Demo
|
||||||
An accomplished, if predictable, megademo from Paradox.
|
An accomplished, if predictable, megademo from Paradox.
|
||||||
18205 French Classics 1
|
18205 French Classics 1
|
||||||
A selection of the best releases from the heyday of French demo coding. Includes work by Fefesse and the Malibu Crackers.
|
A selection of the best releases from the heyday of French demo coding. Includes work by Fefesse and the Malibu Crackers.
|
||||||
18206 French Classics 2
|
18206 French Classics 2
|
||||||
More examples of Gallic genius, including Malibu's head-spinning farewell, the Intox demo.
|
More examples of Gallic genius, including Malibu's head-spinning farewell, the Intox demo.
|
||||||
18207 Continental Classics
|
18207 Continental Classics
|
||||||
A snapshot of the demo scene in Germany and elsewhere, c. 1990. Best of all is KKB's imaginative First Demo.
|
A snapshot of the demo scene in Germany and elsewhere, c. 1990. Best of all is KKB's imaginative First Demo.
|
||||||
18212 Voyage 1993
|
18212 Voyage 1993
|
||||||
Formulaic megademo by Prodatron and Alien of BENG!. 128
|
Formulaic megademo by Prodatron and Alien of BENG!. 128
|
||||||
18213 Prodatron Megademo
|
18213 Prodatron Megademo
|
||||||
18214 NWC Collection
|
18214 NWC Collection
|
||||||
The innovative work of Danish demo coder Peter Sorensen, whose most recent release is entitled Unique (18218).
|
The innovative work of Danish demo coder Peter Sorensen, whose most recent release is entitled Unique (18218).
|
||||||
18215* Ultimate Megademo
|
18215* Ultimate Megademo
|
||||||
Thought by many to rival The Demo, Face Hugger's imaginative demo introduced a new talent to the CPC coding world and started a
|
Thought by many to rival The Demo, Face Hugger's imaginative demo introduced a new talent to the CPC coding world and started a
|
||||||
craze for 3D effects. Also includes Elmar Krieger's spectacular Chain Demo. 128
|
craze for 3D effects. Also includes Elmar Krieger's spectacular Chain Demo. 128
|
||||||
18216* Divine Megademo disc 1
|
18216* Divine Megademo disc 1
|
||||||
18217* Divine Megademo disc 2
|
18217* Divine Megademo disc 2
|
||||||
The enormous new demo by three of Europe's premier coding talents - Antoine Pitrou, Mage, and Odiesoft. Not as slick as you might hope,
|
The enormous new demo by three of Europe's premier coding talents - Antoine Pitrou, Mage, and Odiesoft. Not as slick as you might hope,
|
||||||
but contains some of the best CPC coding ever. Both discs needed. 128
|
but contains some of the best CPC coding ever. Both discs needed. 128
|
||||||
18218 Unique
|
18218 Unique
|
||||||
The long-awaited megademo by NWC of Unix, with new effects including an enormous sine scroll and starfield loader. 128
|
The long-awaited megademo by NWC of Unix, with new effects including an enormous sine scroll and starfield loader. 128
|
||||||
18300 Pleasure Zone
|
18300 Pleasure Zone
|
||||||
A slideshow of sexually explicit animations. 18
|
A slideshow of sexually explicit animations. 18
|
||||||
18303 More animations of a dubious nature, including the infamous Germaine demos and the Fire Engine animation. 18
|
18303 More animations of a dubious nature, including the infamous Germaine demos and the Fire Engine animation. 18
|
||||||
18400 Animations of bouncing balls, violin players, Dr Spock, and many more.
|
18400 Animations of bouncing balls, violin players, Dr Spock, and many more.
|
||||||
18401 Vector animations produced by David Carter with Discovery's Animator package. Very smooth. 128
|
18401 Vector animations produced by David Carter with Discovery's Animator package. Very smooth. 128
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -272594,84 +272594,84 @@ AMSDOS software, 7
|
|||||||
These discs are intended for Amstrad CPC and Plus computers.
|
These discs are intended for Amstrad CPC and Plus computers.
|
||||||
|
|
||||||
|
|
||||||
19100 S.E.X. 1
|
19100 S.E.X. 1
|
||||||
English-language fanzine from Greece. 18
|
English-language fanzine from Greece. 18
|
||||||
19101 C.E.F. 4/Fanzam 5
|
19101 C.E.F. 4/Fanzam 5
|
||||||
Unpretentious and little-known British disc fanzine.
|
Unpretentious and little-known British disc fanzine.
|
||||||
19102 Donut Mag 1, Otto 1
|
19102 Donut Mag 1, Otto 1
|
||||||
The first issues of Tom Dean's lively disczine and Nicholas Campbell's more po-faced production.
|
The first issues of Tom Dean's lively disczine and Nicholas Campbell's more po-faced production.
|
||||||
19103 S.E.X. 2
|
19103 S.E.X. 2
|
||||||
The latest issue of the Greek fanzine.
|
The latest issue of the Greek fanzine.
|
||||||
19104 Amstrad User 6
|
19104 Amstrad User 6
|
||||||
19105 Amstrad User 7
|
19105 Amstrad User 7
|
||||||
Fanzine from Ireland. 128
|
Fanzine from Ireland. 128
|
||||||
19106 Donut Mag 2
|
19106 Donut Mag 2
|
||||||
Controversial but very enjoyable second issue of the Donut System fanzine.
|
Controversial but very enjoyable second issue of the Donut System fanzine.
|
||||||
19107 Otto 4
|
19107 Otto 4
|
||||||
19108 Otto 3
|
19108 Otto 3
|
||||||
Nicholas Campbell's fanzine, now incorporating Jonty Jones's After Dark.
|
Nicholas Campbell's fanzine, now incorporating Jonty Jones's After Dark.
|
||||||
19109 Ovation 2, CPC Telegramm 17
|
19109 Ovation 2, CPC Telegramm 17
|
||||||
Worthy but dull Greek fanzine coupled with the latest issue of Germany's excellent dual-language newszine.
|
Worthy but dull Greek fanzine coupled with the latest issue of Germany's excellent dual-language newszine.
|
||||||
19110 Otto 5
|
19110 Otto 5
|
||||||
The final issue.
|
The final issue.
|
||||||
19111* BTL 1
|
19111* BTL 1
|
||||||
19112* BTL 2
|
19112* BTL 2
|
||||||
19113* BTL 3
|
19113* BTL 3
|
||||||
19114* BTL 4
|
19114* BTL 4
|
||||||
The inimitable British disc fanzine, produced by leading lights of the STS and Systeme D groups, and with more libel than
|
The inimitable British disc fanzine, produced by leading lights of the STS and Systeme D groups, and with more libel than
|
||||||
you would have thought could be packed into one 360k disc.
|
you would have thought could be packed into one 360k disc.
|
||||||
19121 EuroWACCI 1
|
19121 EuroWACCI 1
|
||||||
A selection of classic articles from the WACCI paperzine in a freely distributable form for the European market.
|
A selection of classic articles from the WACCI paperzine in a freely distributable form for the European market.
|
||||||
19122 EuroWACCI 2
|
19122 EuroWACCI 2
|
||||||
19125 ATM 1
|
19125 ATM 1
|
||||||
19126 ATM 2
|
19126 ATM 2
|
||||||
19127* ATM 3
|
19127* ATM 3
|
||||||
Amstrad Technical Mag: an intriguing mixture of gossip and hardware tips from Roy Everett and Nigel Callcutt.
|
Amstrad Technical Mag: an intriguing mixture of gossip and hardware tips from Roy Everett and Nigel Callcutt.
|
||||||
19128* Digital Press 3 disc 1
|
19128* Digital Press 3 disc 1
|
||||||
19129* Digital Press 3 disc 2
|
19129* Digital Press 3 disc 2
|
||||||
Informative and expansive French-German co-production. 128
|
Informative and expansive French-German co-production. 128
|
||||||
19130 Impact 3, Otto 2
|
19130 Impact 3, Otto 2
|
||||||
Fanzines by Tom Dean and Nicholas Campbell.
|
Fanzines by Tom Dean and Nicholas Campbell.
|
||||||
19131 Another World 1 & 2
|
19131 Another World 1 & 2
|
||||||
19132 Another World 3 & 4
|
19132 Another World 3 & 4
|
||||||
Richard Avery's simple disc fanzine.>
|
Richard Avery's simple disc fanzine.>
|
||||||
19200 Disc Full 5
|
19200 Disc Full 5
|
||||||
19201 Disc Full 6
|
19201 Disc Full 6
|
||||||
19202 Disc Full 7
|
19202 Disc Full 7
|
||||||
Beautifully produced French-language disczine. Compatible with 6128 only.
|
Beautifully produced French-language disczine. Compatible with 6128 only.
|
||||||
19203 Ams'Dem 1
|
19203 Ams'Dem 1
|
||||||
19204 Ams'Dem 3
|
19204 Ams'Dem 3
|
||||||
19205 Z80 4
|
19205 Z80 4
|
||||||
19206 Micro-Mag 5
|
19206 Micro-Mag 5
|
||||||
19207 The Addams Fanz 1
|
19207 The Addams Fanz 1
|
||||||
19208 Disc Full 8
|
19208 Disc Full 8
|
||||||
19209 Crack'n'Rom 7
|
19209 Crack'n'Rom 7
|
||||||
19210 Micro-Mag/Press Fire 7
|
19210 Micro-Mag/Press Fire 7
|
||||||
19211 Disc Full 10
|
19211 Disc Full 10
|
||||||
French-language disczines.
|
French-language disczines.
|
||||||
19212 Dracula Fanz 4
|
19212 Dracula Fanz 4
|
||||||
19213 Demoniak 4
|
19213 Demoniak 4
|
||||||
19214 Dracula Fanz 5 disc 1
|
19214 Dracula Fanz 5 disc 1
|
||||||
19215 Dracula Fanz 5 disc 2
|
19215 Dracula Fanz 5 disc 2
|
||||||
Some of the latest French-language disczines, with presentation more akin to that of a demo. A visual feast even for those who don't speak the language.
|
Some of the latest French-language disczines, with presentation more akin to that of a demo. A visual feast even for those who don't speak the language.
|
||||||
19300 Amsmail 1
|
19300 Amsmail 1
|
||||||
A vintage German-language disczine.
|
A vintage German-language disczine.
|
||||||
19301 CPC Fastloader 4, Bad Mag 1
|
19301 CPC Fastloader 4, Bad Mag 1
|
||||||
An issue of Prodatron's German-language fanzine plus the debut of notorious bilingual fanzine Bad Mag.
|
An issue of Prodatron's German-language fanzine plus the debut of notorious bilingual fanzine Bad Mag.
|
||||||
19302 CPC Fastloader 6
|
19302 CPC Fastloader 6
|
||||||
19303 Xtreme 1
|
19303 Xtreme 1
|
||||||
The final issue of Prodatron's original disczine and the first fruit of his collaboration with Hypnomega. Mostly German-language.
|
The final issue of Prodatron's original disczine and the first fruit of his collaboration with Hypnomega. Mostly German-language.
|
||||||
19304 CPC Challenge 12
|
19304 CPC Challenge 12
|
||||||
19305 Bad Mag 2
|
19305 Bad Mag 2
|
||||||
The second and final issue of the virulent Bad Mag.
|
The second and final issue of the virulent Bad Mag.
|
||||||
19306* Xtreme 2
|
19306* Xtreme 2
|
||||||
Probably the best of the "big name" fanzines, with flawless presentation and well-informed (bilingual) content.
|
Probably the best of the "big name" fanzines, with flawless presentation and well-informed (bilingual) content.
|
||||||
19307 Xtreme 3, CPC Challenge 17
|
19307 Xtreme 3, CPC Challenge 17
|
||||||
19309 Disc Mac Challenge 19/20
|
19309 Disc Mac Challenge 19/20
|
||||||
Hypnomega's popular document of German scene culture.
|
Hypnomega's popular document of German scene culture.
|
||||||
19310 Tribal Mag 7 disc 1
|
19310 Tribal Mag 7 disc 1
|
||||||
19311 Tribal Mag 7 disc 2, Disc Mac Challenge 21
|
19311 Tribal Mag 7 disc 2, Disc Mac Challenge 21
|
||||||
The most recent issue of Juggler's mammoth German/English fanzine: varied and interesting content. Also the latest CPC Challenge.
|
The most recent issue of Juggler's mammoth German/English fanzine: varied and interesting content. Also the latest CPC Challenge.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -273610,44 +273610,44 @@ These discs are intended for Amstrad CPC and Plus computers.
|
|||||||
|
|
||||||
CP/M software
|
CP/M software
|
||||||
|
|
||||||
These discs are compatible with both Amstrad CPCs and PCWs. CP/M 2.2 (as supplied with 64k CPCs) may not be capable of running certain programs:
|
These discs are compatible with both Amstrad CPCs and PCWs. CP/M 2.2 (as supplied with 64k CPCs) may not be capable of running certain programs:
|
||||||
a few are CPC-only or, rarely, CP/M 2.2-only.
|
a few are CPC-only or, rarely, CP/M 2.2-only.
|
||||||
|
|
||||||
21100* VDE
|
21100* VDE
|
||||||
The commercial quality word-processor (file length up to 60k) in both its original and revised "ZDE" forms, plus a PD spell-checker.
|
The commercial quality word-processor (file length up to 60k) in both its original and revised "ZDE" forms, plus a PD spell-checker.
|
||||||
21101 Express Writer and Bradford, two word-processors with high quality printout options.
|
21101 Express Writer and Bradford, two word-processors with high quality printout options.
|
||||||
21400* Printmaster
|
21400* Printmaster
|
||||||
Ingenious poster and card design package, with an integral font and clip art library. Easy to use and capable of superb results.
|
Ingenious poster and card design package, with an integral font and clip art library. Easy to use and capable of superb results.
|
||||||
21600 GigaCAD
|
21600 GigaCAD
|
||||||
Graphical CAD system from Germany. CP/M 2.2 only
|
Graphical CAD system from Germany. CP/M 2.2 only
|
||||||
22000 Miscellaneous utilities including date-stamping, print processing, and easy menu creation.
|
22000 Miscellaneous utilities including date-stamping, print processing, and easy menu creation.
|
||||||
22100* Filesweep utilities
|
22100* Filesweep utilities
|
||||||
A set of intuitive file utilities, including the classic Newsweep (NSWP) and enhancements such as Maxisweep. If you can use ParaDOS, you can use these.
|
A set of intuitive file utilities, including the classic Newsweep (NSWP) and enhancements such as Maxisweep. If you can use ParaDOS, you can use these.
|
||||||
22101 Sector editors and extended format utilities, including PC and PCW disc readers. Not PCW
|
22101 Sector editors and extended format utilities, including PC and PCW disc readers. Not PCW
|
||||||
22300 File crunchers, providing a highly space-effective way of archiving your spare files.
|
22300 File crunchers, providing a highly space-effective way of archiving your spare files.
|
||||||
22301 File crunchers.
|
22301 File crunchers.
|
||||||
22400 Two front-ends: the excellent GUI of Geno (CP/M 2.2 only) and the Unix-like command line of SUnix.
|
22400 Two front-ends: the excellent GUI of Geno (CP/M 2.2 only) and the Unix-like command line of SUnix.
|
||||||
23100 Comms terminal MEX, with several pre-defined system configurations.
|
23100 Comms terminal MEX, with several pre-defined system configurations.
|
||||||
23101* ZMP, the only CPC/PCW terminal to support the efficient ZModem file transfer protocol, plus the customisable QTerm terminal program.
|
23101* ZMP, the only CPC/PCW terminal to support the efficient ZModem file transfer protocol, plus the customisable QTerm terminal program.
|
||||||
23102 The SmartModem terminal and CRR (CP/M Read and Reply off-line reader).
|
23102 The SmartModem terminal and CRR (CP/M Read and Reply off-line reader).
|
||||||
23103 Kermit and UUCP file transfer, plus the CPC-Modem terminal program.
|
23103 Kermit and UUCP file transfer, plus the CPC-Modem terminal program.
|
||||||
23205 XRAS bulletin-board system.
|
23205 XRAS bulletin-board system.
|
||||||
24100* ZBASIC and MBASIC
|
24100* ZBASIC and MBASIC
|
||||||
Two alternative versions of BASIC. ZBASIC is a cut-down version of a fast commercial BASIC compiler, while Microsoft's classic MBASIC
|
Two alternative versions of BASIC. ZBASIC is a cut-down version of a fast commercial BASIC compiler, while Microsoft's classic MBASIC
|
||||||
is the program with which the manufacturers of Windows first made their name.
|
is the program with which the manufacturers of Windows first made their name.
|
||||||
24200 XLisp
|
24200 XLisp
|
||||||
24300 JRT Pascal disc 1
|
24300 JRT Pascal disc 1
|
||||||
24301 JRT Pascal disc 2
|
24301 JRT Pascal disc 2
|
||||||
An interpreted version of the language with extensive documentation.
|
An interpreted version of the language with extensive documentation.
|
||||||
24302 Small C
|
24302 Small C
|
||||||
24303 Small C source
|
24303 Small C source
|
||||||
Interprets a subset of the system programming language.
|
Interprets a subset of the system programming language.
|
||||||
24400 Z80dis
|
24400 Z80dis
|
||||||
Flexible Z80 disassembler.
|
Flexible Z80 disassembler.
|
||||||
24401* Dazzlestar, arguably the most fully-featured disassembler available for Z80 systems, plus powerful assembler ZSM.
|
24401* Dazzlestar, arguably the most fully-featured disassembler available for Z80 systems, plus powerful assembler ZSM.
|
||||||
26100* The original adventure game (later dubbed "Classic Adventure"), a puzzler of renowned intensity, plus more recent adventures by Amstrad programmers.
|
26100* The original adventure game (later dubbed "Classic Adventure"), a puzzler of renowned intensity, plus more recent adventures by Amstrad programmers.
|
||||||
26101 A selection of adventures including Ken Bond's famously tricky Base and Island.
|
26101 A selection of adventures including Ken Bond's famously tricky Base and Island.
|
||||||
26300 Arcade games including Tetris clone Quatris, Pacman, Tornado, and Maze Chase. Some not CP/M 2.2: Tornado CP/M 2.2 only
|
26300 Arcade games including Tetris clone Quatris, Pacman, Tornado, and Maze Chase. Some not CP/M 2.2: Tornado CP/M 2.2 only
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Some of these were normal Videopac G7000 carts with enhanced graphics for the Videopac Plus G7400 and the unreleased
|
Some of these were normal Videopac G7000 carts with enhanced graphics for the Videopac Plus G7400 and the unreleased
|
||||||
Odyssey³ Command Center
|
Odyssey³ Command Center
|
||||||
-->
|
-->
|
||||||
|
@ -24480,7 +24480,7 @@
|
|||||||
<dataarea name="rom" size="245760">
|
<dataarea name="rom" size="245760">
|
||||||
<rom name="x (usa) (proto).bin" size="245760" crc="cd555712" sha1="b1c5b60b82aaa0b824f7bf67fc8f111377ccfb6a" offset="000000" />
|
<rom name="x (usa) (proto).bin" size="245760" crc="cd555712" sha1="b1c5b60b82aaa0b824f7bf67fc8f111377ccfb6a" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
@ -162,7 +162,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="524288">
|
<dataarea name="rom" size="524288">
|
||||||
<rom name="3-d ultra pinball - thrillride (usa).bin" size="524288" crc="1766e558" sha1="2b704415803cf6172a1d07912b1155c51576a511" offset="000000" />
|
<rom name="3-d ultra pinball - thrillride (usa).bin" size="524288" crc="1766e558" sha1="2b704415803cf6172a1d07912b1155c51576a511" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192">
|
<dataarea name="nvram" size="8192">
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -11870,7 +11870,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="4194304">
|
<dataarea name="rom" size="4194304">
|
||||||
<rom name="love hina pocket (japan).bin" size="4194304" crc="1c877abd" sha1="912c09f99bdae6e7fcd62d0c6f727e5fff93db70" offset="000000" />
|
<rom name="love hina pocket (japan).bin" size="4194304" crc="1c877abd" sha1="912c09f99bdae6e7fcd62d0c6f727e5fff93db70" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192">
|
<dataarea name="nvram" size="8192">
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -18682,7 +18682,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="131072">
|
<dataarea name="rom" size="131072">
|
||||||
<rom name="roadsters '98 (usa) (proto).bin" size="131072" crc="fe2995a1" sha1="30a28cd5e020e98b0e7016b5ccda5bc0972a0ac9" offset="000000" />
|
<rom name="roadsters '98 (usa) (proto).bin" size="131072" crc="fe2995a1" sha1="30a28cd5e020e98b0e7016b5ccda5bc0972a0ac9" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -25007,7 +25007,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="1048576">
|
<dataarea name="rom" size="1048576">
|
||||||
<rom name="harry potter (unl).bin" size="1048576" crc="5bebe333" sha1="dfd0693315da697240b510776695162880a75a82" offset="000000" />
|
<rom name="harry potter (unl).bin" size="1048576" crc="5bebe333" sha1="dfd0693315da697240b510776695162880a75a82" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -25872,7 +25872,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="4194304">
|
<dataarea name="rom" size="4194304">
|
||||||
<rom name="shu ma bao long 9 - bao long pian 2002 (unlicensed, chinese) [raw dump].bin" size="4194304" crc="76ab97f6" sha1="c3d9e17c9b01959b64a7c662479c755f757f58c9" offset="000000" />
|
<rom name="shu ma bao long 9 - bao long pian 2002 (unlicensed, chinese) [raw dump].bin" size="4194304" crc="76ab97f6" sha1="c3d9e17c9b01959b64a7c662479c755f757f58c9" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -26091,7 +26091,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="1048576">
|
<dataarea name="rom" size="1048576">
|
||||||
<rom name="mark of the wolves (chi).bin" size="1048576" crc="219decf9" sha1="27cffc9c0224a7bb2e0751073a27670017211c87" offset="000000" />
|
<rom name="mark of the wolves (chi).bin" size="1048576" crc="219decf9" sha1="27cffc9c0224a7bb2e0751073a27670017211c87" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -26125,7 +26125,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="1048576">
|
<dataarea name="rom" size="1048576">
|
||||||
<rom name="e fighter hot (chi).bin" size="1048576" crc="8fa2539d" sha1="93a3716f8f41b89bee795af6e8f6fdddfcd8acf1" offset="000000" />
|
<rom name="e fighter hot (chi).bin" size="1048576" crc="8fa2539d" sha1="93a3716f8f41b89bee795af6e8f6fdddfcd8acf1" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
@ -26161,7 +26161,7 @@ Undumped Pirates:
|
|||||||
<dataarea name="rom" size="1048576">
|
<dataarea name="rom" size="1048576">
|
||||||
<rom name="harry potter 3 (chi).bin" size="1048576" crc="4ea2c869" sha1="739c0e5dc0efd4ddb912236a6f630c3d6987d064" offset="000000" />
|
<rom name="harry potter 3 (chi).bin" size="1048576" crc="4ea2c869" sha1="739c0e5dc0efd4ddb912236a6f630c3d6987d064" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
@ -835,20 +835,20 @@ Missing files come here
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
This is not a real dump, it was constructed using WinImage for use with MESS
|
This is not a real dump, it was constructed using WinImage for use with MESS
|
||||||
Also circulating with CRC fb591430
|
Also circulating with CRC fb591430
|
||||||
<software name="ptombs">
|
<software name="ptombs">
|
||||||
<description>Pharaoh's Tomb (Shareware)</description>
|
<description>Pharaoh's Tomb (Shareware)</description>
|
||||||
<year>1994</year>
|
<year>1994</year>
|
||||||
<publisher>Apogee</publisher>
|
<publisher>Apogee</publisher>
|
||||||
<part name="flop1" interface="floppy_5_25">
|
<part name="flop1" interface="floppy_5_25">
|
||||||
<dataarea name="flop" size="368640">
|
<dataarea name="flop" size="368640">
|
||||||
<rom name="pharaoh's tomb (shareware).img" size="368640" crc="b1f4dbf6" sha1="d3c4ae0b6ac6b5233c4970805c8e4f2b89f9c57a" offset="0" />
|
<rom name="pharaoh's tomb (shareware).img" size="368640" crc="b1f4dbf6" sha1="d3c4ae0b6ac6b5233c4970805c8e4f2b89f9c57a" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<software name="raptor12">
|
<software name="raptor12">
|
||||||
|
@ -11,7 +11,7 @@ Games:
|
|||||||
Goofy Golf*
|
Goofy Golf*
|
||||||
Combat!*
|
Combat!*
|
||||||
Superbowl
|
Superbowl
|
||||||
Football* (QQA-308)
|
Football* (QQA-308)
|
||||||
Astro-Logic*
|
Astro-Logic*
|
||||||
Hammurabi*
|
Hammurabi*
|
||||||
Life*
|
Life*
|
||||||
@ -22,19 +22,19 @@ Thinkcards*
|
|||||||
Computer Quiz
|
Computer Quiz
|
||||||
|
|
||||||
Data Sets for use with Computer Quiz:
|
Data Sets for use with Computer Quiz:
|
||||||
TV Trivia The World of Books
|
TV Trivia The World of Books
|
||||||
Famous People World Geography
|
Famous People World Geography
|
||||||
Sports Scene American History
|
Sports Scene American History
|
||||||
Music Masters Complete the Quote
|
Music Masters Complete the Quote
|
||||||
Current Exents Total Trivia
|
Current Exents Total Trivia
|
||||||
Popular Pairs Pseudonyms
|
Popular Pairs Pseudonyms
|
||||||
The Sciences Famous Firsts
|
The Sciences Famous Firsts
|
||||||
Who Said It? All About Animals
|
Who Said It? All About Animals
|
||||||
The Movies The Human Body
|
The Movies The Human Body
|
||||||
|
|
||||||
Programming Aids:
|
Programming Aids:
|
||||||
EZEDIT Program Editor*
|
EZEDIT Program Editor*
|
||||||
Microsoft 8K Fast Graphics BASIC* (replaces Level II BASIC)
|
Microsoft 8K Fast Graphics BASIC* (replaces Level II BASIC)
|
||||||
Micro Video Dissassembler
|
Micro Video Dissassembler
|
||||||
Micro Video Monitor
|
Micro Video Monitor
|
||||||
Bombs Away! Programming Tutorial
|
Bombs Away! Programming Tutorial
|
||||||
@ -89,7 +89,7 @@ Alignment Tape (Micro Video)
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- Tape 102 -->
|
<!-- Tape 102 -->
|
||||||
<software name="startrck">
|
<software name="startrck">
|
||||||
<description>Star Track</description>
|
<description>Star Track</description>
|
||||||
@ -101,7 +101,7 @@ Alignment Tape (Micro Video)
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- Tape 103 -->
|
<!-- Tape 103 -->
|
||||||
<software name="concentr">
|
<software name="concentr">
|
||||||
<description>Concentration</description>
|
<description>Concentration</description>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
<softwarelist name="m20" description="Olivetti M20 floppies">
|
<softwarelist name="m20" description="Olivetti M20 floppies">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
General usage: if not bootable disk, check content with VL, then launch the .cmd files
|
General usage: if not bootable disk, check content with VL, then launch the .cmd files
|
||||||
|
|
||||||
@ -131,8 +131,8 @@
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="msdos20" supported="no">
|
<software name="msdos20" supported="no">
|
||||||
<!-- "This is a standard 360k MS-DOS disk image, 512 bytes/sector, 9 sectors, 2 sides, 40 tracks." -->
|
<!-- "This is a standard 360k MS-DOS disk image, 512 bytes/sector, 9 sectors, 2 sides, 40 tracks." -->
|
||||||
<!-- MESS complains about "Unable to identify the image format" -->
|
<!-- MESS complains about "Unable to identify the image format" -->
|
||||||
<description>MS-DOS 2.0</description>
|
<description>MS-DOS 2.0</description>
|
||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher>Microsoft</publisher>
|
<publisher>Microsoft</publisher>
|
||||||
|
@ -14,37 +14,37 @@ The "rc" feature is used to indicate the source of the clock signal
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="alienrdr">
|
<software name="alienrdr">
|
||||||
<description>Alien Raiders</description>
|
<description>Alien Raiders</description>
|
||||||
<year>1981</year>
|
<year>1981</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="yes" />
|
<feature name="paddle" value="yes" />
|
||||||
<feature name="rc" value="100pf/23.2K" />
|
<feature name="rc" value="100pf/23.2K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="m34009-n1" size="2048" crc="" sha1="" offset="0" />
|
<rom name="m34009-n1" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="Baseball">
|
<software name="Baseball">
|
||||||
<description>Baseball</description>
|
<description>Baseball</description>
|
||||||
<year>1980</year>
|
<year>1980</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="yes" />
|
<feature name="paddle" value="yes" />
|
||||||
<feature name="rc" value="100pf/23.2K" />
|
<feature name="rc" value="100pf/23.2K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="mp3479-n1nll_4063" size="2048" crc="" sha1="" offset="0" />
|
<rom name="mp3479-n1nll_4063" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<software name="blckbstr">
|
<software name="blckbstr">
|
||||||
@ -63,20 +63,20 @@ The "rc" feature is used to indicate the source of the clock signal
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="bowling">
|
<software name="bowling">
|
||||||
<description>Bowling</description>
|
<description>Bowling</description>
|
||||||
<year>1979</year>
|
<year>1979</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<!- - also seen with 4952 REV-A - ->
|
<!- - also seen with 4952 REV-A - ->
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="no" />
|
<feature name="paddle" value="no" />
|
||||||
<feature name="rc" value="100pf/23.2K" />
|
<feature name="rc" value="100pf/23.2K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="mp3475nll_4972" size="2048" crc="" sha1="" offset="0" />
|
<rom name="mp3475nll_4972" size="2048" crc="" sha1="" offset="0" />
|
||||||
|
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<software name="connect4">
|
<software name="connect4">
|
||||||
@ -95,20 +95,20 @@ The "rc" feature is used to indicate the source of the clock signal
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="cosmichu">
|
<software name="cosmichu">
|
||||||
<description>Cosmic hunter</description>
|
<description>Cosmic hunter</description>
|
||||||
<year>1981</year>
|
<year>1981</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="no" />
|
<feature name="paddle" value="no" />
|
||||||
<feature name="rc" value="100pf/23.2K" />
|
<feature name="rc" value="100pf/23.2K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="m34017-n1" size="2048" crc="" sha1="" offset="0" />
|
<rom name="m34017-n1" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<software name="mindbstr">
|
<software name="mindbstr">
|
||||||
@ -142,54 +142,54 @@ The "rc" feature is used to indicate the source of the clock signal
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="pinball">
|
<software name="pinball">
|
||||||
<description>Pinball</description>
|
<description>Pinball</description>
|
||||||
<year>1980</year>
|
<year>1980</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="yes" />
|
<feature name="paddle" value="yes" />
|
||||||
<feature name="rc" value="100pf/21.0K" />
|
<feature name="rc" value="100pf/21.0K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="mp3455nll_4974" size="2048" crc="" sha1="" offset="0" />
|
<rom name="mp3455nll_4974" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="seaduel">
|
<software name="seaduel">
|
||||||
<description>Sea Duel</description>
|
<description>Sea Duel</description>
|
||||||
<year>1980</year>
|
<year>1980</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="4952-79 REV-B" />
|
<feature name="pcb" value="4952-79 REV-B" />
|
||||||
<feature name="paddle" value="no" />
|
<feature name="paddle" value="no" />
|
||||||
<feature name="rc" value="100pf/39.4K" />
|
<feature name="rc" value="100pf/39.4K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="mp3496-n1_4064" size="2048" crc="" sha1="" offset="0" />
|
<rom name="mp3496-n1_4064" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<software name="sprblock">
|
<software name="sprblock">
|
||||||
<description>Super Blockbuster</description>
|
<description>Super Blockbuster</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
<publisher>Milton Bradley</publisher>
|
<publisher>Milton Bradley</publisher>
|
||||||
|
|
||||||
<part name="cart" interface="microvision_cart">
|
<part name="cart" interface="microvision_cart">
|
||||||
<feature name="pcb" value="7924952D02" />
|
<feature name="pcb" value="7924952D02" />
|
||||||
<feature name="paddle" value="yes" />
|
<feature name="paddle" value="yes" />
|
||||||
<feature name="rc" value="100pf/23.2K" />
|
<feature name="rc" value="100pf/23.2K" />
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="m34047-n2ll_4241" size="2048" crc="" sha1="" offset="0" />
|
<rom name="m34047-n2ll_4241" size="2048" crc="" sha1="" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<software name="vegasslt">
|
<software name="vegasslt">
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="6809assa" cloneof="6809ass">
|
<software name="6809assa" cloneof="6809ass">
|
||||||
<description>6809 Assembler v1.0 (Alt)</description>
|
<description>6809 Assembler v1.0 (Alt)</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="6809mac" cloneof="6809ass">
|
<software name="6809mac" cloneof="6809ass">
|
||||||
<description>6809 Macro Assembler v3.6 (Hacked)</description>
|
<description>6809 Macro Assembler v3.6 (Hacked)</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -38,7 +38,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="agenda">
|
<software name="agenda">
|
||||||
<description>Agenda</description>
|
<description>Agenda</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="airbus">
|
<software name="airbus">
|
||||||
<description>Airbus</description>
|
<description>Airbus</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="airbusa" cloneof="airbus">
|
<software name="airbusa" cloneof="airbus">
|
||||||
<description>Airbus (Alt)</description>
|
<description>Airbus (Alt)</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -74,7 +74,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="blitz">
|
<software name="blitz">
|
||||||
<description>Blitz!</description>
|
<description>Blitz!</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -86,7 +86,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="blitza" cloneof="blitz">
|
<software name="blitza" cloneof="blitz">
|
||||||
<description>Blitz! (Alt)</description>
|
<description>Blitz! (Alt)</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="carnet">
|
<software name="carnet">
|
||||||
<description>Carnet d'Adresses</description>
|
<description>Carnet d'Adresses</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="clrcalc">
|
<software name="clrcalc">
|
||||||
<description>Colorcalc</description>
|
<description>Colorcalc</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -122,7 +122,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="clrpaint">
|
<software name="clrpaint">
|
||||||
<description>Colopaint</description>
|
<description>Colopaint</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -134,7 +134,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="controle">
|
<software name="controle">
|
||||||
<description>Controle Aerien</description>
|
<description>Controle Aerien</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -146,7 +146,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="desass">
|
<software name="desass">
|
||||||
<description>Desassembleur Dump & Patch v4.0 (PD)</description>
|
<description>Desassembleur Dump & Patch v4.0 (PD)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
@ -158,7 +158,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="enigma">
|
<software name="enigma">
|
||||||
<description>Enimatika</description>
|
<description>Enimatika</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -170,8 +170,8 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
|
||||||
<software name="gemini">
|
<software name="gemini">
|
||||||
<description>Gemini</description>
|
<description>Gemini</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -182,8 +182,8 @@
|
|||||||
<rom name="gemini (1982)(vifi-nathan)(fr).m5" size="16384" crc="cc30bba2" sha1="67be5d9736c50d6c8c4237eec483b0fef1574a4a" offset="0x0000" />
|
<rom name="gemini (1982)(vifi-nathan)(fr).m5" size="16384" crc="cc30bba2" sha1="67be5d9736c50d6c8c4237eec483b0fef1574a4a" offset="0x0000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="glouton">
|
<software name="glouton">
|
||||||
<description>Blitz (Fra)</description>
|
<description>Blitz (Fra)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
@ -195,7 +195,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="gloutona" cloneof="glouton">
|
<software name="gloutona" cloneof="glouton">
|
||||||
<description>Blitz (Fra, Alt)</description>
|
<description>Blitz (Fra, Alt)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
@ -207,7 +207,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="grille">
|
<software name="grille">
|
||||||
<description>La Grille</description>
|
<description>La Grille</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -219,7 +219,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="jane">
|
<software name="jane">
|
||||||
<description>Jane</description>
|
<description>Jane</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -231,7 +231,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="logo">
|
<software name="logo">
|
||||||
<description>LOGO v1.0</description>
|
<description>LOGO v1.0</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -243,7 +243,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="logoa" cloneof="logo">
|
<software name="logoa" cloneof="logo">
|
||||||
<description>LOGO v1.0 (Alt)</description>
|
<description>LOGO v1.0 (Alt)</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -255,7 +255,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="lsegedl">
|
<software name="lsegedl">
|
||||||
<description>LSEG-EDL v3.2</description>
|
<description>LSEG-EDL v3.2</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -267,7 +267,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="maison">
|
<software name="maison">
|
||||||
<description>La Maison d'Amedee</description>
|
<description>La Maison d'Amedee</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -279,7 +279,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="melimemo">
|
<software name="melimemo">
|
||||||
<description>Melimemot</description>
|
<description>Melimemot</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -291,7 +291,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="melodia">
|
<software name="melodia">
|
||||||
<description>Melodia</description>
|
<description>Melodia</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -327,7 +327,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="peche">
|
<software name="peche">
|
||||||
<description>La Peche a la Barre</description>
|
<description>La Peche a la Barre</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -339,7 +339,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="pictor">
|
<software name="pictor">
|
||||||
<description>Pictor</description>
|
<description>Pictor</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -351,7 +351,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="trap">
|
<software name="trap">
|
||||||
<description>Trap</description>
|
<description>Trap</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -375,6 +375,6 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
|
|
||||||
</softwarelist>
|
</softwarelist>
|
||||||
|
@ -990,7 +990,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Super Laydock (The Links Network Version) (Jpn)</description>
|
<description>Super Laydock (The Links Network Version) (Jpn)</description>
|
||||||
<year>1987</year>
|
<year>1987</year>
|
||||||
<publisher>T&E Soft</publisher>
|
<publisher>T&E Soft</publisher>
|
||||||
<info name="alt_title" value="スーパーレイドック(THE LINKS NETWORK VERSION)" />
|
<info name="alt_title" value="スーパーレイドック(THE LINKS NETWORK VERSION)" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="pcb" value="TA6228" />
|
<feature name="pcb" value="TA6228" />
|
||||||
<feature name="mapper" value="M60002-0125SP" />
|
<feature name="mapper" value="M60002-0125SP" />
|
||||||
@ -1021,7 +1021,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Synth Saurus (Jpn)</description>
|
<description>Synth Saurus (Jpn)</description>
|
||||||
<year></year>
|
<year></year>
|
||||||
<publisher>Bit²</publisher>
|
<publisher>Bit²</publisher>
|
||||||
<info name="alt_title" value="シンセサウルス" />
|
<info name="alt_title" value="シンセサウルス" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="pcb" value="TAS-1M-008S" />
|
<feature name="pcb" value="TAS-1M-008S" />
|
||||||
<feature name="mapper" value="LZ93A13" />
|
<feature name="mapper" value="LZ93A13" />
|
||||||
@ -1037,7 +1037,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Synth Saurus (Alt) (Jpn)</description>
|
<description>Synth Saurus (Alt) (Jpn)</description>
|
||||||
<year></year>
|
<year></year>
|
||||||
<publisher>Bit²</publisher>
|
<publisher>Bit²</publisher>
|
||||||
<info name="alt_title" value="シンセサウルス" />
|
<info name="alt_title" value="シンセサウルス" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="pcb" value="TAS-2M008-E2M" />
|
<feature name="pcb" value="TAS-2M008-E2M" />
|
||||||
<feature name="mapper" value="LZ93A13" />
|
<feature name="mapper" value="LZ93A13" />
|
||||||
@ -10911,7 +10911,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Scarlet 7 - The Mightiest Women (Jpn)</description>
|
<description>Scarlet 7 - The Mightiest Women (Jpn)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
<publisher>Toshiba EMI</publisher>
|
<publisher>Toshiba EMI</publisher>
|
||||||
<info name="serial" value=" PS-2019G" />
|
<info name="serial" value=" PS-2019G" />
|
||||||
<info name="alt_title" value="スカーレット7" />
|
<info name="alt_title" value="スカーレット7" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="mapper" value="NOMAPPER" />
|
<feature name="mapper" value="NOMAPPER" />
|
||||||
@ -11841,7 +11841,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<!-- mmm... this is interesting: Hi-Com released this as L3W for MSX, then re-release it as Super Columns for the SMS...
|
<!-- mmm... this is interesting: Hi-Com released this as L3W for MSX, then re-release it as Super Columns for the SMS...
|
||||||
is this the same (working on both) or is it a later backport to MSX?? -->
|
is this the same (working on both) or is it a later backport to MSX?? -->
|
||||||
<software name="supercol">
|
<software name="supercol">
|
||||||
<description>Super Columns (Kor)</description>
|
<description>Super Columns (Kor)</description>
|
||||||
@ -12433,7 +12433,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Thunderbolt (Jpn)</description>
|
<description>Thunderbolt (Jpn)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
<publisher>Pixel</publisher>
|
<publisher>Pixel</publisher>
|
||||||
<info name="serial" value=" AR-8601" />
|
<info name="serial" value=" AR-8601" />
|
||||||
<info name="alt_title" value="サンダーボルト" />
|
<info name="alt_title" value="サンダーボルト" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="mapper" value="NOMAPPER" />
|
<feature name="mapper" value="NOMAPPER" />
|
||||||
@ -12447,7 +12447,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Thunderbolt (Jpn, Alt)</description>
|
<description>Thunderbolt (Jpn, Alt)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
<publisher>Pixel</publisher>
|
<publisher>Pixel</publisher>
|
||||||
<info name="serial" value=" AR-8601" />
|
<info name="serial" value=" AR-8601" />
|
||||||
<info name="alt_title" value="サンダーボルト" />
|
<info name="alt_title" value="サンダーボルト" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="mapper" value="NOMAPPER" />
|
<feature name="mapper" value="NOMAPPER" />
|
||||||
@ -12461,7 +12461,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
<description>Thunderbolt (Jpn, Alt 2)</description>
|
<description>Thunderbolt (Jpn, Alt 2)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
<publisher>Pixel</publisher>
|
<publisher>Pixel</publisher>
|
||||||
<info name="serial" value=" AR-8601" />
|
<info name="serial" value=" AR-8601" />
|
||||||
<info name="alt_title" value="サンダーボルト" />
|
<info name="alt_title" value="サンダーボルト" />
|
||||||
<part name="cart" interface="msx_cart">
|
<part name="cart" interface="msx_cart">
|
||||||
<feature name="mapper" value="NOMAPPER" />
|
<feature name="mapper" value="NOMAPPER" />
|
||||||
@ -14427,7 +14427,7 @@ kept for now until finding out what those bytes affect...
|
|||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="123a">
|
<software name="123a">
|
||||||
<description>123 (Arab, Alt)</description>
|
<description>123 (Arab, Alt)</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
<publisher>Al Alamiah</publisher>
|
<publisher>Al Alamiah</publisher>
|
||||||
<info name="serial" value="P081" />
|
<info name="serial" value="P081" />
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
<softwarelist name="mz800_cass" description="Sharp MZ-800 cassettes">
|
<softwarelist name="mz800_cass" description="Sharp MZ-800 cassettes">
|
||||||
<!--
|
<!--
|
||||||
List
|
List
|
||||||
MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwaltung
|
MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwaltung
|
||||||
Address Data: Adressverwaltung
|
Address Data: Adressverwaltung
|
||||||
Advoka: )
|
Advoka: )
|
||||||
Head Driver: } Spiele
|
Head Driver: } Spiele
|
||||||
Egg: )
|
Egg: )
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- Games -->
|
<!-- Games -->
|
||||||
@ -86,11 +86,11 @@ MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwal
|
|||||||
<year>19??</year>
|
<year>19??</year>
|
||||||
<publisher>BBG Software</publisher>
|
<publisher>BBG Software</publisher>
|
||||||
<!--
|
<!--
|
||||||
<part name="cass1" interface="mz_cass">
|
<part name="cass1" interface="mz_cass">
|
||||||
<dataarea name="cass" size="16585">
|
<dataarea name="cass" size="16585">
|
||||||
<rom name="mucmac700.mzf" size="16585" crc="5a49451e" sha1="b4d3f23019df154e1a7bf5db32388dabf5f43c66" offset="0" />
|
<rom name="mucmac700.mzf" size="16585" crc="5a49451e" sha1="b4d3f23019df154e1a7bf5db32388dabf5f43c66" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
-->
|
-->
|
||||||
<part name="cass1" interface="mz_cass">
|
<part name="cass1" interface="mz_cass">
|
||||||
<dataarea name="cass" size="20896">
|
<dataarea name="cass" size="20896">
|
||||||
|
@ -11,15 +11,15 @@ add serials for radiola and jopacs
|
|||||||
-->
|
-->
|
||||||
<!--
|
<!--
|
||||||
Undumped:
|
Undumped:
|
||||||
Spaans (spanish to dutch translator)
|
Spaans (spanish to dutch translator)
|
||||||
Crazy Horses
|
Crazy Horses
|
||||||
|
|
||||||
Protos:
|
Protos:
|
||||||
Bastion youtube.com/watch?v=cFdmgs4r7_E
|
Bastion youtube.com/watch?v=cFdmgs4r7_E
|
||||||
Catburglar youtube.com/watch?v=DDsWDFxy0oE
|
Catburglar youtube.com/watch?v=DDsWDFxy0oE
|
||||||
Himalaya youtube.com/watch?v=L_lvOs6EnA4
|
Himalaya youtube.com/watch?v=L_lvOs6EnA4
|
||||||
SoundTool youtube.com/watch?v=7JYn6B7rxqw
|
SoundTool youtube.com/watch?v=7JYn6B7rxqw
|
||||||
Terrahawks youtube.com/watch?v=AXk7OSA6NGg
|
Terrahawks youtube.com/watch?v=AXk7OSA6NGg
|
||||||
|
|
||||||
http://www.ozyr.com/rene/PICS/protos.jpg
|
http://www.ozyr.com/rene/PICS/protos.jpg
|
||||||
Sherlock Holmes Consulting Detective (programmed by Ed Friedman, most likely dumped and hoarded)
|
Sherlock Holmes Consulting Detective (programmed by Ed Friedman, most likely dumped and hoarded)
|
||||||
@ -375,7 +375,7 @@ adds 16K RAM and 18K ROM, that plugs into the G7000 needs to be dumped.
|
|||||||
<info name="serial" value="AA9427 (USA) ~ 29 (Euro)"/>
|
<info name="serial" value="AA9427 (USA) ~ 29 (Euro)"/>
|
||||||
<part name="cart" interface="odyssey_cart">
|
<part name="cart" interface="odyssey_cart">
|
||||||
<dataarea name="rom" size="2048">
|
<dataarea name="rom" size="2048">
|
||||||
<rom name="blockout - breakdown (usa, europe).bin" size="2048" crc="fb83171e" sha1="00ef6868724a6826534da620f34dad207fcb3800" offset="0" />
|
<rom name="blockout - breakdown (usa, europe).bin" size="2048" crc="fb83171e" sha1="00ef6868724a6826534da620f34dad207fcb3800" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
<softwarelist name="pet_cass" description="Commodore PET cassettes">
|
<softwarelist name="pet_cass" description="Commodore PET cassettes">
|
||||||
|
|
||||||
<software name="lunarlnd">
|
<software name="lunarlnd">
|
||||||
<description>Lunar Lander</description>
|
<description>Lunar Lander</description>
|
||||||
<year>197?</year>
|
<year>197?</year>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
<softwarelist name="plus4_cass" description="Commodore Plus/4 / C16 / C116 cassettes">
|
<softwarelist name="plus4_cass" description="Commodore Plus/4 / C16 / C116 cassettes">
|
||||||
|
|
||||||
<software name="dtstar">
|
<software name="dtstar">
|
||||||
<description>Daley Thompson's Star Events</description>
|
<description>Daley Thompson's Star Events</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
|
26138
hash/psx.xml
26138
hash/psx.xml
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="sp1">
|
<software name="sp1">
|
||||||
<description>Signal Processing No. 1</description>
|
<description>Signal Processing No. 1</description>
|
||||||
<year>198?</year>
|
<year>198?</year>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="sp2">
|
<software name="sp2">
|
||||||
<description>Signal Processing No. 2 (FFT)</description>
|
<description>Signal Processing No. 2 (FFT)</description>
|
||||||
<year>198?</year>
|
<year>198?</year>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="da">
|
<software name="da">
|
||||||
<description>D/A Converter</description>
|
<description>D/A Converter</description>
|
||||||
<year>198?</year>
|
<year>198?</year>
|
||||||
|
@ -14,5 +14,5 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
</softwarelist>
|
</softwarelist>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="6809ass1" cloneof="6809ass2">
|
<software name="6809ass1" cloneof="6809ass2">
|
||||||
<description>6809 Assembler v1.0</description>
|
<description>6809 Assembler v1.0</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="airbus">
|
<software name="airbus">
|
||||||
<description>Airbus</description>
|
<description>Airbus</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -38,7 +38,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="atomium">
|
<software name="atomium">
|
||||||
<description>Atomium</description>
|
<description>Atomium</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -50,7 +50,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="basic">
|
<software name="basic">
|
||||||
<description>BASIC v1.0</description>
|
<description>BASIC v1.0</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="blitz">
|
<software name="blitz">
|
||||||
<description>Blitz</description>
|
<description>Blitz</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -74,7 +74,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="caractr2">
|
<software name="caractr2">
|
||||||
<description>Caractor II</description>
|
<description>Caractor II</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -86,7 +86,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="caractor">
|
<software name="caractor">
|
||||||
<description>Caractor</description>
|
<description>Caractor</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="choplift">
|
<software name="choplift">
|
||||||
<description>Choplifter</description>
|
<description>Choplifter</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="clrpaint">
|
<software name="clrpaint">
|
||||||
<description>Colorpaint</description>
|
<description>Colorpaint</description>
|
||||||
<year>1985</year>
|
<year>1985</year>
|
||||||
@ -122,7 +122,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="controle">
|
<software name="controle">
|
||||||
<description>Controle Aerien</description>
|
<description>Controle Aerien</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -134,7 +134,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="crypto">
|
<software name="crypto">
|
||||||
<description>Crypto</description>
|
<description>Crypto</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -158,7 +158,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="gemini">
|
<software name="gemini">
|
||||||
<description>Gemini</description>
|
<description>Gemini</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -169,8 +169,8 @@
|
|||||||
<rom name="gemini (1982)(vifi-nathan)(fr).m7" size="4096" crc="c20c1d82" sha1="92ee16ef7d14b241e8df390b0e6192810a8eda40" offset="0x0000" />
|
<rom name="gemini (1982)(vifi-nathan)(fr).m7" size="4096" crc="c20c1d82" sha1="92ee16ef7d14b241e8df390b0e6192810a8eda40" offset="0x0000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="gerfiche">
|
<software name="gerfiche">
|
||||||
<description>Gerez vos Fiches</description>
|
<description>Gerez vos Fiches</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -181,8 +181,8 @@
|
|||||||
<rom name="gerez vos fiches (1983)(answare)(fr).m7" size="8192" crc="e9dacb6b" sha1="a83ffd9e28387e57aaf5acf4e7294c045c1e4c7f" offset="0x0000" />
|
<rom name="gerez vos fiches (1983)(answare)(fr).m7" size="8192" crc="e9dacb6b" sha1="a83ffd9e28387e57aaf5acf4e7294c045c1e4c7f" offset="0x0000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="gerteque">
|
<software name="gerteque">
|
||||||
<description>Gerez Votre Bibliotheque-Discotheque-Videotheque</description>
|
<description>Gerez Votre Bibliotheque-Discotheque-Videotheque</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -193,8 +193,8 @@
|
|||||||
<rom name="gerez votre bibliotheque-discotheque-videotheque (1983)(answare)(fr).m7" size="8192" crc="cb6f0f85" sha1="56ce86e414a7debdadac4a416bad4c70d289be95" offset="0x0000" />
|
<rom name="gerez votre bibliotheque-discotheque-videotheque (1983)(answare)(fr).m7" size="8192" crc="cb6f0f85" sha1="56ce86e414a7debdadac4a416bad4c70d289be95" offset="0x0000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="chiflett">
|
<software name="chiflett">
|
||||||
<description>Les Chiffres et les Lettres</description>
|
<description>Les Chiffres et les Lettres</description>
|
||||||
<year>198?</year>
|
<year>198?</year>
|
||||||
@ -206,7 +206,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="logicod">
|
<software name="logicod">
|
||||||
<description>Logicod</description>
|
<description>Logicod</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -218,7 +218,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="logo">
|
<software name="logo">
|
||||||
<description>LOGO v1.0</description>
|
<description>LOGO v1.0</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -230,7 +230,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="melodia">
|
<software name="melodia">
|
||||||
<description>Melodia</description>
|
<description>Melodia</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -266,7 +266,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="pictor">
|
<software name="pictor">
|
||||||
<description>Pictor</description>
|
<description>Pictor</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
@ -278,7 +278,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="prolog">
|
<software name="prolog">
|
||||||
<description>Prolog v1.0</description>
|
<description>Prolog v1.0</description>
|
||||||
<year>1986</year>
|
<year>1986</year>
|
||||||
@ -290,7 +290,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="quest">
|
<software name="quest">
|
||||||
<description>Quest</description>
|
<description>Quest</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
@ -302,7 +302,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="scriptor">
|
<software name="scriptor">
|
||||||
<description>Scriptor</description>
|
<description>Scriptor</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
@ -314,7 +314,7 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="threshld">
|
<software name="threshld">
|
||||||
<description>Threshold</description>
|
<description>Threshold</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
<!-- based on vic20tapes.org dumps -->
|
<!-- based on vic20tapes.org dumps -->
|
||||||
<softwarelist name="vic1001_cass" description="Commodore VIC-1001 / VIC-20 cassettes">
|
<softwarelist name="vic1001_cass" description="Commodore VIC-1001 / VIC-20 cassettes">
|
||||||
|
|
||||||
<software name="3dmaze">
|
<software name="3dmaze">
|
||||||
<description>3D Maze</description>
|
<description>3D Maze</description>
|
||||||
<year>1984</year>
|
<year>1984</year>
|
||||||
|
@ -93,7 +93,7 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Coprocessor-related macros */
|
/* Coprocessor-related macros */
|
||||||
#define COPRO_TLB_BASE arm->tlbBase
|
#define COPRO_TLB_BASE arm->tlbBase
|
||||||
#define COPRO_TLB_BASE_MASK 0xffffc000
|
#define COPRO_TLB_BASE_MASK 0xffffc000
|
||||||
#define COPRO_TLB_VADDR_FLTI_MASK 0xfff00000
|
#define COPRO_TLB_VADDR_FLTI_MASK 0xfff00000
|
||||||
#define COPRO_TLB_VADDR_FLTI_MASK_SHIFT 18
|
#define COPRO_TLB_VADDR_FLTI_MASK_SHIFT 18
|
||||||
@ -117,7 +117,7 @@ enum
|
|||||||
#define COPRO_TLB_SECTION_TABLE 2
|
#define COPRO_TLB_SECTION_TABLE 2
|
||||||
#define COPRO_TLB_FINE_TABLE 3
|
#define COPRO_TLB_FINE_TABLE 3
|
||||||
|
|
||||||
#define COPRO_CTRL arm->control
|
#define COPRO_CTRL arm->control
|
||||||
#define COPRO_CTRL_MMU_EN 0x00000001
|
#define COPRO_CTRL_MMU_EN 0x00000001
|
||||||
#define COPRO_CTRL_ADDRFAULT_EN 0x00000002
|
#define COPRO_CTRL_ADDRFAULT_EN 0x00000002
|
||||||
#define COPRO_CTRL_DCACHE_EN 0x00000004
|
#define COPRO_CTRL_DCACHE_EN 0x00000004
|
||||||
@ -143,12 +143,12 @@ enum
|
|||||||
|
|
||||||
#define COPRO_DOMAIN_ACCESS_CONTROL arm->domainAccessControl
|
#define COPRO_DOMAIN_ACCESS_CONTROL arm->domainAccessControl
|
||||||
|
|
||||||
#define COPRO_FAULT_STATUS_D arm->faultStatus[0]
|
#define COPRO_FAULT_STATUS_D arm->faultStatus[0]
|
||||||
#define COPRO_FAULT_STATUS_P arm->faultStatus[1]
|
#define COPRO_FAULT_STATUS_P arm->faultStatus[1]
|
||||||
|
|
||||||
#define COPRO_FAULT_ADDRESS arm->faultAddress
|
#define COPRO_FAULT_ADDRESS arm->faultAddress
|
||||||
|
|
||||||
#define COPRO_FCSE_PID arm->fcsePID
|
#define COPRO_FCSE_PID arm->fcsePID
|
||||||
|
|
||||||
/* Coprocessor Registers */
|
/* Coprocessor Registers */
|
||||||
#define ARM7COPRO_REGS \
|
#define ARM7COPRO_REGS \
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -42,22 +42,22 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
|
|||||||
| HandleALUNZFlags(rd))); \
|
| HandleALUNZFlags(rd))); \
|
||||||
R15 += 2;
|
R15 += 2;
|
||||||
|
|
||||||
#define DRCHandleThumbALUAddFlags(rd, rn, op2) \
|
#define DRCHandleThumbALUAddFlags(rd, rn, op2) \
|
||||||
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
|
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
|
||||||
DRCHandleALUNZFlags(rd); \
|
DRCHandleALUNZFlags(rd); \
|
||||||
UML_XOR(block, I1, rn, ~0); \
|
UML_XOR(block, I1, rn, ~0); \
|
||||||
UML_CMP(block, I1, op2); \
|
UML_CMP(block, I1, op2); \
|
||||||
UML_MOVc(block, COND_B, I1, C_BIT); \
|
UML_MOVc(block, COND_B, I1, C_BIT); \
|
||||||
UML_MOVc(block, COND_AE, I1, 0); \
|
UML_MOVc(block, COND_AE, I1, 0); \
|
||||||
UML_OR(block, I0, I0, I1); \
|
UML_OR(block, I0, I0, I1); \
|
||||||
UML_XOR(block, I1, rn, op2); \
|
UML_XOR(block, I1, rn, op2); \
|
||||||
UML_XOR(block, I2, rn, rd); \
|
UML_XOR(block, I2, rn, rd); \
|
||||||
UML_AND(block, I1, I1, I2); \
|
UML_AND(block, I1, I1, I2); \
|
||||||
UML_TEST(block, I1, 1 << 31); \
|
UML_TEST(block, I1, 1 << 31); \
|
||||||
UML_MOVc(block, COND_NZ, I1, V_BIT); \
|
UML_MOVc(block, COND_NZ, I1, V_BIT); \
|
||||||
UML_MOVc(block, COND_Z, I1, 0); \
|
UML_MOVc(block, COND_Z, I1, 0); \
|
||||||
UML_OR(block, I0, I0, I1); \
|
UML_OR(block, I0, I0, I1); \
|
||||||
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
||||||
UML_ADD(block, DRC_PC, DRC_PC, 2);
|
UML_ADD(block, DRC_PC, DRC_PC, 2);
|
||||||
|
|
||||||
#define HandleALUSubFlags(rd, rn, op2) \
|
#define HandleALUSubFlags(rd, rn, op2) \
|
||||||
@ -75,31 +75,31 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
|
|||||||
| HandleALUNZFlags(rd))); \
|
| HandleALUNZFlags(rd))); \
|
||||||
R15 += 2;
|
R15 += 2;
|
||||||
|
|
||||||
#define DRCHandleThumbALUSubFlags(rd, rn, op2) \
|
#define DRCHandleThumbALUSubFlags(rd, rn, op2) \
|
||||||
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
|
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
|
||||||
DRCHandleALUNZFlags(rd); \
|
DRCHandleALUNZFlags(rd); \
|
||||||
UML_XOR(block, I1, rn, op2); \
|
UML_XOR(block, I1, rn, op2); \
|
||||||
UML_XOR(block, I2, rn, rd); \
|
UML_XOR(block, I2, rn, rd); \
|
||||||
UML_AND(block, I1, I1, I2); \
|
UML_AND(block, I1, I1, I2); \
|
||||||
UML_TEST(block, I1, 1 << 31); \
|
UML_TEST(block, I1, 1 << 31); \
|
||||||
UML_MOVc(block, COND_NZ, I1, V_BIT); \
|
UML_MOVc(block, COND_NZ, I1, V_BIT); \
|
||||||
UML_MOVc(block, COND_Z, I1, 0); \
|
UML_MOVc(block, COND_Z, I1, 0); \
|
||||||
UML_OR(block, I0, I0, I1); \
|
UML_OR(block, I0, I0, I1); \
|
||||||
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
||||||
UML_AND(block, I0, rd, 1 << 31); \
|
UML_AND(block, I0, rd, 1 << 31); \
|
||||||
UML_AND(block, I1, op2, 1 << 31); \
|
UML_AND(block, I1, op2, 1 << 31); \
|
||||||
UML_AND(block, I2, rn, 1 << 31); \
|
UML_AND(block, I2, rn, 1 << 31); \
|
||||||
UML_XOR(block, I2, I2, ~0); \
|
UML_XOR(block, I2, I2, ~0); \
|
||||||
UML_AND(block, I1, I1, I2); \
|
UML_AND(block, I1, I1, I2); \
|
||||||
UML_AND(block, I2, I2, I0); \
|
UML_AND(block, I2, I2, I0); \
|
||||||
UML_OR(block, I1, I1, I2); \
|
UML_OR(block, I1, I1, I2); \
|
||||||
UML_AND(block, I2, op2, 1 << 31); \
|
UML_AND(block, I2, op2, 1 << 31); \
|
||||||
UML_AND(block, I2, I2, I0); \
|
UML_AND(block, I2, I2, I0); \
|
||||||
UML_OR(block, I1, I1, I2); \
|
UML_OR(block, I1, I1, I2); \
|
||||||
UML_TEST(block, I1, 1 << 31); \
|
UML_TEST(block, I1, 1 << 31); \
|
||||||
UML_MOVc(block, COND_NZ, I0, C_MASK); \
|
UML_MOVc(block, COND_NZ, I0, C_MASK); \
|
||||||
UML_MOVc(block, COND_Z, I0, 0); \
|
UML_MOVc(block, COND_Z, I0, 0); \
|
||||||
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
||||||
UML_ADD(block, DRC_PC, DRC_PC, 2);
|
UML_ADD(block, DRC_PC, DRC_PC, 2);
|
||||||
|
|
||||||
/* Set NZC flags for logical operations. */
|
/* Set NZC flags for logical operations. */
|
||||||
@ -109,11 +109,11 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
|
|||||||
#define HandleALUNZFlags(rd) \
|
#define HandleALUNZFlags(rd) \
|
||||||
(((rd) & SIGN_BIT) | ((!(rd)) << Z_BIT))
|
(((rd) & SIGN_BIT) | ((!(rd)) << Z_BIT))
|
||||||
|
|
||||||
#define DRCHandleALUNZFlags(rd) \
|
#define DRCHandleALUNZFlags(rd) \
|
||||||
UML_AND(block, I0, rd, SIGN_BIT); \
|
UML_AND(block, I0, rd, SIGN_BIT); \
|
||||||
UML_CMP(block, rd, 0); \
|
UML_CMP(block, rd, 0); \
|
||||||
UML_MOVc(block, COND_E, I1, 1); \
|
UML_MOVc(block, COND_E, I1, 1); \
|
||||||
UML_MOVc(block, COND_NE, I1, 0); \
|
UML_MOVc(block, COND_NE, I1, 0); \
|
||||||
UML_ROLINS(block, I0, I1, Z_BIT, 1 << Z_BIT);
|
UML_ROLINS(block, I0, I1, Z_BIT, 1 << Z_BIT);
|
||||||
|
|
||||||
// Long ALU Functions use bit 63
|
// Long ALU Functions use bit 63
|
||||||
@ -127,23 +127,23 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
|
|||||||
| (((sc) != 0) << C_BIT))); \
|
| (((sc) != 0) << C_BIT))); \
|
||||||
R15 += 4;
|
R15 += 4;
|
||||||
|
|
||||||
#define DRC_RD mem(&GET_REGISTER(arm, rd))
|
#define DRC_RD mem(&GET_REGISTER(arm, rd))
|
||||||
#define DRC_RS mem(&GET_REGISTER(arm, rs))
|
#define DRC_RS mem(&GET_REGISTER(arm, rs))
|
||||||
#define DRC_CPSR mem(&GET_CPSR)
|
#define DRC_CPSR mem(&GET_CPSR)
|
||||||
#define DRC_PC mem(&R15)
|
#define DRC_PC mem(&R15)
|
||||||
#define DRC_REG(i) mem(&arm->r[(i)]);
|
#define DRC_REG(i) mem(&arm->r[(i)]);
|
||||||
|
|
||||||
#define DRCHandleALULogicalFlags(rd, sc) \
|
#define DRCHandleALULogicalFlags(rd, sc) \
|
||||||
if (insn & INSN_S) \
|
if (insn & INSN_S) \
|
||||||
{ \
|
{ \
|
||||||
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | C_MASK); \
|
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | C_MASK); \
|
||||||
DRCHandleALUNZFlags(rd); \
|
DRCHandleALUNZFlags(rd); \
|
||||||
UML_TEST(block, sc, ~0); \
|
UML_TEST(block, sc, ~0); \
|
||||||
UML_MOVc(block, COND_Z, I1, C_BIT); \
|
UML_MOVc(block, COND_Z, I1, C_BIT); \
|
||||||
UML_MOVc(block, COND_NZ, I1, 0); \
|
UML_MOVc(block, COND_NZ, I1, 0); \
|
||||||
UML_OR(block, I0, I0, I1); \
|
UML_OR(block, I0, I0, I1); \
|
||||||
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
|
||||||
} \
|
} \
|
||||||
UML_ADD(block, DRC_PC, DRC_PC, 4);
|
UML_ADD(block, DRC_PC, DRC_PC, 4);
|
||||||
|
|
||||||
void set_cpsr( arm_state *arm, UINT32 val);
|
void set_cpsr( arm_state *arm, UINT32 val);
|
||||||
|
@ -8,149 +8,149 @@
|
|||||||
arm7thumb_drcophandler drcthumb_handler[0x40*0x10] =
|
arm7thumb_drcophandler drcthumb_handler[0x40*0x10] =
|
||||||
{
|
{
|
||||||
// #define THUMB_SHIFT_R ((UINT16)0x0800)
|
// #define THUMB_SHIFT_R ((UINT16)0x0800)
|
||||||
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
||||||
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
||||||
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
||||||
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0, drctg00_0,
|
||||||
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
||||||
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
||||||
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
||||||
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1, drctg00_1,
|
||||||
// #define THUMB_INSN_ADDSUB ((UINT16)0x0800) // #define THUMB_ADDSUB_TYPE ((UINT16)0x0600)
|
// #define THUMB_INSN_ADDSUB ((UINT16)0x0800) // #define THUMB_ADDSUB_TYPE ((UINT16)0x0600)
|
||||||
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
||||||
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
||||||
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
||||||
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0, drctg01_0,
|
||||||
drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10,
|
drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10, drctg01_10,
|
||||||
drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11,
|
drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11, drctg01_11,
|
||||||
drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12,
|
drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12, drctg01_12,
|
||||||
drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13,
|
drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13,
|
||||||
// #define THUMB_INSN_CMP ((UINT16)0x0800)
|
// #define THUMB_INSN_CMP ((UINT16)0x0800)
|
||||||
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
||||||
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
||||||
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
||||||
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0, drctg02_0,
|
||||||
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
||||||
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
||||||
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
||||||
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1, drctg02_1,
|
||||||
// #define THUMB_INSN_SUB ((UINT16)0x0800)
|
// #define THUMB_INSN_SUB ((UINT16)0x0800)
|
||||||
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
||||||
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
||||||
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
||||||
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0, drctg03_0,
|
||||||
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
||||||
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
||||||
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
||||||
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1, drctg03_1,
|
||||||
//#define THUMB_GROUP4_TYPE ((UINT16)0x0c00) //#define THUMB_ALUOP_TYPE ((UINT16)0x03c0) // #define THUMB_HIREG_OP ((UINT16)0x0300) // #define THUMB_HIREG_H ((UINT16)0x00c0)
|
//#define THUMB_GROUP4_TYPE ((UINT16)0x0c00) //#define THUMB_ALUOP_TYPE ((UINT16)0x03c0) // #define THUMB_HIREG_OP ((UINT16)0x0300) // #define THUMB_HIREG_H ((UINT16)0x00c0)
|
||||||
drctg04_00_00, drctg04_00_01, drctg04_00_02, drctg04_00_03, drctg04_00_04, drctg04_00_05, drctg04_00_06, drctg04_00_07,
|
drctg04_00_00, drctg04_00_01, drctg04_00_02, drctg04_00_03, drctg04_00_04, drctg04_00_05, drctg04_00_06, drctg04_00_07,
|
||||||
drctg04_00_08, drctg04_00_09, drctg04_00_0a, drctg04_00_0b, drctg04_00_0c, drctg04_00_0d, drctg04_00_0e, drctg04_00_0f,
|
drctg04_00_08, drctg04_00_09, drctg04_00_0a, drctg04_00_0b, drctg04_00_0c, drctg04_00_0d, drctg04_00_0e, drctg04_00_0f,
|
||||||
drctg04_01_00, drctg04_01_01, drctg04_01_02, drctg04_01_03, drctg04_01_10, drctg04_01_11, drctg04_01_12, drctg04_01_13,
|
drctg04_01_00, drctg04_01_01, drctg04_01_02, drctg04_01_03, drctg04_01_10, drctg04_01_11, drctg04_01_12, drctg04_01_13,
|
||||||
drctg04_01_20, drctg04_01_21, drctg04_01_22, drctg04_01_23, drctg04_01_30, drctg04_01_31, drctg04_01_32, drctg04_01_33,
|
drctg04_01_20, drctg04_01_21, drctg04_01_22, drctg04_01_23, drctg04_01_30, drctg04_01_31, drctg04_01_32, drctg04_01_33,
|
||||||
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
||||||
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
||||||
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
||||||
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203, drctg04_0203,
|
||||||
//#define THUMB_GROUP5_TYPE ((UINT16)0x0e00)
|
//#define THUMB_GROUP5_TYPE ((UINT16)0x0e00)
|
||||||
drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0,
|
drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0, drctg05_0,
|
||||||
drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1,
|
drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1, drctg05_1,
|
||||||
drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2,
|
drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2, drctg05_2,
|
||||||
drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3,
|
drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3, drctg05_3,
|
||||||
drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4,
|
drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4, drctg05_4,
|
||||||
drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5,
|
drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5, drctg05_5,
|
||||||
drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6,
|
drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6, drctg05_6,
|
||||||
drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7,
|
drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7, drctg05_7,
|
||||||
//#define THUMB_LSOP_L ((UINT16)0x0800)
|
//#define THUMB_LSOP_L ((UINT16)0x0800)
|
||||||
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
||||||
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
||||||
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
||||||
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0, drctg06_0,
|
||||||
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
||||||
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
||||||
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
||||||
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1, drctg06_1,
|
||||||
//#define THUMB_LSOP_L ((UINT16)0x0800)
|
//#define THUMB_LSOP_L ((UINT16)0x0800)
|
||||||
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
||||||
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
||||||
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
||||||
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0, drctg07_0,
|
||||||
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
||||||
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
||||||
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
||||||
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1, drctg07_1,
|
||||||
// #define THUMB_HALFOP_L ((UINT16)0x0800)
|
// #define THUMB_HALFOP_L ((UINT16)0x0800)
|
||||||
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
||||||
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
||||||
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
||||||
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0, drctg08_0,
|
||||||
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
||||||
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
||||||
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
||||||
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1, drctg08_1,
|
||||||
// #define THUMB_STACKOP_L ((UINT16)0x0800)
|
// #define THUMB_STACKOP_L ((UINT16)0x0800)
|
||||||
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
||||||
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
||||||
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
||||||
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0, drctg09_0,
|
||||||
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
||||||
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
||||||
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
||||||
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1, drctg09_1,
|
||||||
// #define THUMB_RELADDR_SP ((UINT16)0x0800)
|
// #define THUMB_RELADDR_SP ((UINT16)0x0800)
|
||||||
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
||||||
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
||||||
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
||||||
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0, drctg0a_0,
|
||||||
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
||||||
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
||||||
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
||||||
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1, drctg0a_1,
|
||||||
// #define THUMB_STACKOP_TYPE ((UINT16)0x0f00)
|
// #define THUMB_STACKOP_TYPE ((UINT16)0x0f00)
|
||||||
drctg0b_0, drctg0b_0, drctg0b_0, drctg0b_0, drctg0b_1, drctg0b_1, drctg0b_1, drctg0b_1,
|
drctg0b_0, drctg0b_0, drctg0b_0, drctg0b_0, drctg0b_1, drctg0b_1, drctg0b_1, drctg0b_1,
|
||||||
drctg0b_2, drctg0b_2, drctg0b_2, drctg0b_2, drctg0b_3, drctg0b_3, drctg0b_3, drctg0b_3,
|
drctg0b_2, drctg0b_2, drctg0b_2, drctg0b_2, drctg0b_3, drctg0b_3, drctg0b_3, drctg0b_3,
|
||||||
drctg0b_4, drctg0b_4, drctg0b_4, drctg0b_4, drctg0b_5, drctg0b_5, drctg0b_5, drctg0b_5,
|
drctg0b_4, drctg0b_4, drctg0b_4, drctg0b_4, drctg0b_5, drctg0b_5, drctg0b_5, drctg0b_5,
|
||||||
drctg0b_6, drctg0b_6, drctg0b_6, drctg0b_6, drctg0b_7, drctg0b_7, drctg0b_7, drctg0b_7,
|
drctg0b_6, drctg0b_6, drctg0b_6, drctg0b_6, drctg0b_7, drctg0b_7, drctg0b_7, drctg0b_7,
|
||||||
drctg0b_8, drctg0b_8, drctg0b_8, drctg0b_8, drctg0b_9, drctg0b_9, drctg0b_9, drctg0b_9,
|
drctg0b_8, drctg0b_8, drctg0b_8, drctg0b_8, drctg0b_9, drctg0b_9, drctg0b_9, drctg0b_9,
|
||||||
drctg0b_a, drctg0b_a, drctg0b_a, drctg0b_a, drctg0b_b, drctg0b_b, drctg0b_b, drctg0b_b,
|
drctg0b_a, drctg0b_a, drctg0b_a, drctg0b_a, drctg0b_b, drctg0b_b, drctg0b_b, drctg0b_b,
|
||||||
drctg0b_c, drctg0b_c, drctg0b_c, drctg0b_c, drctg0b_d, drctg0b_d, drctg0b_d, drctg0b_d,
|
drctg0b_c, drctg0b_c, drctg0b_c, drctg0b_c, drctg0b_d, drctg0b_d, drctg0b_d, drctg0b_d,
|
||||||
drctg0b_e, drctg0b_e, drctg0b_e, drctg0b_e, drctg0b_f, drctg0b_f, drctg0b_f, drctg0b_f,
|
drctg0b_e, drctg0b_e, drctg0b_e, drctg0b_e, drctg0b_f, drctg0b_f, drctg0b_f, drctg0b_f,
|
||||||
// #define THUMB_MULTLS ((UINT16)0x0800)
|
// #define THUMB_MULTLS ((UINT16)0x0800)
|
||||||
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
||||||
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
||||||
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
||||||
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0, drctg0c_0,
|
||||||
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
||||||
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
||||||
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
||||||
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1, drctg0c_1,
|
||||||
// #define THUMB_COND_TYPE ((UINT16)0x0f00)
|
// #define THUMB_COND_TYPE ((UINT16)0x0f00)
|
||||||
drctg0d_0, drctg0d_0, drctg0d_0, drctg0d_0, drctg0d_1, drctg0d_1, drctg0d_1, drctg0d_1,
|
drctg0d_0, drctg0d_0, drctg0d_0, drctg0d_0, drctg0d_1, drctg0d_1, drctg0d_1, drctg0d_1,
|
||||||
drctg0d_2, drctg0d_2, drctg0d_2, drctg0d_2, drctg0d_3, drctg0d_3, drctg0d_3, drctg0d_3,
|
drctg0d_2, drctg0d_2, drctg0d_2, drctg0d_2, drctg0d_3, drctg0d_3, drctg0d_3, drctg0d_3,
|
||||||
drctg0d_4, drctg0d_4, drctg0d_4, drctg0d_4, drctg0d_5, drctg0d_5, drctg0d_5, drctg0d_5,
|
drctg0d_4, drctg0d_4, drctg0d_4, drctg0d_4, drctg0d_5, drctg0d_5, drctg0d_5, drctg0d_5,
|
||||||
drctg0d_6, drctg0d_6, drctg0d_6, drctg0d_6, drctg0d_7, drctg0d_7, drctg0d_7, drctg0d_7,
|
drctg0d_6, drctg0d_6, drctg0d_6, drctg0d_6, drctg0d_7, drctg0d_7, drctg0d_7, drctg0d_7,
|
||||||
drctg0d_8, drctg0d_8, drctg0d_8, drctg0d_8, drctg0d_9, drctg0d_9, drctg0d_9, drctg0d_9,
|
drctg0d_8, drctg0d_8, drctg0d_8, drctg0d_8, drctg0d_9, drctg0d_9, drctg0d_9, drctg0d_9,
|
||||||
drctg0d_a, drctg0d_a, drctg0d_a, drctg0d_a, drctg0d_b, drctg0d_b, drctg0d_b, drctg0d_b,
|
drctg0d_a, drctg0d_a, drctg0d_a, drctg0d_a, drctg0d_b, drctg0d_b, drctg0d_b, drctg0d_b,
|
||||||
drctg0d_c, drctg0d_c, drctg0d_c, drctg0d_c, drctg0d_d, drctg0d_d, drctg0d_d, drctg0d_d,
|
drctg0d_c, drctg0d_c, drctg0d_c, drctg0d_c, drctg0d_d, drctg0d_d, drctg0d_d, drctg0d_d,
|
||||||
drctg0d_e, drctg0d_e, drctg0d_e, drctg0d_e, drctg0d_f, drctg0d_f, drctg0d_f, drctg0d_f,
|
drctg0d_e, drctg0d_e, drctg0d_e, drctg0d_e, drctg0d_f, drctg0d_f, drctg0d_f, drctg0d_f,
|
||||||
// #define THUMB_BLOP_LO ((UINT16)0x0800)
|
// #define THUMB_BLOP_LO ((UINT16)0x0800)
|
||||||
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
||||||
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
||||||
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
||||||
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0, drctg0e_0,
|
||||||
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
||||||
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
||||||
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
||||||
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1, drctg0e_1,
|
||||||
// #define THUMB_BLOP_LO ((UINT16)0x0800)
|
// #define THUMB_BLOP_LO ((UINT16)0x0800)
|
||||||
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
||||||
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
||||||
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
||||||
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0, drctg0f_0,
|
||||||
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
||||||
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
||||||
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
||||||
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1, drctg0f_1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Shift operations */
|
/* Shift operations */
|
||||||
@ -1578,4 +1578,4 @@ const void drctg0f_1(arm_state *arm, drcuml_block *block, compiler_state *compil
|
|||||||
UML_MOV(block, DRC_PC, I0);
|
UML_MOV(block, DRC_PC, I0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // ARM7_USE_DRC
|
#endif // ARM7_USE_DRC
|
||||||
|
@ -287,7 +287,7 @@ OBJDIRS += $(CPUOBJ)/es5510
|
|||||||
CPUOBJS += $(CPUOBJ)/es5510/es5510.o
|
CPUOBJS += $(CPUOBJ)/es5510/es5510.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(CPUOBJ)/es5510.o: $(CPUSRC)/es5510/es5510.c \
|
$(CPUOBJ)/es5510.o: $(CPUSRC)/es5510/es5510.c \
|
||||||
$(CPUSRC)/es5510/es5510.h
|
$(CPUSRC)/es5510/es5510.h
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,46 +30,46 @@ const device_type DSP16 = &device_creator<dsp16_device>;
|
|||||||
|
|
||||||
dsp16_device::dsp16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
dsp16_device::dsp16_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: cpu_device(mconfig, DSP16, "DSP16", tag, owner, clock),
|
: cpu_device(mconfig, DSP16, "DSP16", tag, owner, clock),
|
||||||
m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1),
|
m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1),
|
||||||
m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1),
|
m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1),
|
||||||
m_i(0),
|
m_i(0),
|
||||||
m_pc(0),
|
m_pc(0),
|
||||||
m_pt(0),
|
m_pt(0),
|
||||||
m_pr(0),
|
m_pr(0),
|
||||||
m_pi(0),
|
m_pi(0),
|
||||||
m_j(0),
|
m_j(0),
|
||||||
m_k(0),
|
m_k(0),
|
||||||
m_rb(0),
|
m_rb(0),
|
||||||
m_re(0),
|
m_re(0),
|
||||||
m_r0(0),
|
m_r0(0),
|
||||||
m_r1(0),
|
m_r1(0),
|
||||||
m_r2(0),
|
m_r2(0),
|
||||||
m_r3(0),
|
m_r3(0),
|
||||||
m_x(0),
|
m_x(0),
|
||||||
m_y(0),
|
m_y(0),
|
||||||
m_p(0),
|
m_p(0),
|
||||||
m_a0(0),
|
m_a0(0),
|
||||||
m_a1(0),
|
m_a1(0),
|
||||||
m_auc(0),
|
m_auc(0),
|
||||||
m_psw(0),
|
m_psw(0),
|
||||||
m_c0(0),
|
m_c0(0),
|
||||||
m_c1(0),
|
m_c1(0),
|
||||||
m_c2(0),
|
m_c2(0),
|
||||||
m_sioc(0),
|
m_sioc(0),
|
||||||
m_srta(0),
|
m_srta(0),
|
||||||
m_sdx(0),
|
m_sdx(0),
|
||||||
m_pioc(0),
|
m_pioc(0),
|
||||||
m_pdx0(0),
|
m_pdx0(0),
|
||||||
m_pdx1(0),
|
m_pdx1(0),
|
||||||
m_ppc(0),
|
m_ppc(0),
|
||||||
m_cacheStart(CACHE_INVALID),
|
m_cacheStart(CACHE_INVALID),
|
||||||
m_cacheEnd(CACHE_INVALID),
|
m_cacheEnd(CACHE_INVALID),
|
||||||
m_cacheRedoNextPC(CACHE_INVALID),
|
m_cacheRedoNextPC(CACHE_INVALID),
|
||||||
m_cacheIterations(0),
|
m_cacheIterations(0),
|
||||||
m_program(NULL),
|
m_program(NULL),
|
||||||
m_data(NULL),
|
m_data(NULL),
|
||||||
m_direct(NULL),
|
m_direct(NULL),
|
||||||
m_icount(0)
|
m_icount(0)
|
||||||
{
|
{
|
||||||
// Allocate & setup
|
// Allocate & setup
|
||||||
}
|
}
|
||||||
@ -195,8 +195,8 @@ void dsp16_device::device_reset()
|
|||||||
const address_space_config *dsp16_device::memory_space_config(address_spacenum spacenum) const
|
const address_space_config *dsp16_device::memory_space_config(address_spacenum spacenum) const
|
||||||
{
|
{
|
||||||
return (spacenum == AS_PROGRAM) ? &m_program_config :
|
return (spacenum == AS_PROGRAM) ? &m_program_config :
|
||||||
(spacenum == AS_DATA) ? &m_data_config :
|
(spacenum == AS_DATA) ? &m_data_config :
|
||||||
NULL;
|
NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ void dsp16_device::execute_run()
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
// debugging
|
// debugging
|
||||||
m_ppc = m_pc; // copy PC to previous PC
|
m_ppc = m_pc; // copy PC to previous PC
|
||||||
debugger_instruction_hook(this, m_pc);
|
debugger_instruction_hook(this, m_pc);
|
||||||
|
|
||||||
// instruction fetch & execute
|
// instruction fetch & execute
|
||||||
|
@ -55,7 +55,7 @@ protected:
|
|||||||
|
|
||||||
// CPU registers
|
// CPU registers
|
||||||
// ROM Address Arithmetic Unit (XAAU)
|
// ROM Address Arithmetic Unit (XAAU)
|
||||||
UINT16 m_i; // 12 bits
|
UINT16 m_i; // 12 bits
|
||||||
UINT16 m_pc;
|
UINT16 m_pc;
|
||||||
UINT16 m_pt;
|
UINT16 m_pt;
|
||||||
UINT16 m_pr;
|
UINT16 m_pr;
|
||||||
@ -73,9 +73,9 @@ protected:
|
|||||||
UINT16 m_x;
|
UINT16 m_x;
|
||||||
UINT32 m_y;
|
UINT32 m_y;
|
||||||
UINT32 m_p;
|
UINT32 m_p;
|
||||||
UINT64 m_a0; // 36 bits
|
UINT64 m_a0; // 36 bits
|
||||||
UINT64 m_a1; // 36 bits
|
UINT64 m_a1; // 36 bits
|
||||||
UINT8 m_auc; // 6 bits
|
UINT8 m_auc; // 6 bits
|
||||||
UINT16 m_psw;
|
UINT16 m_psw;
|
||||||
UINT8 m_c0;
|
UINT8 m_c0;
|
||||||
UINT8 m_c1;
|
UINT8 m_c1;
|
||||||
@ -85,8 +85,8 @@ protected:
|
|||||||
UINT16 m_srta;
|
UINT16 m_srta;
|
||||||
UINT16 m_sdx;
|
UINT16 m_sdx;
|
||||||
UINT16 m_pioc;
|
UINT16 m_pioc;
|
||||||
UINT16 m_pdx0; // pdx0 & pdx1 refer to the same physical register (page 6-1)
|
UINT16 m_pdx0; // pdx0 & pdx1 refer to the same physical register (page 6-1)
|
||||||
UINT16 m_pdx1; // but we keep them seperate for logic's sake.
|
UINT16 m_pdx1; // but we keep them seperate for logic's sake.
|
||||||
|
|
||||||
// internal stuff
|
// internal stuff
|
||||||
UINT16 m_ppc;
|
UINT16 m_ppc;
|
||||||
@ -143,12 +143,12 @@ extern const device_type DSP16;
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
DSP16_I, // ROM Address Arithmetic Unit (XAAU)
|
DSP16_I, // ROM Address Arithmetic Unit (XAAU)
|
||||||
DSP16_PC,
|
DSP16_PC,
|
||||||
DSP16_PT,
|
DSP16_PT,
|
||||||
DSP16_PR,
|
DSP16_PR,
|
||||||
DSP16_PI,
|
DSP16_PI,
|
||||||
DSP16_J, // RAM Address Arithmetic Unit (YAAU)
|
DSP16_J, // RAM Address Arithmetic Unit (YAAU)
|
||||||
DSP16_K,
|
DSP16_K,
|
||||||
DSP16_RB,
|
DSP16_RB,
|
||||||
DSP16_RE,
|
DSP16_RE,
|
||||||
@ -156,7 +156,7 @@ enum
|
|||||||
DSP16_R1,
|
DSP16_R1,
|
||||||
DSP16_R2,
|
DSP16_R2,
|
||||||
DSP16_R3,
|
DSP16_R3,
|
||||||
DSP16_X, // Data Arithmetic Unit (DAU)
|
DSP16_X, // Data Arithmetic Unit (DAU)
|
||||||
DSP16_Y,
|
DSP16_Y,
|
||||||
DSP16_P,
|
DSP16_P,
|
||||||
DSP16_A0,
|
DSP16_A0,
|
||||||
@ -170,8 +170,8 @@ enum
|
|||||||
DSP16_SRTA,
|
DSP16_SRTA,
|
||||||
DSP16_SDX,
|
DSP16_SDX,
|
||||||
DSP16_PIOC,
|
DSP16_PIOC,
|
||||||
DSP16_PDX0,
|
DSP16_PDX0,
|
||||||
DSP16_PDX1
|
DSP16_PDX1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -234,8 +234,8 @@ bool disasmSIField(const UINT8& SI)
|
|||||||
{
|
{
|
||||||
switch (SI)
|
switch (SI)
|
||||||
{
|
{
|
||||||
case 0x00: return 0; // Not a software interrupt
|
case 0x00: return 0; // Not a software interrupt
|
||||||
case 0x01: return 1; // Software Interrupt
|
case 0x01: return 1; // Software Interrupt
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -505,7 +505,7 @@ CPU_DISASSEMBLE( dsp16a )
|
|||||||
const UINT8 R = (op & 0x03f0) >> 4;
|
const UINT8 R = (op & 0x03f0) >> 4;
|
||||||
astring yString = disasmYField(Y);
|
astring yString = disasmYField(Y);
|
||||||
astring rString = disasmRField(R);
|
astring rString = disasmRField(R);
|
||||||
// TODO: page 3-31 "special function encoding"
|
// TODO: page 3-31 "special function encoding"
|
||||||
sprintf(buffer, "%s = %s", yString.cstr(), rString.cstr());
|
sprintf(buffer, "%s = %s", yString.cstr(), rString.cstr());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -49,24 +49,24 @@ bool dsp16_device::conditionTest(const UINT8& CON)
|
|||||||
{
|
{
|
||||||
switch (CON)
|
switch (CON)
|
||||||
{
|
{
|
||||||
case 0x00: return (m_psw & 0x8000); // mi (negative result)
|
case 0x00: return (m_psw & 0x8000); // mi (negative result)
|
||||||
case 0x01: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // pl (positive result)
|
case 0x01: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // pl (positive result)
|
||||||
case 0x02: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // eq (result == 0)
|
case 0x02: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // eq (result == 0)
|
||||||
case 0x03: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // ne (result != 0)
|
case 0x03: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // ne (result != 0)
|
||||||
case 0x04: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // lvs (logical overflow set)
|
case 0x04: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // lvs (logical overflow set)
|
||||||
case 0x05: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // lvc (logical overflow clear)
|
case 0x05: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // lvc (logical overflow clear)
|
||||||
case 0x06: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // mvs (math. overflow set)
|
case 0x06: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // mvs (math. overflow set)
|
||||||
case 0x07: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // mvc (math. overflow clear)
|
case 0x07: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // mvc (math. overflow clear)
|
||||||
case 0x08: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // heads (random bit set)
|
case 0x08: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // heads (random bit set)
|
||||||
case 0x09: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // tails (random bit clear)
|
case 0x09: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // tails (random bit clear)
|
||||||
case 0x0a: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c0ge (counter0 >= 0)
|
case 0x0a: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c0ge (counter0 >= 0)
|
||||||
case 0x0b: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c0lt (counter0 < 0)
|
case 0x0b: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c0lt (counter0 < 0)
|
||||||
case 0x0c: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c1ge (counter1 >= 0)
|
case 0x0c: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c1ge (counter1 >= 0)
|
||||||
case 0x0d: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c1lt (counter1 < 0)
|
case 0x0d: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // c1lt (counter1 < 0)
|
||||||
case 0x0e: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // true (always)
|
case 0x0e: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // true (always)
|
||||||
case 0x0f: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // false (never)
|
case 0x0f: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // false (never)
|
||||||
case 0x10: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // gt (result > 0
|
case 0x10: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // gt (result > 0
|
||||||
case 0x11: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // le (result <= 0)
|
case 0x11: printf("UNIMPLEMENTED condition check @ PC 0x%04x\n", m_pc); return false; // le (result <= 0)
|
||||||
default: logerror("Unrecognized condition at PC=0x%04x\n", m_pc); break;
|
default: logerror("Unrecognized condition at PC=0x%04x\n", m_pc); break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -112,11 +112,11 @@ void* dsp16_device::registerFromRTable(const UINT8 &R)
|
|||||||
case 0x10: return (void*)&m_x;
|
case 0x10: return (void*)&m_x;
|
||||||
case 0x11: return (void*)&m_y;
|
case 0x11: return (void*)&m_y;
|
||||||
case 0x12: return (void*)addressYL();
|
case 0x12: return (void*)addressYL();
|
||||||
case 0x13: return (void*)&m_auc; // zero extended
|
case 0x13: return (void*)&m_auc; // zero extended
|
||||||
case 0x14: return (void*)&m_psw;
|
case 0x14: return (void*)&m_psw;
|
||||||
case 0x15: return (void*)&m_c0; // sign extended
|
case 0x15: return (void*)&m_c0; // sign extended
|
||||||
case 0x16: return (void*)&m_c1; // sign extended
|
case 0x16: return (void*)&m_c1; // sign extended
|
||||||
case 0x17: return (void*)&m_c2; // sign extended
|
case 0x17: return (void*)&m_c2; // sign extended
|
||||||
case 0x18: return (void*)&m_sioc;
|
case 0x18: return (void*)&m_sioc;
|
||||||
case 0x19: return (void*)&m_srta;
|
case 0x19: return (void*)&m_srta;
|
||||||
case 0x1a: return (void*)&m_sdx;
|
case 0x1a: return (void*)&m_sdx;
|
||||||
@ -137,20 +137,20 @@ void dsp16_device::executeF1Field(const UINT8& F1, const UINT8& D, const UINT8&
|
|||||||
//UINT64* destinationReg = NULL;
|
//UINT64* destinationReg = NULL;
|
||||||
//switch (D)
|
//switch (D)
|
||||||
//{
|
//{
|
||||||
// case 0x00: destinationReg = &m_a0;
|
// case 0x00: destinationReg = &m_a0;
|
||||||
// case 0x01: destinationReg = &m_a1;
|
// case 0x01: destinationReg = &m_a1;
|
||||||
// default: break;
|
// default: break;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
// Which source is being used?
|
// Which source is being used?
|
||||||
//UINT64* sourceReg = NULL;
|
//UINT64* sourceReg = NULL;
|
||||||
//switch (S)
|
//switch (S)
|
||||||
//{
|
//{
|
||||||
// case 0x00: sourceReg = &m_a0;
|
// case 0x00: sourceReg = &m_a0;
|
||||||
// case 0x01: sourceReg = &m_a1;
|
// case 0x01: sourceReg = &m_a1;
|
||||||
// default: break;
|
// default: break;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
switch (F1)
|
switch (F1)
|
||||||
{
|
{
|
||||||
case 0x00: printf("UNIMPLEMENTED F1 operation @ PC 0x%04x\n", m_pc); break;
|
case 0x00: printf("UNIMPLEMENTED F1 operation @ PC 0x%04x\n", m_pc); break;
|
||||||
@ -201,7 +201,7 @@ void dsp16_device::executeYFieldPost(const UINT8& Y)
|
|||||||
case 0x03: opReg = &m_r3; break;
|
case 0x03: opReg = &m_r3; break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const UINT8 lower = Y & 0x03;
|
const UINT8 lower = Y & 0x03;
|
||||||
switch (lower)
|
switch (lower)
|
||||||
{
|
{
|
||||||
@ -341,7 +341,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
case 0x00: m_pt++; break;
|
case 0x00: m_pt++; break;
|
||||||
case 0x01: m_pt += m_i; break;
|
case 0x01: m_pt += m_i; break;
|
||||||
}
|
}
|
||||||
cycles = 2; // TODO: 1 if cached
|
cycles = 2; // TODO: 1 if cached
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -355,15 +355,15 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
const UINT8 F1 = (op & 0x01e0) >> 5;
|
const UINT8 F1 = (op & 0x01e0) >> 5;
|
||||||
bool useA1 = (opcode == 0x1b);
|
bool useA1 = (opcode == 0x1b);
|
||||||
if (Y != 0x00) printf("Unknown opcode @ PC=0x%04x", m_pc);
|
if (Y != 0x00) printf("Unknown opcode @ PC=0x%04x", m_pc);
|
||||||
m_y = (useA1) ? (m_a1 & 0xffffffff) : (m_a0 & 0xffffffff); // TODO: What happens to Ax when it goes 32 bit (pc=3f & pc=47)?
|
m_y = (useA1) ? (m_a1 & 0xffffffff) : (m_a0 & 0xffffffff); // TODO: What happens to Ax when it goes 32 bit (pc=3f & pc=47)?
|
||||||
executeF1Field(F1, D, S);
|
executeF1Field(F1, D, S);
|
||||||
writeRegister(&m_x, data_read(m_pt)); // TODO: EXM Pin & internal/external ROM? Research.
|
writeRegister(&m_x, data_read(m_pt)); // TODO: EXM Pin & internal/external ROM? Research.
|
||||||
switch (X)
|
switch (X)
|
||||||
{
|
{
|
||||||
case 0x00: m_pt++; break;
|
case 0x00: m_pt++; break;
|
||||||
case 0x01: m_pt += m_i; break;
|
case 0x01: m_pt += m_i; break;
|
||||||
}
|
}
|
||||||
cycles = 2; // TODO: 1 if cached
|
cycles = 2; // TODO: 1 if cached
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -425,30 +425,30 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
const UINT8 S = (op & 0x0200) >> 9;
|
const UINT8 S = (op & 0x0200) >> 9;
|
||||||
const UINT8 D = (op & 0x0400) >> 10;
|
const UINT8 D = (op & 0x0400) >> 10;
|
||||||
const UINT8 F1 = (op & 0x01e0) >> 5;
|
const UINT8 F1 = (op & 0x01e0) >> 5;
|
||||||
executeF1Field(F1, D, S);
|
executeF1Field(F1, D, S);
|
||||||
UINT16 temp = 0x0000;
|
UINT16 temp = 0x0000;
|
||||||
UINT16* rN = (UINT16*)registerFromYFieldUpper(Z);
|
UINT16* rN = (UINT16*)registerFromYFieldUpper(Z);
|
||||||
switch (X)
|
switch (X)
|
||||||
{
|
{
|
||||||
case 0x00:
|
case 0x00:
|
||||||
temp = m_y & 0x0000ffff;
|
temp = m_y & 0x0000ffff;
|
||||||
m_y &= 0xffff0000;
|
m_y &= 0xffff0000;
|
||||||
m_y |= data_read(*rN);
|
m_y |= data_read(*rN);
|
||||||
executeZFieldPartOne(Z, rN);
|
executeZFieldPartOne(Z, rN);
|
||||||
data_write(*rN, temp);
|
data_write(*rN, temp);
|
||||||
executeZFieldPartTwo(Z, rN);
|
executeZFieldPartTwo(Z, rN);
|
||||||
break;
|
break;
|
||||||
case 0x01:
|
case 0x01:
|
||||||
temp = (m_y & 0xffff0000) >> 16;
|
temp = (m_y & 0xffff0000) >> 16;
|
||||||
m_y &= 0x0000ffff;
|
m_y &= 0x0000ffff;
|
||||||
m_y |= (data_read(*rN) << 16);
|
m_y |= (data_read(*rN) << 16);
|
||||||
executeZFieldPartOne(Z, rN);
|
executeZFieldPartOne(Z, rN);
|
||||||
data_write(*rN, temp);
|
data_write(*rN, temp);
|
||||||
executeZFieldPartTwo(Z, rN);
|
executeZFieldPartTwo(Z, rN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cycles = 2;
|
cycles = 2;
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x1d:
|
case 0x1d:
|
||||||
@ -539,7 +539,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
// if CON [goto/call/return] : (page 3-22)
|
// if CON [goto/call/return] : (page 3-22)
|
||||||
const UINT8 CON = (op & 0x001f);
|
const UINT8 CON = (op & 0x001f);
|
||||||
bool conditionFulfilled = conditionTest(CON);
|
bool conditionFulfilled = conditionTest(CON);
|
||||||
cycles = 3; // TODO: This may need to interact with the next opcode to make sure it doesn't exceed 3?
|
cycles = 3; // TODO: This may need to interact with the next opcode to make sure it doesn't exceed 3?
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
if (!conditionFulfilled)
|
if (!conditionFulfilled)
|
||||||
{
|
{
|
||||||
@ -577,7 +577,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
}
|
}
|
||||||
void* sourceReg = registerFromRTable(R);
|
void* sourceReg = registerFromRTable(R);
|
||||||
*destinationReg &= U64(0x00000ffff);
|
*destinationReg &= U64(0x00000ffff);
|
||||||
*destinationReg |= (*(UINT16*)sourceReg) << 16; // TODO: Fix for all registers
|
*destinationReg |= (*(UINT16*)sourceReg) << 16; // TODO: Fix for all registers
|
||||||
if (*(UINT16*)sourceReg & 0x8000)
|
if (*(UINT16*)sourceReg & 0x8000)
|
||||||
*destinationReg |= U64(0xf00000000);
|
*destinationReg |= U64(0xf00000000);
|
||||||
// TODO: Special function encoding
|
// TODO: Special function encoding
|
||||||
@ -639,7 +639,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
const INT8 M = (op & 0x00ff);
|
const INT8 M = (op & 0x00ff);
|
||||||
const UINT8 R = (op & 0x0e00) >> 9;
|
const UINT8 R = (op & 0x0e00) >> 9;
|
||||||
void* reg = registerFromRImmediateField(R);
|
void* reg = registerFromRImmediateField(R);
|
||||||
writeRegister(reg, (INT16)M); // Sign extend 8 bit int
|
writeRegister(reg, (INT16)M); // Sign extend 8 bit int
|
||||||
cycles = 1;
|
cycles = 1;
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
break;
|
break;
|
||||||
@ -656,14 +656,14 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
|
|||||||
// Do
|
// Do
|
||||||
m_cacheStart = m_pc + 1;
|
m_cacheStart = m_pc + 1;
|
||||||
m_cacheEnd = m_pc + NI + 1;
|
m_cacheEnd = m_pc + NI + 1;
|
||||||
m_cacheIterations = K-1; // -1 because we check the counter @ the end
|
m_cacheIterations = K-1; // -1 because we check the counter @ the end
|
||||||
cycles = 1;
|
cycles = 1;
|
||||||
pcAdvance = 1;
|
pcAdvance = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Redo
|
// Redo
|
||||||
m_cacheIterations = K-1; // -1 because we check the counter @ the end
|
m_cacheIterations = K-1; // -1 because we check the counter @ the end
|
||||||
m_cacheRedoNextPC = m_pc + 1;
|
m_cacheRedoNextPC = m_pc + 1;
|
||||||
m_pc = m_cacheStart;
|
m_pc = m_cacheStart;
|
||||||
pcAdvance = 0;
|
pcAdvance = 0;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -13,163 +13,163 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
class es5510_device : public cpu_device {
|
class es5510_device : public cpu_device {
|
||||||
public:
|
public:
|
||||||
es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(host_r);
|
DECLARE_READ8_MEMBER(host_r);
|
||||||
DECLARE_WRITE8_MEMBER(host_w);
|
DECLARE_WRITE8_MEMBER(host_w);
|
||||||
|
|
||||||
DECLARE_READ16_MEMBER(ser_r);
|
DECLARE_READ16_MEMBER(ser_r);
|
||||||
DECLARE_WRITE16_MEMBER(ser_w);
|
DECLARE_WRITE16_MEMBER(ser_w);
|
||||||
|
|
||||||
enum line_t {
|
enum line_t {
|
||||||
ES5510_HALT = 0
|
ES5510_HALT = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
enum state_t {
|
enum state_t {
|
||||||
STATE_RUNNING = 0,
|
STATE_RUNNING = 0,
|
||||||
STATE_HALTED = 1
|
STATE_HALTED = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
struct alu_op_t {
|
struct alu_op_t {
|
||||||
int operands;
|
int operands;
|
||||||
const char * const opcode;
|
const char * const opcode;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum op_src_dst_t {
|
enum op_src_dst_t {
|
||||||
SRC_DST_REG = 1 << 0,
|
SRC_DST_REG = 1 << 0,
|
||||||
SRC_DST_DELAY = 1 << 1,
|
SRC_DST_DELAY = 1 << 1,
|
||||||
SRC_DST_BOTH = (1 << 0) | (1 << 1)
|
SRC_DST_BOTH = (1 << 0) | (1 << 1)
|
||||||
};
|
};
|
||||||
|
|
||||||
struct op_select_t {
|
|
||||||
const op_src_dst_t alu_src;
|
|
||||||
const op_src_dst_t alu_dst;
|
|
||||||
const op_src_dst_t mac_src;
|
|
||||||
const op_src_dst_t mac_dst;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum ram_control_access_t {
|
struct op_select_t {
|
||||||
RAM_CONTROL_DELAY = 0,
|
const op_src_dst_t alu_src;
|
||||||
RAM_CONTROL_TABLE_A,
|
const op_src_dst_t alu_dst;
|
||||||
RAM_CONTROL_TABLE_B,
|
const op_src_dst_t mac_src;
|
||||||
RAM_CONTROL_IO
|
const op_src_dst_t mac_dst;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ram_cycle_t {
|
enum ram_control_access_t {
|
||||||
RAM_CYCLE_READ = 0,
|
RAM_CONTROL_DELAY = 0,
|
||||||
RAM_CYCLE_WRITE = 1,
|
RAM_CONTROL_TABLE_A,
|
||||||
RAM_CYCLE_DUMP_FIFO = 2
|
RAM_CONTROL_TABLE_B,
|
||||||
};
|
RAM_CONTROL_IO
|
||||||
|
};
|
||||||
|
|
||||||
struct ram_control_t {
|
enum ram_cycle_t {
|
||||||
ram_cycle_t cycle;
|
RAM_CYCLE_READ = 0,
|
||||||
ram_control_access_t access;
|
RAM_CYCLE_WRITE = 1,
|
||||||
const char * const description;
|
RAM_CYCLE_DUMP_FIFO = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
static const alu_op_t ALU_OPS[16];
|
struct ram_control_t {
|
||||||
static const op_select_t OPERAND_SELECT[16];
|
ram_cycle_t cycle;
|
||||||
static const ram_control_t RAM_CONTROL[8];
|
ram_control_access_t access;
|
||||||
|
const char * const description;
|
||||||
|
};
|
||||||
|
|
||||||
struct alu_t {
|
static const alu_op_t ALU_OPS[16];
|
||||||
UINT8 aReg;
|
static const op_select_t OPERAND_SELECT[16];
|
||||||
UINT8 bReg;
|
static const ram_control_t RAM_CONTROL[8];
|
||||||
op_src_dst_t src;
|
|
||||||
op_src_dst_t dst;
|
|
||||||
UINT8 op;
|
|
||||||
INT32 aValue;
|
|
||||||
INT32 bValue;
|
|
||||||
INT32 result;
|
|
||||||
bool update_ccr;
|
|
||||||
bool write_result;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct mulacc_t {
|
struct alu_t {
|
||||||
UINT8 cReg;
|
UINT8 aReg;
|
||||||
UINT8 dReg;
|
UINT8 bReg;
|
||||||
op_src_dst_t src;
|
op_src_dst_t src;
|
||||||
op_src_dst_t dst;
|
op_src_dst_t dst;
|
||||||
bool accumulate;
|
UINT8 op;
|
||||||
INT64 cValue;
|
INT32 aValue;
|
||||||
INT64 dValue;
|
INT32 bValue;
|
||||||
INT64 product;
|
INT32 result;
|
||||||
INT64 result;
|
bool update_ccr;
|
||||||
bool write_result;
|
bool write_result;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ram_t {
|
struct mulacc_t {
|
||||||
INT32 address; // up to 20 bits, left-justified within the right 24 bits of the 32-bit word
|
UINT8 cReg;
|
||||||
bool io; // I/O space, rather than delay line memory
|
UINT8 dReg;
|
||||||
ram_cycle_t cycle; // cycle type
|
op_src_dst_t src;
|
||||||
};
|
op_src_dst_t dst;
|
||||||
|
bool accumulate;
|
||||||
|
INT64 cValue;
|
||||||
|
INT64 dValue;
|
||||||
|
INT64 product;
|
||||||
|
INT64 result;
|
||||||
|
bool write_result;
|
||||||
|
};
|
||||||
|
|
||||||
protected:
|
struct ram_t {
|
||||||
virtual void device_start();
|
INT32 address; // up to 20 bits, left-justified within the right 24 bits of the 32-bit word
|
||||||
virtual void device_reset();
|
bool io; // I/O space, rather than delay line memory
|
||||||
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
|
ram_cycle_t cycle; // cycle type
|
||||||
virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const;
|
};
|
||||||
virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const;
|
|
||||||
virtual UINT32 execute_min_cycles() const;
|
|
||||||
virtual UINT32 execute_max_cycles() const;
|
|
||||||
virtual UINT32 execute_input_lines() const;
|
|
||||||
virtual void execute_run();
|
|
||||||
virtual UINT32 disasm_min_opcode_bytes() const;
|
|
||||||
virtual UINT32 disasm_max_opcode_bytes() const;
|
|
||||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
|
|
||||||
|
|
||||||
INT32 read_reg(UINT8 reg);
|
protected:
|
||||||
void write_reg(UINT8 reg, INT32 value);
|
virtual void device_start();
|
||||||
void write_to_dol(INT32 value);
|
virtual void device_reset();
|
||||||
|
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
|
||||||
|
virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const;
|
||||||
|
virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const;
|
||||||
|
virtual UINT32 execute_min_cycles() const;
|
||||||
|
virtual UINT32 execute_max_cycles() const;
|
||||||
|
virtual UINT32 execute_input_lines() const;
|
||||||
|
virtual void execute_run();
|
||||||
|
virtual UINT32 disasm_min_opcode_bytes() const;
|
||||||
|
virtual UINT32 disasm_max_opcode_bytes() const;
|
||||||
|
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
|
||||||
|
|
||||||
INT32 alu_operation(UINT8 op, INT32 aValue, INT32 bValue, UINT8 &flags);
|
INT32 read_reg(UINT8 reg);
|
||||||
|
void write_reg(UINT8 reg, INT32 value);
|
||||||
|
void write_to_dol(INT32 value);
|
||||||
|
|
||||||
private:
|
INT32 alu_operation(UINT8 op, INT32 aValue, INT32 bValue, UINT8 &flags);
|
||||||
int icount;
|
|
||||||
UINT8 pc;
|
|
||||||
state_t state;
|
|
||||||
INT32 gpr[0xc0]; // 24 bits, right justified and sign extended
|
|
||||||
INT32 ser0r;
|
|
||||||
INT32 ser0l;
|
|
||||||
INT32 ser1r;
|
|
||||||
INT32 ser1l;
|
|
||||||
INT32 ser2r;
|
|
||||||
INT32 ser2l;
|
|
||||||
INT32 ser3r;
|
|
||||||
INT32 ser3l;
|
|
||||||
INT64 machl; // 48 bits, right justified and sign extended
|
|
||||||
INT32 dil;
|
|
||||||
INT32 memsiz;
|
|
||||||
INT32 memmask;
|
|
||||||
INT32 memincrement;
|
|
||||||
INT8 memshift;
|
|
||||||
INT32 dlength;
|
|
||||||
INT32 abase;
|
|
||||||
INT32 bbase;
|
|
||||||
INT32 dbase;
|
|
||||||
INT32 sigreg;
|
|
||||||
int mulshift;
|
|
||||||
INT8 ccr; // really, 5 bits, left justified
|
|
||||||
INT8 cmr; // really, 6 bits, left justified
|
|
||||||
INT32 dol[2];
|
|
||||||
int dol_count;
|
|
||||||
|
|
||||||
UINT64 instr[160]; // 48 bits, right justified
|
private:
|
||||||
UINT16 dram[1<<20]; // there are up to 20 address bits (at least 16 expected), left justified within the 24 bits of a gpr or dadr; we preallocate all of it.
|
int icount;
|
||||||
|
UINT8 pc;
|
||||||
|
state_t state;
|
||||||
|
INT32 gpr[0xc0]; // 24 bits, right justified and sign extended
|
||||||
|
INT32 ser0r;
|
||||||
|
INT32 ser0l;
|
||||||
|
INT32 ser1r;
|
||||||
|
INT32 ser1l;
|
||||||
|
INT32 ser2r;
|
||||||
|
INT32 ser2l;
|
||||||
|
INT32 ser3r;
|
||||||
|
INT32 ser3l;
|
||||||
|
INT64 machl; // 48 bits, right justified and sign extended
|
||||||
|
INT32 dil;
|
||||||
|
INT32 memsiz;
|
||||||
|
INT32 memmask;
|
||||||
|
INT32 memincrement;
|
||||||
|
INT8 memshift;
|
||||||
|
INT32 dlength;
|
||||||
|
INT32 abase;
|
||||||
|
INT32 bbase;
|
||||||
|
INT32 dbase;
|
||||||
|
INT32 sigreg;
|
||||||
|
int mulshift;
|
||||||
|
INT8 ccr; // really, 5 bits, left justified
|
||||||
|
INT8 cmr; // really, 6 bits, left justified
|
||||||
|
INT32 dol[2];
|
||||||
|
int dol_count;
|
||||||
|
|
||||||
// latch registers for host interaction
|
UINT64 instr[160]; // 48 bits, right justified
|
||||||
INT32 dol_latch; // 24 bits
|
UINT16 dram[1<<20]; // there are up to 20 address bits (at least 16 expected), left justified within the 24 bits of a gpr or dadr; we preallocate all of it.
|
||||||
INT32 dil_latch; // 24 bits
|
|
||||||
UINT32 dadr_latch; // 24 bits
|
|
||||||
INT32 gpr_latch; // 24 bits, holding up to 20 address bits, left justified
|
|
||||||
UINT64 instr_latch; // 48 bits, right justified
|
|
||||||
UINT8 ram_sel; // effectively a boolean
|
|
||||||
UINT8 host_control; //
|
|
||||||
|
|
||||||
// currently executing instruction(s)
|
// latch registers for host interaction
|
||||||
alu_t alu;
|
INT32 dol_latch; // 24 bits
|
||||||
mulacc_t mulacc;
|
INT32 dil_latch; // 24 bits
|
||||||
ram_t ram, ram_p, ram_pp; // ram operations for cycles N, N-1 and N-2
|
UINT32 dadr_latch; // 24 bits
|
||||||
|
INT32 gpr_latch; // 24 bits, holding up to 20 address bits, left justified
|
||||||
|
UINT64 instr_latch; // 48 bits, right justified
|
||||||
|
UINT8 ram_sel; // effectively a boolean
|
||||||
|
UINT8 host_control; //
|
||||||
|
|
||||||
|
// currently executing instruction(s)
|
||||||
|
alu_t alu;
|
||||||
|
mulacc_t mulacc;
|
||||||
|
ram_t ram, ram_p, ram_pp; // ram operations for cycles N, N-1 and N-2
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const device_type ES5510;
|
extern const device_type ES5510;
|
||||||
|
@ -5,15 +5,12 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MCFG_LR35902_TIMER_CB(_devcb) \
|
#define MCFG_LR35902_TIMER_CB(_devcb) \
|
||||||
lr35902_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb); \
|
lr35902_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
#define MCFG_LR35902_HALT_BUG \
|
#define MCFG_LR35902_HALT_BUG \
|
||||||
lr35902_cpu_device::set_halt_bug(*device); \
|
lr35902_cpu_device::set_halt_bug(*device);
|
||||||
|
|
||||||
// This should be removed/improved once all gameboy boot roms have been dumped
|
// This should be removed/improved once all gameboy boot roms have been dumped
|
||||||
#define MCFG_LR35902_RESET_VALUES(_regs) \
|
#define MCFG_LR35902_RESET_VALUES(_regs) \
|
||||||
lr35902_cpu_device::set_reset_values(*device, _regs); \
|
lr35902_cpu_device::set_reset_values(*device, _regs);
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -128,7 +128,7 @@ protected:
|
|||||||
DASM_imz, /* load immediate byte, store to zero page address (M740) */
|
DASM_imz, /* load immediate byte, store to zero page address (M740) */
|
||||||
DASM_spg, /* "special page": implied FF00 plus immediate value (M740)*/
|
DASM_spg, /* "special page": implied FF00 plus immediate value (M740)*/
|
||||||
DASM_biz, /* bit, zero page (M740) */
|
DASM_biz, /* bit, zero page (M740) */
|
||||||
DASM_bzr /* bit, zero page, relative offset (M740) */
|
DASM_bzr /* bit, zero page, relative offset (M740) */
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -75,36 +75,36 @@
|
|||||||
HELPER MACROS
|
HELPER MACROS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#define RSREG ((m_op >> 21) & 31)
|
#define RSREG ((m_op >> 21) & 31)
|
||||||
#define RTREG ((m_op >> 16) & 31)
|
#define RTREG ((m_op >> 16) & 31)
|
||||||
#define RDREG ((m_op >> 11) & 31)
|
#define RDREG ((m_op >> 11) & 31)
|
||||||
#define SHIFT ((m_op >> 6) & 31)
|
#define SHIFT ((m_op >> 6) & 31)
|
||||||
|
|
||||||
#define RSVAL m_r[RSREG]
|
#define RSVAL m_r[RSREG]
|
||||||
#define RTVAL m_r[RTREG]
|
#define RTVAL m_r[RTREG]
|
||||||
#define RDVAL m_r[RDREG]
|
#define RDVAL m_r[RDREG]
|
||||||
|
|
||||||
#define SIMMVAL ((INT16)m_op)
|
#define SIMMVAL ((INT16)m_op)
|
||||||
#define UIMMVAL ((UINT16)m_op)
|
#define UIMMVAL ((UINT16)m_op)
|
||||||
#define LIMMVAL (m_op & 0x03ffffff)
|
#define LIMMVAL (m_op & 0x03ffffff)
|
||||||
|
|
||||||
#define ADDPC(x) do { m_nextpc = m_pc + ((x) << 2); } while (0)
|
#define ADDPC(x) do { m_nextpc = m_pc + ((x) << 2); } while (0)
|
||||||
#define ADDPCL(x,l) do { m_nextpc = m_pc + ((x) << 2); m_r[l] = m_pc + 4; } while (0)
|
#define ADDPCL(x,l) do { m_nextpc = m_pc + ((x) << 2); m_r[l] = m_pc + 4; } while (0)
|
||||||
#define ABSPC(x) do { m_nextpc = (m_pc & 0xf0000000) | ((x) << 2); } while (0)
|
#define ABSPC(x) do { m_nextpc = (m_pc & 0xf0000000) | ((x) << 2); } while (0)
|
||||||
#define ABSPCL(x,l) do { m_nextpc = (m_pc & 0xf0000000) | ((x) << 2); m_r[l] = m_pc + 4; } while (0)
|
#define ABSPCL(x,l) do { m_nextpc = (m_pc & 0xf0000000) | ((x) << 2); m_r[l] = m_pc + 4; } while (0)
|
||||||
#define SETPC(x) do { m_nextpc = (x); } while (0)
|
#define SETPC(x) do { m_nextpc = (x); } while (0)
|
||||||
#define SETPCL(x,l) do { m_nextpc = (x); m_r[l] = m_pc + 4; } while (0)
|
#define SETPCL(x,l) do { m_nextpc = (x); m_r[l] = m_pc + 4; } while (0)
|
||||||
|
|
||||||
#define RBYTE(x) (this->*m_cur->m_read_byte)(x)
|
#define RBYTE(x) (this->*m_cur->m_read_byte)(x)
|
||||||
#define RWORD(x) (this->*m_cur->m_read_word)(x)
|
#define RWORD(x) (this->*m_cur->m_read_word)(x)
|
||||||
#define RLONG(x) (this->*m_cur->m_read_dword)(x)
|
#define RLONG(x) (this->*m_cur->m_read_dword)(x)
|
||||||
|
|
||||||
#define WBYTE(x,v) (this->*m_cur->m_write_byte)(x, v)
|
#define WBYTE(x,v) (this->*m_cur->m_write_byte)(x, v)
|
||||||
#define WWORD(x,v) (this->*m_cur->m_write_word)(x, v)
|
#define WWORD(x,v) (this->*m_cur->m_write_word)(x, v)
|
||||||
#define WLONG(x,v) (this->*m_cur->m_write_dword)(x, v)
|
#define WLONG(x,v) (this->*m_cur->m_write_dword)(x, v)
|
||||||
|
|
||||||
#define SR m_cpr[0][COP0_Status]
|
#define SR m_cpr[0][COP0_Status]
|
||||||
#define CAUSE m_cpr[0][COP0_Cause]
|
#define CAUSE m_cpr[0][COP0_Cause]
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -227,7 +227,7 @@ void r3000_device::device_start()
|
|||||||
m_icache_size = 4096;
|
m_icache_size = 4096;
|
||||||
m_dcache_size = 2048;
|
m_dcache_size = 2048;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CHIP_TYPE_R3052:
|
case CHIP_TYPE_R3052:
|
||||||
{
|
{
|
||||||
m_icache_size = 8192;
|
m_icache_size = 8192;
|
||||||
@ -238,17 +238,17 @@ void r3000_device::device_start()
|
|||||||
// TODO: R3071 and R3081 have configurable cache sizes
|
// TODO: R3071 and R3081 have configurable cache sizes
|
||||||
case CHIP_TYPE_R3071:
|
case CHIP_TYPE_R3071:
|
||||||
{
|
{
|
||||||
m_icache_size = 16384; // or 8kB
|
m_icache_size = 16384; // or 8kB
|
||||||
m_dcache_size = 4096; // or 8kB
|
m_dcache_size = 4096; // or 8kB
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CHIP_TYPE_R3081:
|
case CHIP_TYPE_R3081:
|
||||||
{
|
{
|
||||||
m_icache_size = 16384; // or 8kB
|
m_icache_size = 16384; // or 8kB
|
||||||
m_dcache_size = 4096; // or 8kB
|
m_dcache_size = 4096; // or 8kB
|
||||||
m_hasfpu = true;
|
m_hasfpu = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate cache memory
|
// allocate cache memory
|
||||||
@ -286,7 +286,7 @@ void r3000_device::device_start()
|
|||||||
m_lwr = &r3000_device::lwr_le;
|
m_lwr = &r3000_device::lwr_le;
|
||||||
m_swl = &r3000_device::swl_le;
|
m_swl = &r3000_device::swl_le;
|
||||||
m_swr = &r3000_device::swr_le;
|
m_swr = &r3000_device::swr_le;
|
||||||
|
|
||||||
m_cache_hand.m_read_byte = &r3000_device::readcache_le;
|
m_cache_hand.m_read_byte = &r3000_device::readcache_le;
|
||||||
m_cache_hand.m_read_word = &r3000_device::readcache_le_word;
|
m_cache_hand.m_read_word = &r3000_device::readcache_le_word;
|
||||||
m_cache_hand.m_read_dword = &r3000_device::readcache_le_dword;
|
m_cache_hand.m_read_dword = &r3000_device::readcache_le_dword;
|
||||||
@ -302,44 +302,44 @@ void r3000_device::device_start()
|
|||||||
m_in_brcond3.resolve_safe(0);
|
m_in_brcond3.resolve_safe(0);
|
||||||
|
|
||||||
// register our state for the debugger
|
// register our state for the debugger
|
||||||
state_add(STATE_GENPC, "GENPC", m_pc).noshow();
|
state_add(STATE_GENPC, "GENPC", m_pc).noshow();
|
||||||
state_add(STATE_GENPCBASE, "GENPCBASE", m_ppc).noshow();
|
state_add(STATE_GENPCBASE, "GENPCBASE", m_ppc).noshow();
|
||||||
state_add(STATE_GENSP, "GENSP", m_r[31]).noshow();
|
state_add(STATE_GENSP, "GENSP", m_r[31]).noshow();
|
||||||
state_add(STATE_GENFLAGS, "GENFLAGS", SR).callimport().callexport().formatstr("%6s").noshow();
|
state_add(STATE_GENFLAGS, "GENFLAGS", SR).callimport().callexport().formatstr("%6s").noshow();
|
||||||
state_add(R3000_PC, "PC", m_pc);
|
state_add(R3000_PC, "PC", m_pc);
|
||||||
state_add(R3000_SR, "SR", SR);
|
state_add(R3000_SR, "SR", SR);
|
||||||
state_add(R3000_R0, "R0", m_r[0]);
|
state_add(R3000_R0, "R0", m_r[0]);
|
||||||
state_add(R3000_R1, "R1", m_r[1]);
|
state_add(R3000_R1, "R1", m_r[1]);
|
||||||
state_add(R3000_R2, "R2", m_r[2]);
|
state_add(R3000_R2, "R2", m_r[2]);
|
||||||
state_add(R3000_R3, "R3", m_r[3]);
|
state_add(R3000_R3, "R3", m_r[3]);
|
||||||
state_add(R3000_R4, "R4", m_r[4]);
|
state_add(R3000_R4, "R4", m_r[4]);
|
||||||
state_add(R3000_R5, "R5", m_r[5]);
|
state_add(R3000_R5, "R5", m_r[5]);
|
||||||
state_add(R3000_R6, "R6", m_r[6]);
|
state_add(R3000_R6, "R6", m_r[6]);
|
||||||
state_add(R3000_R7, "R7", m_r[7]);
|
state_add(R3000_R7, "R7", m_r[7]);
|
||||||
state_add(R3000_R8, "R8", m_r[8]);
|
state_add(R3000_R8, "R8", m_r[8]);
|
||||||
state_add(R3000_R9, "R9", m_r[9]);
|
state_add(R3000_R9, "R9", m_r[9]);
|
||||||
state_add(R3000_R10, "R10", m_r[10]);
|
state_add(R3000_R10, "R10", m_r[10]);
|
||||||
state_add(R3000_R11, "R11", m_r[11]);
|
state_add(R3000_R11, "R11", m_r[11]);
|
||||||
state_add(R3000_R12, "R12", m_r[12]);
|
state_add(R3000_R12, "R12", m_r[12]);
|
||||||
state_add(R3000_R13, "R13", m_r[13]);
|
state_add(R3000_R13, "R13", m_r[13]);
|
||||||
state_add(R3000_R14, "R14", m_r[14]);
|
state_add(R3000_R14, "R14", m_r[14]);
|
||||||
state_add(R3000_R15, "R15", m_r[15]);
|
state_add(R3000_R15, "R15", m_r[15]);
|
||||||
state_add(R3000_R16, "R16", m_r[16]);
|
state_add(R3000_R16, "R16", m_r[16]);
|
||||||
state_add(R3000_R17, "R17", m_r[17]);
|
state_add(R3000_R17, "R17", m_r[17]);
|
||||||
state_add(R3000_R18, "R18", m_r[18]);
|
state_add(R3000_R18, "R18", m_r[18]);
|
||||||
state_add(R3000_R19, "R19", m_r[19]);
|
state_add(R3000_R19, "R19", m_r[19]);
|
||||||
state_add(R3000_R20, "R20", m_r[20]);
|
state_add(R3000_R20, "R20", m_r[20]);
|
||||||
state_add(R3000_R21, "R21", m_r[21]);
|
state_add(R3000_R21, "R21", m_r[21]);
|
||||||
state_add(R3000_R22, "R22", m_r[22]);
|
state_add(R3000_R22, "R22", m_r[22]);
|
||||||
state_add(R3000_R23, "R23", m_r[23]);
|
state_add(R3000_R23, "R23", m_r[23]);
|
||||||
state_add(R3000_R24, "R24", m_r[24]);
|
state_add(R3000_R24, "R24", m_r[24]);
|
||||||
state_add(R3000_R25, "R25", m_r[25]);
|
state_add(R3000_R25, "R25", m_r[25]);
|
||||||
state_add(R3000_R26, "R26", m_r[26]);
|
state_add(R3000_R26, "R26", m_r[26]);
|
||||||
state_add(R3000_R27, "R27", m_r[27]);
|
state_add(R3000_R27, "R27", m_r[27]);
|
||||||
state_add(R3000_R28, "R28", m_r[28]);
|
state_add(R3000_R28, "R28", m_r[28]);
|
||||||
state_add(R3000_R29, "R29", m_r[29]);
|
state_add(R3000_R29, "R29", m_r[29]);
|
||||||
state_add(R3000_R30, "R30", m_r[30]);
|
state_add(R3000_R30, "R30", m_r[30]);
|
||||||
state_add(R3000_R31, "R31", m_r[31]);
|
state_add(R3000_R31, "R31", m_r[31]);
|
||||||
|
|
||||||
// register our state for saving
|
// register our state for saving
|
||||||
save_item(NAME(m_pc));
|
save_item(NAME(m_pc));
|
||||||
@ -358,7 +358,7 @@ void r3000_device::device_start()
|
|||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// device_post_load -
|
// device_post_load -
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
void r3000_device::device_post_load()
|
void r3000_device::device_post_load()
|
||||||
{
|
{
|
||||||
@ -749,8 +749,8 @@ inline void r3000_device::handle_cop0()
|
|||||||
case 0x08: /* BC */
|
case 0x08: /* BC */
|
||||||
switch (RTREG)
|
switch (RTREG)
|
||||||
{
|
{
|
||||||
case 0x00: /* BCzF */ if (!m_in_brcond0()) ADDPC(SIMMVAL); break;
|
case 0x00: /* BCzF */ if (!m_in_brcond0()) ADDPC(SIMMVAL); break;
|
||||||
case 0x01: /* BCzT */ if (m_in_brcond0()) ADDPC(SIMMVAL); break;
|
case 0x01: /* BCzT */ if (m_in_brcond0()) ADDPC(SIMMVAL); break;
|
||||||
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
||||||
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
||||||
default: invalid_instruction(); break;
|
default: invalid_instruction(); break;
|
||||||
@ -828,8 +828,8 @@ inline void r3000_device::handle_cop1()
|
|||||||
case 0x08: /* BC */
|
case 0x08: /* BC */
|
||||||
switch (RTREG)
|
switch (RTREG)
|
||||||
{
|
{
|
||||||
case 0x00: /* BCzF */ if (!m_in_brcond1()) ADDPC(SIMMVAL); break;
|
case 0x00: /* BCzF */ if (!m_in_brcond1()) ADDPC(SIMMVAL); break;
|
||||||
case 0x01: /* BCzT */ if (m_in_brcond1()) ADDPC(SIMMVAL); break;
|
case 0x01: /* BCzT */ if (m_in_brcond1()) ADDPC(SIMMVAL); break;
|
||||||
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
||||||
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
||||||
default: invalid_instruction(); break;
|
default: invalid_instruction(); break;
|
||||||
@ -894,8 +894,8 @@ inline void r3000_device::handle_cop2()
|
|||||||
case 0x08: /* BC */
|
case 0x08: /* BC */
|
||||||
switch (RTREG)
|
switch (RTREG)
|
||||||
{
|
{
|
||||||
case 0x00: /* BCzF */ if (!m_in_brcond2()) ADDPC(SIMMVAL); break;
|
case 0x00: /* BCzF */ if (!m_in_brcond2()) ADDPC(SIMMVAL); break;
|
||||||
case 0x01: /* BCzT */ if (m_in_brcond2()) ADDPC(SIMMVAL); break;
|
case 0x01: /* BCzT */ if (m_in_brcond2()) ADDPC(SIMMVAL); break;
|
||||||
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
||||||
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
||||||
default: invalid_instruction(); break;
|
default: invalid_instruction(); break;
|
||||||
@ -960,8 +960,8 @@ inline void r3000_device::handle_cop3()
|
|||||||
case 0x08: /* BC */
|
case 0x08: /* BC */
|
||||||
switch (RTREG)
|
switch (RTREG)
|
||||||
{
|
{
|
||||||
case 0x00: /* BCzF */ if (!m_in_brcond3()) ADDPC(SIMMVAL); break;
|
case 0x00: /* BCzF */ if (!m_in_brcond3()) ADDPC(SIMMVAL); break;
|
||||||
case 0x01: /* BCzT */ if (m_in_brcond3()) ADDPC(SIMMVAL); break;
|
case 0x01: /* BCzT */ if (m_in_brcond3()) ADDPC(SIMMVAL); break;
|
||||||
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
case 0x02: /* BCzFL */ invalid_instruction(); break;
|
||||||
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
case 0x03: /* BCzTL */ invalid_instruction(); break;
|
||||||
default: invalid_instruction(); break;
|
default: invalid_instruction(); break;
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
INTERFACE CONFIGURATION MACROS
|
INTERFACE CONFIGURATION MACROS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#define MCFG_R3000_ENDIANNESS(_endianness) \
|
#define MCFG_R3000_ENDIANNESS(_endianness) \
|
||||||
r3000_device::static_set_endianness(*device, _endianness);
|
r3000_device::static_set_endianness(*device, _endianness);
|
||||||
|
|
||||||
@ -134,12 +134,12 @@ protected:
|
|||||||
// memory accessors
|
// memory accessors
|
||||||
struct r3000_data_accessors
|
struct r3000_data_accessors
|
||||||
{
|
{
|
||||||
UINT8 (r3000_device::*m_read_byte)(offs_t byteaddress);
|
UINT8 (r3000_device::*m_read_byte)(offs_t byteaddress);
|
||||||
UINT16 (r3000_device::*m_read_word)(offs_t byteaddress);
|
UINT16 (r3000_device::*m_read_word)(offs_t byteaddress);
|
||||||
UINT32 (r3000_device::*m_read_dword)(offs_t byteaddress);
|
UINT32 (r3000_device::*m_read_dword)(offs_t byteaddress);
|
||||||
void (r3000_device::*m_write_byte)(offs_t byteaddress, UINT8 data);
|
void (r3000_device::*m_write_byte)(offs_t byteaddress, UINT8 data);
|
||||||
void (r3000_device::*m_write_word)(offs_t byteaddress, UINT16 data);
|
void (r3000_device::*m_write_word)(offs_t byteaddress, UINT16 data);
|
||||||
void (r3000_device::*m_write_dword)(offs_t byteaddress, UINT32 data);
|
void (r3000_device::*m_write_dword)(offs_t byteaddress, UINT32 data);
|
||||||
};
|
};
|
||||||
|
|
||||||
UINT32 readop(offs_t pc);
|
UINT32 readop(offs_t pc);
|
||||||
@ -213,13 +213,13 @@ protected:
|
|||||||
direct_read_data *m_direct;
|
direct_read_data *m_direct;
|
||||||
|
|
||||||
// configuration
|
// configuration
|
||||||
chip_type m_chip_type;
|
chip_type m_chip_type;
|
||||||
bool m_hasfpu;
|
bool m_hasfpu;
|
||||||
endianness_t m_endianness;
|
endianness_t m_endianness;
|
||||||
|
|
||||||
// core registers
|
// core registers
|
||||||
UINT32 m_pc;
|
UINT32 m_pc;
|
||||||
UINT32 m_nextpc;
|
UINT32 m_nextpc;
|
||||||
UINT32 m_hi;
|
UINT32 m_hi;
|
||||||
UINT32 m_lo;
|
UINT32 m_lo;
|
||||||
UINT32 m_r[32];
|
UINT32 m_r[32];
|
||||||
@ -229,8 +229,8 @@ protected:
|
|||||||
UINT32 m_ccr[4][32];
|
UINT32 m_ccr[4][32];
|
||||||
|
|
||||||
// internal stuff
|
// internal stuff
|
||||||
UINT32 m_ppc;
|
UINT32 m_ppc;
|
||||||
UINT32 m_op;
|
UINT32 m_op;
|
||||||
int m_icount;
|
int m_icount;
|
||||||
int m_interrupt_cycles;
|
int m_interrupt_cycles;
|
||||||
|
|
||||||
@ -254,10 +254,10 @@ protected:
|
|||||||
size_t m_dcache_size;
|
size_t m_dcache_size;
|
||||||
|
|
||||||
// I/O
|
// I/O
|
||||||
devcb2_read_line m_in_brcond0;
|
devcb2_read_line m_in_brcond0;
|
||||||
devcb2_read_line m_in_brcond1;
|
devcb2_read_line m_in_brcond1;
|
||||||
devcb2_read_line m_in_brcond2;
|
devcb2_read_line m_in_brcond2;
|
||||||
devcb2_read_line m_in_brcond3;
|
devcb2_read_line m_in_brcond3;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -239,9 +239,9 @@ static UINT8 add_table(UINT32 cur_opcode)
|
|||||||
|
|
||||||
static UINT32 decode_opcode(UINT32 pc, const SCUDSP_OPCODE *op_table,UINT32 cur_opcode)
|
static UINT32 decode_opcode(UINT32 pc, const SCUDSP_OPCODE *op_table,UINT32 cur_opcode)
|
||||||
{
|
{
|
||||||
// INT8 rel8;
|
// INT8 rel8;
|
||||||
// UINT32 imm32;
|
// UINT32 imm32;
|
||||||
// UINT8 op2;
|
// UINT8 op2;
|
||||||
UINT32 flags = 0;
|
UINT32 flags = 0;
|
||||||
|
|
||||||
//if (!strcmp(op_table->mnemonic, "jsr") || !strcmp(op_table->mnemonic, "bsr"))
|
//if (!strcmp(op_table->mnemonic, "jsr") || !strcmp(op_table->mnemonic, "bsr"))
|
||||||
|
@ -1860,7 +1860,7 @@ INLINE void op0000(sh2_state *sh2, UINT16 opcode)
|
|||||||
case 0x06: MOVLS0(sh2, Rm, Rn); break;
|
case 0x06: MOVLS0(sh2, Rm, Rn); break;
|
||||||
case 0x07: MULL(sh2, Rm, Rn); break;
|
case 0x07: MULL(sh2, Rm, Rn); break;
|
||||||
case 0x08: CLRT(sh2); break;
|
case 0x08: CLRT(sh2); break;
|
||||||
case 0x09: NOP(); break;
|
case 0x09: NOP(); break;
|
||||||
case 0x0a: STSMACH(sh2, Rn); break;
|
case 0x0a: STSMACH(sh2, Rn); break;
|
||||||
case 0x0b: RTS(sh2); break;
|
case 0x0b: RTS(sh2); break;
|
||||||
case 0x0c: MOVBL0(sh2, Rm, Rn); break;
|
case 0x0c: MOVBL0(sh2, Rm, Rn); break;
|
||||||
|
@ -32,7 +32,7 @@ INLINE UINT32 RL(sh2_state *sh2, offs_t A)
|
|||||||
if (A >= 0xc0000000) /* Cache Data Array */
|
if (A >= 0xc0000000) /* Cache Data Array */
|
||||||
return sh2->program->read_dword(A);
|
return sh2->program->read_dword(A);
|
||||||
|
|
||||||
/* 0x60000000 Cache Address Data Array */
|
/* 0x60000000 Cache Address Data Array */
|
||||||
|
|
||||||
if (A >= 0x40000000) /* Cache Associative Purge Area */
|
if (A >= 0x40000000) /* Cache Associative Purge Area */
|
||||||
return 0xa5a5a5a5;
|
return 0xa5a5a5a5;
|
||||||
@ -56,7 +56,7 @@ INLINE void WL(sh2_state *sh2, offs_t A, UINT32 V)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 0x60000000 Cache Address Data Array */
|
/* 0x60000000 Cache Address Data Array */
|
||||||
|
|
||||||
if (A >= 0x40000000) /* Cache Associative Purge Area */
|
if (A >= 0x40000000) /* Cache Associative Purge Area */
|
||||||
return;
|
return;
|
||||||
@ -575,13 +575,13 @@ WRITE32_HANDLER( sh2_internal_w )
|
|||||||
// Standby and cache
|
// Standby and cache
|
||||||
case 0x24: // SBYCR, CCR
|
case 0x24: // SBYCR, CCR
|
||||||
/*
|
/*
|
||||||
CCR
|
CCR
|
||||||
xx-- ---- ---- ---- Way 0/1
|
xx-- ---- ---- ---- Way 0/1
|
||||||
---x ---- ---- ---- Cache Purge (CP)
|
---x ---- ---- ---- Cache Purge (CP)
|
||||||
---- x--- ---- ---- Two-Way Mode (TW)
|
---- x--- ---- ---- Two-Way Mode (TW)
|
||||||
---- -x-- ---- ---- Data Replacement Disable (OD)
|
---- -x-- ---- ---- Data Replacement Disable (OD)
|
||||||
---- --x- ---- ---- Instruction Replacement Disable (ID)
|
---- --x- ---- ---- Instruction Replacement Disable (ID)
|
||||||
---- ---x ---- ---- Cache Enable (CE)
|
---- ---x ---- ---- Cache Enable (CE)
|
||||||
*/
|
*/
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1807,7 +1807,7 @@ static int generate_group_0(sh2_state *sh2, drcuml_block *block, compiler_state
|
|||||||
{
|
{
|
||||||
switch (opcode & 0x3F)
|
switch (opcode & 0x3F)
|
||||||
{
|
{
|
||||||
case 0x00: // these are all illegal
|
case 0x00: // these are all illegal
|
||||||
case 0x01:
|
case 0x01:
|
||||||
case 0x10:
|
case 0x10:
|
||||||
case 0x11:
|
case 0x11:
|
||||||
|
@ -493,7 +493,7 @@ static UINT32 dasm_compute_dreg_dmpm(UINT32 pc, UINT64 opcode)
|
|||||||
compute(comp);
|
compute(comp);
|
||||||
print(", ");
|
print(", ");
|
||||||
}
|
}
|
||||||
if (dmd)
|
if (dmd)
|
||||||
{
|
{
|
||||||
print("DM(%s, %s) = R%d, ", GET_DAG1_I(dmi), GET_DAG1_M(dmm), dmdreg);
|
print("DM(%s, %s) = R%d, ", GET_DAG1_I(dmi), GET_DAG1_M(dmm), dmdreg);
|
||||||
}
|
}
|
||||||
|
@ -419,4 +419,3 @@ void sm8500_cpu_device::execute_set_input( int inptnum, int state )
|
|||||||
m_program->write_byte(0x12, m_IR0);
|
m_program->write_byte(0x12, m_IR0);
|
||||||
m_program->write_byte(0x13, m_IR1);
|
m_program->write_byte(0x13, m_IR1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,12 +4,10 @@
|
|||||||
#define __SM8500_H__
|
#define __SM8500_H__
|
||||||
|
|
||||||
#define MCFG_SM8500_DMA_CB(_devcb) \
|
#define MCFG_SM8500_DMA_CB(_devcb) \
|
||||||
sm8500_cpu_device::set_dma_cb(*device, DEVCB2_##_devcb); \
|
sm8500_cpu_device::set_dma_cb(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
#define MCFG_SM8500_TIMER_CB(_devcb) \
|
#define MCFG_SM8500_TIMER_CB(_devcb) \
|
||||||
sm8500_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb); \
|
sm8500_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -61,9 +61,9 @@
|
|||||||
|
|
||||||
debug_view_source::debug_view_source(const char *name, device_t *device)
|
debug_view_source::debug_view_source(const char *name, device_t *device)
|
||||||
: m_next(NULL),
|
: m_next(NULL),
|
||||||
m_name(name),
|
m_name(name),
|
||||||
m_device(device),
|
m_device(device),
|
||||||
m_is_octal(false)
|
m_is_octal(false)
|
||||||
{
|
{
|
||||||
device_execute_interface *intf;
|
device_execute_interface *intf;
|
||||||
if (device && device->interface(intf))
|
if (device && device->interface(intf))
|
||||||
@ -92,9 +92,9 @@ debug_view_source::~debug_view_source()
|
|||||||
|
|
||||||
debug_view_source_list::debug_view_source_list(running_machine &machine)
|
debug_view_source_list::debug_view_source_list(running_machine &machine)
|
||||||
: m_machine(machine),
|
: m_machine(machine),
|
||||||
m_head(NULL),
|
m_head(NULL),
|
||||||
m_tail(NULL),
|
m_tail(NULL),
|
||||||
m_count(0)
|
m_count(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,24 +206,24 @@ const debug_view_source *debug_view_source_list::match_device(device_t *device)
|
|||||||
|
|
||||||
debug_view::debug_view(running_machine &machine, debug_view_type type, debug_view_osd_update_func osdupdate, void *osdprivate)
|
debug_view::debug_view(running_machine &machine, debug_view_type type, debug_view_osd_update_func osdupdate, void *osdprivate)
|
||||||
: m_next(NULL),
|
: m_next(NULL),
|
||||||
m_type(type),
|
m_type(type),
|
||||||
m_source(NULL),
|
m_source(NULL),
|
||||||
m_source_list(machine),
|
m_source_list(machine),
|
||||||
m_osdupdate(osdupdate),
|
m_osdupdate(osdupdate),
|
||||||
m_osdprivate(osdprivate),
|
m_osdprivate(osdprivate),
|
||||||
m_visible(10,10),
|
m_visible(10,10),
|
||||||
m_total(10,10),
|
m_total(10,10),
|
||||||
m_topleft(0,0),
|
m_topleft(0,0),
|
||||||
m_cursor(0,0),
|
m_cursor(0,0),
|
||||||
m_supports_cursor(false),
|
m_supports_cursor(false),
|
||||||
m_cursor_visible(false),
|
m_cursor_visible(false),
|
||||||
m_recompute(true),
|
m_recompute(true),
|
||||||
m_update_level(0),
|
m_update_level(0),
|
||||||
m_update_pending(true),
|
m_update_pending(true),
|
||||||
m_osd_update_pending(true),
|
m_osd_update_pending(true),
|
||||||
m_viewdata(NULL),
|
m_viewdata(NULL),
|
||||||
m_viewdata_size(0),
|
m_viewdata_size(0),
|
||||||
m_machine(machine)
|
m_machine(machine)
|
||||||
{
|
{
|
||||||
// allocate memory for the buffer
|
// allocate memory for the buffer
|
||||||
m_viewdata_size = m_visible.y * m_visible.x;
|
m_viewdata_size = m_visible.y * m_visible.x;
|
||||||
@ -451,7 +451,7 @@ void debug_view::view_click(const int button, const debug_view_xy& pos)
|
|||||||
|
|
||||||
debug_view_manager::debug_view_manager(running_machine &machine)
|
debug_view_manager::debug_view_manager(running_machine &machine)
|
||||||
: m_machine(machine),
|
: m_machine(machine),
|
||||||
m_viewlist(NULL)
|
m_viewlist(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,10 +573,10 @@ debug_view *debug_view_manager::append(debug_view *view)
|
|||||||
|
|
||||||
debug_view_expression::debug_view_expression(running_machine &machine)
|
debug_view_expression::debug_view_expression(running_machine &machine)
|
||||||
: m_machine(machine),
|
: m_machine(machine),
|
||||||
m_dirty(true),
|
m_dirty(true),
|
||||||
m_result(0),
|
m_result(0),
|
||||||
m_parsed(debug_cpu_get_global_symtable(machine)),
|
m_parsed(debug_cpu_get_global_symtable(machine)),
|
||||||
m_string("0")
|
m_string("0")
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,35 +72,35 @@ enum debug_view_notification
|
|||||||
|
|
||||||
|
|
||||||
// attribute bits for debug_view_char.attrib
|
// attribute bits for debug_view_char.attrib
|
||||||
const UINT8 DCA_NORMAL = 0x00; // in Windows: black on white
|
const UINT8 DCA_NORMAL = 0x00; // in Windows: black on white
|
||||||
const UINT8 DCA_CHANGED = 0x01; // in Windows: red foreground
|
const UINT8 DCA_CHANGED = 0x01; // in Windows: red foreground
|
||||||
const UINT8 DCA_SELECTED = 0x02; // in Windows: light red background
|
const UINT8 DCA_SELECTED = 0x02; // in Windows: light red background
|
||||||
const UINT8 DCA_INVALID = 0x04; // in Windows: dark blue foreground
|
const UINT8 DCA_INVALID = 0x04; // in Windows: dark blue foreground
|
||||||
const UINT8 DCA_DISABLED = 0x08; // in Windows: darker foreground
|
const UINT8 DCA_DISABLED = 0x08; // in Windows: darker foreground
|
||||||
const UINT8 DCA_ANCILLARY = 0x10; // in Windows: grey background
|
const UINT8 DCA_ANCILLARY = 0x10; // in Windows: grey background
|
||||||
const UINT8 DCA_CURRENT = 0x20; // in Windows: yellow background
|
const UINT8 DCA_CURRENT = 0x20; // in Windows: yellow background
|
||||||
const UINT8 DCA_COMMENT = 0x40; // in Windows: green foreground
|
const UINT8 DCA_COMMENT = 0x40; // in Windows: green foreground
|
||||||
|
|
||||||
|
|
||||||
// special characters that can be passed to process_char()
|
// special characters that can be passed to process_char()
|
||||||
const int DCH_UP = 1; // up arrow
|
const int DCH_UP = 1; // up arrow
|
||||||
const int DCH_DOWN = 2; // down arrow
|
const int DCH_DOWN = 2; // down arrow
|
||||||
const int DCH_LEFT = 3; // left arrow
|
const int DCH_LEFT = 3; // left arrow
|
||||||
const int DCH_RIGHT = 4; // right arrow
|
const int DCH_RIGHT = 4; // right arrow
|
||||||
const int DCH_PUP = 5; // page up
|
const int DCH_PUP = 5; // page up
|
||||||
const int DCH_PDOWN = 6; // page down
|
const int DCH_PDOWN = 6; // page down
|
||||||
const int DCH_HOME = 7; // home
|
const int DCH_HOME = 7; // home
|
||||||
const int DCH_CTRLHOME = 8; // ctrl+home
|
const int DCH_CTRLHOME = 8; // ctrl+home
|
||||||
const int DCH_END = 9; // end
|
const int DCH_END = 9; // end
|
||||||
const int DCH_CTRLEND = 10; // ctrl+end
|
const int DCH_CTRLEND = 10; // ctrl+end
|
||||||
const int DCH_CTRLRIGHT = 11; // ctrl+right
|
const int DCH_CTRLRIGHT = 11; // ctrl+right
|
||||||
const int DCH_CTRLLEFT = 12; // ctrl+left
|
const int DCH_CTRLLEFT = 12; // ctrl+left
|
||||||
|
|
||||||
|
|
||||||
// special characters that can be passed to process_click()
|
// special characters that can be passed to process_click()
|
||||||
const int DCK_LEFT_CLICK = 1; // left instantaneous click
|
const int DCK_LEFT_CLICK = 1; // left instantaneous click
|
||||||
const int DCK_RIGHT_CLICK = 2; // right instantaneous click
|
const int DCK_RIGHT_CLICK = 2; // right instantaneous click
|
||||||
const int DCK_MIDDLE_CLICK = 3; // middle instantaneous click
|
const int DCK_MIDDLE_CLICK = 3; // middle instantaneous click
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -118,8 +118,8 @@ typedef void (*debug_view_osd_update_func)(debug_view &view, void *osdprivate);
|
|||||||
// a single "character" in the debug view has an ASCII value and an attribute byte
|
// a single "character" in the debug view has an ASCII value and an attribute byte
|
||||||
struct debug_view_char
|
struct debug_view_char
|
||||||
{
|
{
|
||||||
UINT8 byte;
|
UINT8 byte;
|
||||||
UINT8 attrib;
|
UINT8 attrib;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -129,8 +129,8 @@ class debug_view_xy
|
|||||||
public:
|
public:
|
||||||
debug_view_xy(int _x = 0, int _y = 0) : x(_x), y(_y) { }
|
debug_view_xy(int _x = 0, int _y = 0) : x(_x), y(_y) { }
|
||||||
|
|
||||||
INT32 x;
|
INT32 x;
|
||||||
INT32 y;
|
INT32 y;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -154,10 +154,10 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
debug_view_source * m_next; // link to next item
|
debug_view_source * m_next; // link to next item
|
||||||
astring m_name; // name of the source item
|
astring m_name; // name of the source item
|
||||||
device_t * m_device; // associated device (if applicable)
|
device_t * m_device; // associated device (if applicable)
|
||||||
bool m_is_octal; // is view in octal or hex
|
bool m_is_octal; // is view in octal or hex
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -186,10 +186,10 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
running_machine & m_machine; // reference to our machine
|
running_machine & m_machine; // reference to our machine
|
||||||
debug_view_source * m_head; // head of the list
|
debug_view_source * m_head; // head of the list
|
||||||
debug_view_source * m_tail; // end of the tail
|
debug_view_source * m_tail; // end of the tail
|
||||||
UINT32 m_count; // number of items in the list
|
UINT32 m_count; // number of items in the list
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -248,33 +248,33 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
// core view data
|
// core view data
|
||||||
debug_view * m_next; // link to the next view
|
debug_view * m_next; // link to the next view
|
||||||
debug_view_type m_type; // type of view
|
debug_view_type m_type; // type of view
|
||||||
const debug_view_source *m_source; // currently selected data source
|
const debug_view_source *m_source; // currently selected data source
|
||||||
debug_view_source_list m_source_list; // list of available data sources
|
debug_view_source_list m_source_list; // list of available data sources
|
||||||
|
|
||||||
// OSD data
|
// OSD data
|
||||||
debug_view_osd_update_func m_osdupdate; // callback for the update
|
debug_view_osd_update_func m_osdupdate; // callback for the update
|
||||||
void * m_osdprivate; // OSD-managed private data
|
void * m_osdprivate; // OSD-managed private data
|
||||||
|
|
||||||
// visibility info
|
// visibility info
|
||||||
debug_view_xy m_visible; // visible size (in rows and columns)
|
debug_view_xy m_visible; // visible size (in rows and columns)
|
||||||
debug_view_xy m_total; // total size (in rows and columns)
|
debug_view_xy m_total; // total size (in rows and columns)
|
||||||
debug_view_xy m_topleft; // top-left visible position (in rows and columns)
|
debug_view_xy m_topleft; // top-left visible position (in rows and columns)
|
||||||
debug_view_xy m_cursor; // cursor position
|
debug_view_xy m_cursor; // cursor position
|
||||||
bool m_supports_cursor; // does this view support a cursor?
|
bool m_supports_cursor; // does this view support a cursor?
|
||||||
bool m_cursor_visible; // is the cursor visible?
|
bool m_cursor_visible; // is the cursor visible?
|
||||||
|
|
||||||
// update info
|
// update info
|
||||||
bool m_recompute; // does this view require a recomputation?
|
bool m_recompute; // does this view require a recomputation?
|
||||||
UINT8 m_update_level; // update level; updates when this hits 0
|
UINT8 m_update_level; // update level; updates when this hits 0
|
||||||
bool m_update_pending; // true if there is a pending update
|
bool m_update_pending; // true if there is a pending update
|
||||||
bool m_osd_update_pending; // true if there is a pending update
|
bool m_osd_update_pending; // true if there is a pending update
|
||||||
debug_view_char * m_viewdata; // current array of view data
|
debug_view_char * m_viewdata; // current array of view data
|
||||||
int m_viewdata_size; // number of elements of the viewdata array
|
int m_viewdata_size; // number of elements of the viewdata array
|
||||||
|
|
||||||
private:
|
private:
|
||||||
running_machine & m_machine; // machine associated with this view
|
running_machine & m_machine; // machine associated with this view
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -302,8 +302,8 @@ private:
|
|||||||
debug_view *append(debug_view *view);
|
debug_view *append(debug_view *view);
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
running_machine & m_machine; // reference to our machine
|
running_machine & m_machine; // reference to our machine
|
||||||
debug_view * m_viewlist; // list of views
|
debug_view * m_viewlist; // list of views
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -333,11 +333,11 @@ private:
|
|||||||
bool recompute();
|
bool recompute();
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
running_machine & m_machine; // reference to the machine
|
running_machine & m_machine; // reference to the machine
|
||||||
bool m_dirty; // true if the expression needs to be re-evaluated
|
bool m_dirty; // true if the expression needs to be re-evaluated
|
||||||
UINT64 m_result; // last result from the expression
|
UINT64 m_result; // last result from the expression
|
||||||
parsed_expression m_parsed; // parsed expression data
|
parsed_expression m_parsed; // parsed expression data
|
||||||
astring m_string; // copy of the expression string
|
astring m_string; // copy of the expression string
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,9 +54,9 @@
|
|||||||
|
|
||||||
debug_view_disasm_source::debug_view_disasm_source(const char *name, device_t &device)
|
debug_view_disasm_source::debug_view_disasm_source(const char *name, device_t &device)
|
||||||
: debug_view_source(name, &device),
|
: debug_view_source(name, &device),
|
||||||
m_device(device),
|
m_device(device),
|
||||||
m_disasmintf(dynamic_cast<device_disasm_interface *>(&device)),
|
m_disasmintf(dynamic_cast<device_disasm_interface *>(&device)),
|
||||||
m_space(device.memory().space(AS_PROGRAM))
|
m_space(device.memory().space(AS_PROGRAM))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,20 +72,20 @@ debug_view_disasm_source::debug_view_disasm_source(const char *name, device_t &d
|
|||||||
|
|
||||||
debug_view_disasm::debug_view_disasm(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate)
|
debug_view_disasm::debug_view_disasm(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate)
|
||||||
: debug_view(machine, DVT_DISASSEMBLY, osdupdate, osdprivate),
|
: debug_view(machine, DVT_DISASSEMBLY, osdupdate, osdprivate),
|
||||||
m_right_column(DASM_RIGHTCOL_RAW),
|
m_right_column(DASM_RIGHTCOL_RAW),
|
||||||
m_backwards_steps(3),
|
m_backwards_steps(3),
|
||||||
m_dasm_width(DEFAULT_DASM_WIDTH),
|
m_dasm_width(DEFAULT_DASM_WIDTH),
|
||||||
m_last_direct_raw(NULL),
|
m_last_direct_raw(NULL),
|
||||||
m_last_direct_decrypted(NULL),
|
m_last_direct_decrypted(NULL),
|
||||||
m_last_change_count(0),
|
m_last_change_count(0),
|
||||||
m_last_pcbyte(0),
|
m_last_pcbyte(0),
|
||||||
m_divider1(0),
|
m_divider1(0),
|
||||||
m_divider2(0),
|
m_divider2(0),
|
||||||
m_divider3(0),
|
m_divider3(0),
|
||||||
m_expression(machine),
|
m_expression(machine),
|
||||||
m_allocated(0,0),
|
m_allocated(0,0),
|
||||||
m_byteaddress(NULL),
|
m_byteaddress(NULL),
|
||||||
m_dasm(NULL)
|
m_dasm(NULL)
|
||||||
{
|
{
|
||||||
// fail if no available sources
|
// fail if no available sources
|
||||||
enumerate_sources();
|
enumerate_sources();
|
||||||
@ -199,7 +199,7 @@ void debug_view_disasm::view_char(int chval)
|
|||||||
m_cursor.y = temp;
|
m_cursor.y = temp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DCH_HOME: // set the active column to the PC
|
case DCH_HOME: // set the active column to the PC
|
||||||
{
|
{
|
||||||
const debug_view_disasm_source &source = downcast<const debug_view_disasm_source &>(*m_source);
|
const debug_view_disasm_source &source = downcast<const debug_view_disasm_source &>(*m_source);
|
||||||
offs_t pc = source.m_space.address_to_byte(source.m_device.safe_pc()) & source.m_space.logbytemask();
|
offs_t pc = source.m_space.address_to_byte(source.m_device.safe_pc()) & source.m_space.logbytemask();
|
||||||
@ -393,7 +393,7 @@ bool debug_view_disasm::recompute(offs_t pc, int startline, int lines)
|
|||||||
m_total.x = m_divider2 + 1 + char_num * maxbytes_clamped + (maxbytes_clamped / minbytes - 1) + 1;
|
m_total.x = m_divider2 + 1 + char_num * maxbytes_clamped + (maxbytes_clamped / minbytes - 1) + 1;
|
||||||
}
|
}
|
||||||
else if (m_right_column == DASM_RIGHTCOL_COMMENTS)
|
else if (m_right_column == DASM_RIGHTCOL_COMMENTS)
|
||||||
m_total.x = m_divider2 + 1 + 50; // DEBUG_COMMENT_MAX_LINE_LENGTH
|
m_total.x = m_divider2 + 1 + 50; // DEBUG_COMMENT_MAX_LINE_LENGTH
|
||||||
else
|
else
|
||||||
m_total.x = m_divider2 + 1;
|
m_total.x = m_divider2 + 1;
|
||||||
|
|
||||||
|
@ -77,9 +77,9 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// internal state
|
// internal state
|
||||||
device_t & m_device; // underlying device
|
device_t & m_device; // underlying device
|
||||||
device_disasm_interface *m_disasmintf; // disassembly interface
|
device_disasm_interface *m_disasmintf; // disassembly interface
|
||||||
address_space & m_space; // address space to display
|
address_space & m_space; // address space to display
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -123,19 +123,19 @@ private:
|
|||||||
bool recompute(offs_t pc, int startline, int lines);
|
bool recompute(offs_t pc, int startline, int lines);
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
disasm_right_column m_right_column; // right column contents
|
disasm_right_column m_right_column; // right column contents
|
||||||
UINT32 m_backwards_steps; // number of backwards steps
|
UINT32 m_backwards_steps; // number of backwards steps
|
||||||
UINT32 m_dasm_width; // width of the disassembly area
|
UINT32 m_dasm_width; // width of the disassembly area
|
||||||
UINT8 * m_last_direct_raw; // last direct raw value
|
UINT8 * m_last_direct_raw; // last direct raw value
|
||||||
UINT8 * m_last_direct_decrypted;// last direct decrypted value
|
UINT8 * m_last_direct_decrypted;// last direct decrypted value
|
||||||
UINT32 m_last_change_count; // last comment change count
|
UINT32 m_last_change_count; // last comment change count
|
||||||
offs_t m_last_pcbyte; // last PC byte value
|
offs_t m_last_pcbyte; // last PC byte value
|
||||||
int m_divider1, m_divider2; // left and right divider columns
|
int m_divider1, m_divider2; // left and right divider columns
|
||||||
int m_divider3; // comment divider column
|
int m_divider3; // comment divider column
|
||||||
debug_view_expression m_expression; // expression-related information
|
debug_view_expression m_expression; // expression-related information
|
||||||
debug_view_xy m_allocated; // allocated rows/columns
|
debug_view_xy m_allocated; // allocated rows/columns
|
||||||
offs_t * m_byteaddress; // addresses of the instructions
|
offs_t * m_byteaddress; // addresses of the instructions
|
||||||
char * m_dasm; // disassembled instructions
|
char * m_dasm; // disassembled instructions
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
static const int DEFAULT_DASM_LINES = 1000;
|
static const int DEFAULT_DASM_LINES = 1000;
|
||||||
|
@ -74,37 +74,37 @@ const debug_view_memory::memory_view_pos debug_view_memory::s_memory_pos_table[9
|
|||||||
|
|
||||||
debug_view_memory_source::debug_view_memory_source(const char *name, address_space &space)
|
debug_view_memory_source::debug_view_memory_source(const char *name, address_space &space)
|
||||||
: debug_view_source(name, &space.device()),
|
: debug_view_source(name, &space.device()),
|
||||||
m_space(&space),
|
m_space(&space),
|
||||||
m_memintf(dynamic_cast<device_memory_interface *>(&space.device())),
|
m_memintf(dynamic_cast<device_memory_interface *>(&space.device())),
|
||||||
m_base(NULL),
|
m_base(NULL),
|
||||||
m_length(0),
|
m_length(0),
|
||||||
m_offsetxor(0),
|
m_offsetxor(0),
|
||||||
m_endianness(space.endianness()),
|
m_endianness(space.endianness()),
|
||||||
m_prefsize(space.data_width() / 8)
|
m_prefsize(space.data_width() / 8)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_view_memory_source::debug_view_memory_source(const char *name, memory_region ®ion)
|
debug_view_memory_source::debug_view_memory_source(const char *name, memory_region ®ion)
|
||||||
: debug_view_source(name),
|
: debug_view_source(name),
|
||||||
m_space(NULL),
|
m_space(NULL),
|
||||||
m_memintf(NULL),
|
m_memintf(NULL),
|
||||||
m_base(region),
|
m_base(region),
|
||||||
m_length(region.bytes()),
|
m_length(region.bytes()),
|
||||||
m_offsetxor(NATIVE_ENDIAN_VALUE_LE_BE(region.width() - 1, 0)),
|
m_offsetxor(NATIVE_ENDIAN_VALUE_LE_BE(region.width() - 1, 0)),
|
||||||
m_endianness(region.endianness()),
|
m_endianness(region.endianness()),
|
||||||
m_prefsize(MIN(region.width(), 8))
|
m_prefsize(MIN(region.width(), 8))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_view_memory_source::debug_view_memory_source(const char *name, void *base, int element_size, int num_elements)
|
debug_view_memory_source::debug_view_memory_source(const char *name, void *base, int element_size, int num_elements)
|
||||||
: debug_view_source(name),
|
: debug_view_source(name),
|
||||||
m_space(NULL),
|
m_space(NULL),
|
||||||
m_memintf(NULL),
|
m_memintf(NULL),
|
||||||
m_base(base),
|
m_base(base),
|
||||||
m_length(element_size * num_elements),
|
m_length(element_size * num_elements),
|
||||||
m_offsetxor(0),
|
m_offsetxor(0),
|
||||||
m_endianness(ENDIANNESS_NATIVE),
|
m_endianness(ENDIANNESS_NATIVE),
|
||||||
m_prefsize(MIN(element_size, 8))
|
m_prefsize(MIN(element_size, 8))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,15 +120,15 @@ debug_view_memory_source::debug_view_memory_source(const char *name, void *base,
|
|||||||
|
|
||||||
debug_view_memory::debug_view_memory(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate)
|
debug_view_memory::debug_view_memory(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate)
|
||||||
: debug_view(machine, DVT_MEMORY, osdupdate, osdprivate),
|
: debug_view(machine, DVT_MEMORY, osdupdate, osdprivate),
|
||||||
m_expression(machine),
|
m_expression(machine),
|
||||||
m_chunks_per_row(16),
|
m_chunks_per_row(16),
|
||||||
m_bytes_per_chunk(1),
|
m_bytes_per_chunk(1),
|
||||||
m_reverse_view(false),
|
m_reverse_view(false),
|
||||||
m_ascii_view(true),
|
m_ascii_view(true),
|
||||||
m_no_translation(false),
|
m_no_translation(false),
|
||||||
m_maxaddr(0),
|
m_maxaddr(0),
|
||||||
m_bytes_per_row(16),
|
m_bytes_per_row(16),
|
||||||
m_byte_offset(0)
|
m_byte_offset(0)
|
||||||
{
|
{
|
||||||
// fail if no available sources
|
// fail if no available sources
|
||||||
enumerate_sources();
|
enumerate_sources();
|
||||||
@ -181,10 +181,10 @@ void debug_view_memory::enumerate_sources()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// add pretty much anything that's not a timer (we may wish to cull other items later)
|
// add pretty much anything that's not a timer (we may wish to cull other items later)
|
||||||
// also, don't trim the front of the name, it's important to know which VIA6522 we're looking at, e.g.
|
// also, don't trim the front of the name, it's important to know which VIA6522 we're looking at, e.g.
|
||||||
if (strncmp(itemname, "timer/", 6))
|
if (strncmp(itemname, "timer/", 6))
|
||||||
{
|
{
|
||||||
name.cpy(itemname);
|
name.cpy(itemname);
|
||||||
m_source_list.append(*auto_alloc(machine(), debug_view_memory_source(name, base, valsize, valcount)));
|
m_source_list.append(*auto_alloc(machine(), debug_view_memory_source(name, base, valsize, valcount)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -653,10 +653,10 @@ bool debug_view_memory::read(UINT8 size, offs_t offs, UINT64 &data)
|
|||||||
{
|
{
|
||||||
switch (size)
|
switch (size)
|
||||||
{
|
{
|
||||||
case 1: data = debug_read_byte(*source.m_space, offs, !m_no_translation); break;
|
case 1: data = debug_read_byte(*source.m_space, offs, !m_no_translation); break;
|
||||||
case 2: data = debug_read_word(*source.m_space, offs, !m_no_translation); break;
|
case 2: data = debug_read_word(*source.m_space, offs, !m_no_translation); break;
|
||||||
case 4: data = debug_read_dword(*source.m_space, offs, !m_no_translation); break;
|
case 4: data = debug_read_dword(*source.m_space, offs, !m_no_translation); break;
|
||||||
case 8: data = debug_read_qword(*source.m_space, offs, !m_no_translation); break;
|
case 8: data = debug_read_qword(*source.m_space, offs, !m_no_translation); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ismapped;
|
return ismapped;
|
||||||
@ -700,10 +700,10 @@ void debug_view_memory::write(UINT8 size, offs_t offs, UINT64 data)
|
|||||||
{
|
{
|
||||||
switch (size)
|
switch (size)
|
||||||
{
|
{
|
||||||
case 1: debug_write_byte(*source.m_space, offs, data, !m_no_translation); break;
|
case 1: debug_write_byte(*source.m_space, offs, data, !m_no_translation); break;
|
||||||
case 2: debug_write_word(*source.m_space, offs, data, !m_no_translation); break;
|
case 2: debug_write_word(*source.m_space, offs, data, !m_no_translation); break;
|
||||||
case 4: debug_write_dword(*source.m_space, offs, data, !m_no_translation); break;
|
case 4: debug_write_dword(*source.m_space, offs, data, !m_no_translation); break;
|
||||||
case 8: debug_write_qword(*source.m_space, offs, data, !m_no_translation); break;
|
case 8: debug_write_qword(*source.m_space, offs, data, !m_no_translation); break;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -60,13 +60,13 @@ public:
|
|||||||
address_space *space() const { return m_space; }
|
address_space *space() const { return m_space; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
address_space *m_space; // address space we reference (if any)
|
address_space *m_space; // address space we reference (if any)
|
||||||
device_memory_interface *m_memintf; // pointer to the memory interface of the device
|
device_memory_interface *m_memintf; // pointer to the memory interface of the device
|
||||||
void * m_base; // pointer to memory base
|
void * m_base; // pointer to memory base
|
||||||
offs_t m_length; // length of memory
|
offs_t m_length; // length of memory
|
||||||
offs_t m_offsetxor; // XOR to apply to offsets
|
offs_t m_offsetxor; // XOR to apply to offsets
|
||||||
endianness_t m_endianness; // endianness of memory
|
endianness_t m_endianness; // endianness of memory
|
||||||
UINT8 m_prefsize; // preferred bytes per chunk
|
UINT8 m_prefsize; // preferred bytes per chunk
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -127,31 +127,31 @@ private:
|
|||||||
void write(UINT8 size, offs_t offs, UINT64 data);
|
void write(UINT8 size, offs_t offs, UINT64 data);
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
debug_view_expression m_expression; // expression describing the start address
|
debug_view_expression m_expression; // expression describing the start address
|
||||||
UINT32 m_chunks_per_row; // number of chunks displayed per line
|
UINT32 m_chunks_per_row; // number of chunks displayed per line
|
||||||
UINT8 m_bytes_per_chunk; // bytes per chunk
|
UINT8 m_bytes_per_chunk; // bytes per chunk
|
||||||
bool m_reverse_view; // reverse-endian view?
|
bool m_reverse_view; // reverse-endian view?
|
||||||
bool m_ascii_view; // display ASCII characters?
|
bool m_ascii_view; // display ASCII characters?
|
||||||
bool m_no_translation; // don't run addresses through the cpu translation hook
|
bool m_no_translation; // don't run addresses through the cpu translation hook
|
||||||
offs_t m_maxaddr; // (derived) maximum address to display
|
offs_t m_maxaddr; // (derived) maximum address to display
|
||||||
UINT32 m_bytes_per_row; // (derived) number of bytes displayed per line
|
UINT32 m_bytes_per_row; // (derived) number of bytes displayed per line
|
||||||
UINT32 m_byte_offset; // (derived) offset of starting visible byte
|
UINT32 m_byte_offset; // (derived) offset of starting visible byte
|
||||||
astring m_addrformat; // (derived) format string to use to print addresses
|
astring m_addrformat; // (derived) format string to use to print addresses
|
||||||
|
|
||||||
struct section
|
struct section
|
||||||
{
|
{
|
||||||
bool contains(int x) const { return x >= m_pos && x < m_pos + m_width; }
|
bool contains(int x) const { return x >= m_pos && x < m_pos + m_width; }
|
||||||
INT32 m_pos; /* starting position */
|
INT32 m_pos; /* starting position */
|
||||||
INT32 m_width; /* width of this section */
|
INT32 m_width; /* width of this section */
|
||||||
};
|
};
|
||||||
section m_section[3]; // (derived) 3 sections to manage
|
section m_section[3]; // (derived) 3 sections to manage
|
||||||
|
|
||||||
struct memory_view_pos
|
struct memory_view_pos
|
||||||
{
|
{
|
||||||
UINT8 m_spacing; /* spacing between each entry */
|
UINT8 m_spacing; /* spacing between each entry */
|
||||||
UINT8 m_shift[24]; /* shift for each character */
|
UINT8 m_shift[24]; /* shift for each character */
|
||||||
};
|
};
|
||||||
static const memory_view_pos s_memory_pos_table[9]; // table for rendering at different chunk sizes
|
static const memory_view_pos s_memory_pos_table[9]; // table for rendering at different chunk sizes
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
static const int MEM_MAX_LINE_WIDTH = 1024;
|
static const int MEM_MAX_LINE_WIDTH = 1024;
|
||||||
|
@ -67,8 +67,8 @@ const image_device_type_info device_image_interface::m_device_info_array[] =
|
|||||||
{ IO_CDROM, "cdrom", "cdrm" }, /* 13 */
|
{ IO_CDROM, "cdrom", "cdrm" }, /* 13 */
|
||||||
{ IO_MAGTAPE, "magtape", "magt" }, /* 14 */
|
{ IO_MAGTAPE, "magtape", "magt" }, /* 14 */
|
||||||
{ IO_ROM, "romimage", "rom" }, /* 15 */
|
{ IO_ROM, "romimage", "rom" }, /* 15 */
|
||||||
{ IO_MIDIIN, "midiin", "min" }, /* 16 */
|
{ IO_MIDIIN, "midiin", "min" }, /* 16 */
|
||||||
{ IO_MIDIOUT, "midiout", "mout" } /* 17 */
|
{ IO_MIDIOUT, "midiout", "mout" } /* 17 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,8 +70,8 @@ enum iodevice_t
|
|||||||
IO_CDROM, /* 14 - optical CD-ROM disc */
|
IO_CDROM, /* 14 - optical CD-ROM disc */
|
||||||
IO_MAGTAPE, /* 15 - Magentic tape */
|
IO_MAGTAPE, /* 15 - Magentic tape */
|
||||||
IO_ROM, /* 16 - Individual ROM image - the Amstrad CPC has a few applications that were sold on 16kB ROMs */
|
IO_ROM, /* 16 - Individual ROM image - the Amstrad CPC has a few applications that were sold on 16kB ROMs */
|
||||||
IO_MIDIIN, /* 17 - MIDI In port */
|
IO_MIDIIN, /* 17 - MIDI In port */
|
||||||
IO_MIDIOUT, /* 18 - MIDI Out port */
|
IO_MIDIOUT, /* 18 - MIDI Out port */
|
||||||
IO_COUNT /* 19 - Total Number of IO_devices for searching */
|
IO_COUNT /* 19 - Total Number of IO_devices for searching */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ const device_type MIDIIN = &device_creator<midiin_device>;
|
|||||||
|
|
||||||
midiin_device::midiin_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
midiin_device::midiin_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, MIDIIN, "MIDI In image device", tag, owner, clock),
|
: device_t(mconfig, MIDIIN, "MIDI In image device", tag, owner, clock),
|
||||||
device_image_interface(mconfig, *this),
|
device_image_interface(mconfig, *this),
|
||||||
device_serial_interface(mconfig, *this)
|
device_serial_interface(mconfig, *this)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ void midiin_device::device_timer(emu_timer &timer, device_timer_id id, int param
|
|||||||
int bytesRead;
|
int bytesRead;
|
||||||
|
|
||||||
if (m_midi == NULL) {
|
if (m_midi == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (osd_poll_midi_channel(m_midi))
|
while (osd_poll_midi_channel(m_midi))
|
||||||
@ -122,8 +122,8 @@ void midiin_device::call_unload(void)
|
|||||||
{
|
{
|
||||||
osd_close_midi_channel(m_midi);
|
osd_close_midi_channel(m_midi);
|
||||||
}
|
}
|
||||||
m_timer->enable(false);
|
m_timer->enable(false);
|
||||||
m_midi = NULL;
|
m_midi = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void midiin_device::tra_complete()
|
void midiin_device::tra_complete()
|
||||||
@ -131,7 +131,7 @@ void midiin_device::tra_complete()
|
|||||||
// is there more waiting to send?
|
// is there more waiting to send?
|
||||||
if (m_xmit_read != m_xmit_write)
|
if (m_xmit_read != m_xmit_write)
|
||||||
{
|
{
|
||||||
// printf("tx1 %02x\n", m_xmitring[m_xmit_read]);
|
// printf("tx1 %02x\n", m_xmitring[m_xmit_read]);
|
||||||
transmit_register_setup(m_xmitring[m_xmit_read++]);
|
transmit_register_setup(m_xmitring[m_xmit_read++]);
|
||||||
if (m_xmit_read >= XMIT_RING_SIZE)
|
if (m_xmit_read >= XMIT_RING_SIZE)
|
||||||
{
|
{
|
||||||
@ -158,7 +158,7 @@ void midiin_device::xmit_char(UINT8 data)
|
|||||||
if (!m_tx_busy)
|
if (!m_tx_busy)
|
||||||
{
|
{
|
||||||
m_tx_busy = true;
|
m_tx_busy = true;
|
||||||
// printf("tx0 %02x\n", data);
|
// printf("tx0 %02x\n", data);
|
||||||
transmit_register_setup(data);
|
transmit_register_setup(data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -175,4 +175,3 @@ void midiin_device::xmit_char(UINT8 data)
|
|||||||
void midiin_device::input_callback(UINT8 state)
|
void midiin_device::input_callback(UINT8 state)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ void midiout_device::device_reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
device_config_complete
|
device_config_complete
|
||||||
-------------------------------------------------*/
|
-------------------------------------------------*/
|
||||||
|
|
||||||
void midiout_device::device_config_complete(void)
|
void midiout_device::device_config_complete(void)
|
||||||
@ -94,4 +94,3 @@ void midiout_device::rcv_complete() // Rx completed receiving byte
|
|||||||
void midiout_device::input_callback(UINT8 state)
|
void midiout_device::input_callback(UINT8 state)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,12 +9,12 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
- receiver disable
|
- receiver disable
|
||||||
- IRQ on DCD/DSR change
|
- IRQ on DCD/DSR change
|
||||||
- parity
|
- parity
|
||||||
- framing error
|
- framing error
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ void mos6551_device::tra_complete()
|
|||||||
{
|
{
|
||||||
transmit_register_setup(m_tdr);
|
transmit_register_setup(m_tdr);
|
||||||
m_st |= ST_TDRE;
|
m_st |= ST_TDRE;
|
||||||
|
|
||||||
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
|
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
|
||||||
{
|
{
|
||||||
m_st |= ST_IRQ;
|
m_st |= ST_IRQ;
|
||||||
@ -120,7 +120,7 @@ void mos6551_device::rcv_complete()
|
|||||||
{
|
{
|
||||||
m_st |= ST_OR;
|
m_st |= ST_OR;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_st &= ~(ST_FE | ST_PE);
|
m_st &= ~(ST_FE | ST_PE);
|
||||||
|
|
||||||
m_st |= ST_RDRF;
|
m_st |= ST_RDRF;
|
||||||
@ -159,7 +159,7 @@ void mos6551_device::update_serial()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int baud = clock() / brg_divider[brg] / 16;
|
int baud = clock() / brg_divider[brg] / 16;
|
||||||
|
|
||||||
set_tra_rate(baud);
|
set_tra_rate(baud);
|
||||||
|
|
||||||
if (m_ctrl & CTRL_RXC_BRG)
|
if (m_ctrl & CTRL_RXC_BRG)
|
||||||
@ -250,12 +250,12 @@ WRITE8_MEMBER( mos6551_device::write )
|
|||||||
case 0:
|
case 0:
|
||||||
m_tdr = data;
|
m_tdr = data;
|
||||||
m_st &= ~ST_TDRE;
|
m_st &= ~ST_TDRE;
|
||||||
|
|
||||||
if (is_transmit_register_empty())
|
if (is_transmit_register_empty())
|
||||||
{
|
{
|
||||||
transmit_register_setup(m_tdr);
|
transmit_register_setup(m_tdr);
|
||||||
m_st |= ST_TDRE;
|
m_st |= ST_TDRE;
|
||||||
|
|
||||||
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
|
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
|
||||||
{
|
{
|
||||||
m_st |= ST_IRQ;
|
m_st |= ST_IRQ;
|
||||||
|
@ -93,17 +93,17 @@ protected:
|
|||||||
CTRL_BRG_9600,
|
CTRL_BRG_9600,
|
||||||
CTRL_BRG_19200,
|
CTRL_BRG_19200,
|
||||||
CTRL_BRG_MASK = 0x0f,
|
CTRL_BRG_MASK = 0x0f,
|
||||||
|
|
||||||
CTRL_RXC_EXT = 0x00,
|
CTRL_RXC_EXT = 0x00,
|
||||||
CTRL_RXC_BRG = 0x10,
|
CTRL_RXC_BRG = 0x10,
|
||||||
CTRL_RXC_MASK = 0x10,
|
CTRL_RXC_MASK = 0x10,
|
||||||
|
|
||||||
CTRL_WL_8 = 0x00,
|
CTRL_WL_8 = 0x00,
|
||||||
CTRL_WL_7 = 0x20,
|
CTRL_WL_7 = 0x20,
|
||||||
CTRL_WL_6 = 0x40,
|
CTRL_WL_6 = 0x40,
|
||||||
CTRL_WL_5 = 0x60,
|
CTRL_WL_5 = 0x60,
|
||||||
CTRL_WL_MASK = 0x60,
|
CTRL_WL_MASK = 0x60,
|
||||||
|
|
||||||
CTRL_SB_1 = 0x00,
|
CTRL_SB_1 = 0x00,
|
||||||
CTRL_SB_2 = 0x80,
|
CTRL_SB_2 = 0x80,
|
||||||
CTRL_SB_MASK = 0x80
|
CTRL_SB_MASK = 0x80
|
||||||
@ -112,9 +112,9 @@ protected:
|
|||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
CMD_DTR = 0x01,
|
CMD_DTR = 0x01,
|
||||||
|
|
||||||
CMD_RIE = 0x02,
|
CMD_RIE = 0x02,
|
||||||
|
|
||||||
CMD_TC_RTS_HI = 0x00,
|
CMD_TC_RTS_HI = 0x00,
|
||||||
CMD_TC_TIE_RTS_LO = 0x04,
|
CMD_TC_TIE_RTS_LO = 0x04,
|
||||||
CMD_TC_RTS_LO = 0x08,
|
CMD_TC_RTS_LO = 0x08,
|
||||||
|
@ -976,4 +976,3 @@ void duart68681_channel::ACR_updated()
|
|||||||
{
|
{
|
||||||
write_chan_reg(1, CSR);
|
write_chan_reg(1, CSR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3679,7 +3679,7 @@ static DEVICE_RESET( s3c24xx )
|
|||||||
static DEVICE_START( s3c24xx )
|
static DEVICE_START( s3c24xx )
|
||||||
{
|
{
|
||||||
s3c24xx_t *s3c24xx = get_token( device);
|
s3c24xx_t *s3c24xx = get_token( device);
|
||||||
|
|
||||||
s3c24xx->m_cpu = device->machine().device( "maincpu");
|
s3c24xx->m_cpu = device->machine().device( "maincpu");
|
||||||
|
|
||||||
verboselog( device->machine(), 1, "s3c24xx device start\n");
|
verboselog( device->machine(), 1, "s3c24xx device start\n");
|
||||||
|
@ -1002,10 +1002,10 @@ void wd_fdc_t::sector_w(UINT8 val)
|
|||||||
if (inverted_bus) val ^= 0xff;
|
if (inverted_bus) val ^= 0xff;
|
||||||
|
|
||||||
// No more than one write in flight
|
// No more than one write in flight
|
||||||
// C1581 accesses this register with an INC opcode,
|
// C1581 accesses this register with an INC opcode,
|
||||||
// i.e. write old value, write new value, and the new value gets ignored by this
|
// i.e. write old value, write new value, and the new value gets ignored by this
|
||||||
//if(sector_buffer != -1)
|
//if(sector_buffer != -1)
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
sector_buffer = val;
|
sector_buffer = val;
|
||||||
delay_cycles(t_sector, dden ? delay_register_commit*2 : delay_register_commit);
|
delay_cycles(t_sector, dden ? delay_register_commit*2 : delay_register_commit);
|
||||||
|
@ -1478,7 +1478,7 @@ static struct rom_entry *software_find_romdata(software_part *swpart, const char
|
|||||||
|
|
||||||
data++;
|
data++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data && !data->_name)
|
if (data && !data->_name)
|
||||||
data = NULL;
|
data = NULL;
|
||||||
}
|
}
|
||||||
|
@ -263,29 +263,29 @@ const device_type DIGITALKER = &device_creator<digitalker_device>;
|
|||||||
|
|
||||||
digitalker_device::digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
digitalker_device::digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, DIGITALKER, "Digitalker", tag, owner, clock),
|
: device_t(mconfig, DIGITALKER, "Digitalker", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_rom(NULL),
|
m_rom(NULL),
|
||||||
m_stream(NULL),
|
m_stream(NULL),
|
||||||
m_data(0),
|
m_data(0),
|
||||||
m_cs(0),
|
m_cs(0),
|
||||||
m_cms(0),
|
m_cms(0),
|
||||||
m_wr(0),
|
m_wr(0),
|
||||||
m_intr(0),
|
m_intr(0),
|
||||||
m_bpos(0),
|
m_bpos(0),
|
||||||
m_apos(0),
|
m_apos(0),
|
||||||
m_mode(0),
|
m_mode(0),
|
||||||
m_cur_segment(0),
|
m_cur_segment(0),
|
||||||
m_cur_repeat(0),
|
m_cur_repeat(0),
|
||||||
m_segments(0),
|
m_segments(0),
|
||||||
m_repeats(0),
|
m_repeats(0),
|
||||||
m_prev_pitch(0),
|
m_prev_pitch(0),
|
||||||
m_pitch(0),
|
m_pitch(0),
|
||||||
m_pitch_pos(0),
|
m_pitch_pos(0),
|
||||||
m_stop_after(0),
|
m_stop_after(0),
|
||||||
m_cur_dac(0),
|
m_cur_dac(0),
|
||||||
m_cur_bits(0),
|
m_cur_bits(0),
|
||||||
m_zero_count(0),
|
m_zero_count(0),
|
||||||
m_dac_index(0)
|
m_dac_index(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -688,4 +688,3 @@ WRITE8_MEMBER( digitalker_device::digitalker_data_w )
|
|||||||
{
|
{
|
||||||
m_data = data;
|
m_data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
// ======================> digitalker_device
|
// ======================> digitalker_device
|
||||||
|
|
||||||
class digitalker_device : public device_t,
|
class digitalker_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
@ -19,11 +19,11 @@ const device_type FILTER_RC = &device_creator<filter_rc_device>;
|
|||||||
|
|
||||||
filter_rc_device::filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
filter_rc_device::filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, FILTER_RC, "RC Filter", tag, owner, clock),
|
: device_t(mconfig, FILTER_RC, "RC Filter", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_stream(NULL),
|
m_stream(NULL),
|
||||||
m_k(0),
|
m_k(0),
|
||||||
m_memory(0),
|
m_memory(0),
|
||||||
m_type(0)
|
m_type(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,4 +119,3 @@ void filter_rc_device::filter_rc_set_RC(int type, double R1, double R2, double R
|
|||||||
m_stream->update();
|
m_stream->update();
|
||||||
set_RC_info(type, R1, R2, R3, C);
|
set_RC_info(type, R1, R2, R3, C);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,13 +73,13 @@ extern const flt_rc_config flt_rc_ac_default;
|
|||||||
// ======================> filter_rc_device
|
// ======================> filter_rc_device
|
||||||
|
|
||||||
class filter_rc_device : public device_t,
|
class filter_rc_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
~filter_rc_device() { }
|
~filter_rc_device() { }
|
||||||
|
|
||||||
void filter_rc_set_RC(int type, double R1, double R2, double R3, double C);
|
void filter_rc_set_RC(int type, double R1, double R2, double R3, double C);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
@ -89,7 +89,7 @@ protected:
|
|||||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void set_RC_info(int type, double R1, double R2, double R3, double C);
|
void set_RC_info(int type, double R1, double R2, double R3, double C);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
sound_stream* m_stream;
|
sound_stream* m_stream;
|
||||||
|
@ -11,9 +11,9 @@ const device_type FILTER_VOLUME = &device_creator<filter_volume_device>;
|
|||||||
|
|
||||||
filter_volume_device::filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
filter_volume_device::filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, FILTER_VOLUME, "Volume Filter", tag, owner, clock),
|
: device_t(mconfig, FILTER_VOLUME, "Volume Filter", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_stream(NULL),
|
m_stream(NULL),
|
||||||
m_gain(0)
|
m_gain(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,4 +48,3 @@ void filter_volume_device::flt_volume_set_volume(float volume)
|
|||||||
{
|
{
|
||||||
m_gain = (int)(volume * 256);
|
m_gain = (int)(volume * 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
// ======================> filter_volume_device
|
// ======================> filter_volume_device
|
||||||
|
|
||||||
class filter_volume_device : public device_t,
|
class filter_volume_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
~filter_volume_device() { }
|
~filter_volume_device() { }
|
||||||
|
|
||||||
void flt_volume_set_volume(float volume);
|
void flt_volume_set_volume(float volume);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
|
@ -46,10 +46,10 @@ const device_type IREMGA20 = &device_creator<iremga20_device>;
|
|||||||
|
|
||||||
iremga20_device::iremga20_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
iremga20_device::iremga20_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, IREMGA20, "Irem GA20", tag, owner, clock),
|
: device_t(mconfig, IREMGA20, "Irem GA20", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_rom(NULL),
|
m_rom(NULL),
|
||||||
m_rom_size(0),
|
m_rom_size(0),
|
||||||
m_stream(NULL)
|
m_stream(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,12 +56,12 @@ protected:
|
|||||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DECLARE_WRITE8_MEMBER( irem_ga20_w );
|
DECLARE_WRITE8_MEMBER( irem_ga20_w );
|
||||||
DECLARE_READ8_MEMBER( irem_ga20_r );
|
DECLARE_READ8_MEMBER( irem_ga20_r );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void iremga20_reset();
|
void iremga20_reset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
UINT8 *m_rom;
|
UINT8 *m_rom;
|
||||||
INT32 m_rom_size;
|
INT32 m_rom_size;
|
||||||
|
@ -45,11 +45,11 @@ const device_type K005289 = &device_creator<k005289_device>;
|
|||||||
|
|
||||||
k005289_device::k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
k005289_device::k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, K005289, "K005289", tag, owner, clock),
|
: device_t(mconfig, K005289, "K005289", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_sound_prom(NULL),
|
m_sound_prom(NULL),
|
||||||
m_stream(NULL),
|
m_stream(NULL),
|
||||||
m_mclock(0),
|
m_mclock(0),
|
||||||
m_rate(0),
|
m_rate(0),
|
||||||
m_mixer_table(NULL),
|
m_mixer_table(NULL),
|
||||||
m_mixer_lookup(NULL),
|
m_mixer_lookup(NULL),
|
||||||
m_mixer_buffer(NULL),
|
m_mixer_buffer(NULL),
|
||||||
|
@ -30,7 +30,7 @@ struct k005289_sound_channel
|
|||||||
// ======================> k005289_device
|
// ======================> k005289_device
|
||||||
|
|
||||||
class k005289_device : public device_t,
|
class k005289_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
k005289_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
@ -52,8 +52,8 @@ public:
|
|||||||
DECLARE_WRITE8_MEMBER( k005289_keylatch_B_w );
|
DECLARE_WRITE8_MEMBER( k005289_keylatch_B_w );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void make_mixer_table(int voices);
|
void make_mixer_table(int voices);
|
||||||
void k005289_recompute();
|
void k005289_recompute();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
k005289_sound_channel m_channel_list[2];
|
k005289_sound_channel m_channel_list[2];
|
||||||
@ -61,7 +61,7 @@ private:
|
|||||||
const unsigned char *m_sound_prom;
|
const unsigned char *m_sound_prom;
|
||||||
sound_stream *m_stream;
|
sound_stream *m_stream;
|
||||||
int m_mclock;
|
int m_mclock;
|
||||||
int m_rate;
|
int m_rate;
|
||||||
|
|
||||||
/* mixer tables and internal buffers */
|
/* mixer tables and internal buffers */
|
||||||
INT16 *m_mixer_table;
|
INT16 *m_mixer_table;
|
||||||
|
@ -198,5 +198,3 @@ void k056800_device::device_reset()
|
|||||||
{
|
{
|
||||||
DEVICE_RESET_NAME( k056800 )(this);
|
DEVICE_RESET_NAME( k056800 )(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,16 +24,16 @@ silence compression: '00 nn' must be replaced by nn+1 times '80'.
|
|||||||
inside 16 bits without overflowing.
|
inside 16 bits without overflowing.
|
||||||
*/
|
*/
|
||||||
static const int vol_table[4] = { 26, 84, 200, 258 };
|
static const int vol_table[4] = { 26, 84, 200, 258 };
|
||||||
|
|
||||||
|
|
||||||
// device type definition
|
// device type definition
|
||||||
const device_type NAMCO_63701X = &device_creator<namco_63701x_device>;
|
const device_type NAMCO_63701X = &device_creator<namco_63701x_device>;
|
||||||
|
|
||||||
namco_63701x_device::namco_63701x_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
namco_63701x_device::namco_63701x_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, NAMCO_63701X, "Namco 63701X", tag, owner, clock),
|
: device_t(mconfig, NAMCO_63701X, "Namco 63701X", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_stream(NULL),
|
m_stream(NULL),
|
||||||
m_rom(NULL)
|
m_rom(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,4 +140,3 @@ WRITE8_MEMBER( namco_63701x_device::namco_63701x_w )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,12 +21,12 @@ struct voice_63701x
|
|||||||
{
|
{
|
||||||
voice_63701x()
|
voice_63701x()
|
||||||
: select(0),
|
: select(0),
|
||||||
playing(0),
|
playing(0),
|
||||||
base_addr(0),
|
base_addr(0),
|
||||||
position(0),
|
position(0),
|
||||||
volume(0),
|
volume(0),
|
||||||
silence_counter(0) {}
|
silence_counter(0) {}
|
||||||
|
|
||||||
int select;
|
int select;
|
||||||
int playing;
|
int playing;
|
||||||
int base_addr;
|
int base_addr;
|
||||||
@ -58,7 +58,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
voice_63701x m_voices[2];
|
voice_63701x m_voices[2];
|
||||||
sound_stream *m_stream; /* channel assigned by the mixer */
|
sound_stream *m_stream; /* channel assigned by the mixer */
|
||||||
UINT8 *m_rom; /* pointer to sample ROM */
|
UINT8 *m_rom; /* pointer to sample ROM */
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const device_type NAMCO_63701X;
|
extern const device_type NAMCO_63701X;
|
||||||
|
@ -2338,7 +2338,7 @@ void spu_device::key_on(const int v)
|
|||||||
void spu_device::set_xa_format(const float _freq, const int channels)
|
void spu_device::set_xa_format(const float _freq, const int channels)
|
||||||
{
|
{
|
||||||
// Adjust frequency to compensate for slightly slower/faster frame rate
|
// Adjust frequency to compensate for slightly slower/faster frame rate
|
||||||
// float freq=44100.0; //(_freq*get_adjusted_frame_rate())/ps1hw.rcnt->get_vertical_refresh();
|
// float freq=44100.0; //(_freq*get_adjusted_frame_rate())/ps1hw.rcnt->get_vertical_refresh();
|
||||||
|
|
||||||
xa_freq=(unsigned int)((_freq/44100.0)*4096.0f);
|
xa_freq=(unsigned int)((_freq/44100.0)*4096.0f);
|
||||||
xa_channels=channels;
|
xa_channels=channels;
|
||||||
@ -2499,7 +2499,7 @@ void spu_device::generate_cdda(void *ptr, const unsigned int sz)
|
|||||||
if (! cdda_buffer->get_bytes_in())
|
if (! cdda_buffer->get_bytes_in())
|
||||||
cdda_playing=false;
|
cdda_playing=false;
|
||||||
|
|
||||||
// if (n>0) printf("cdda buffer underflow (n=%d cdda_in=%d spf=%d)\n",n,cdda_buffer->get_bytes_in(),cdda_spf);
|
// if (n>0) printf("cdda buffer underflow (n=%d cdda_in=%d spf=%d)\n",n,cdda_buffer->get_bytes_in(),cdda_spf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
// ======================> t6721a_device
|
// ======================> t6721a_device
|
||||||
|
|
||||||
class t6721a_device : public device_t,
|
class t6721a_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
t6721a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
t6721a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
@ -16,9 +16,9 @@ const device_type TIA = &device_creator<tia_device>;
|
|||||||
|
|
||||||
tia_device::tia_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
tia_device::tia_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, TIA, "TIA", tag, owner, clock),
|
: device_t(mconfig, TIA, "TIA", tag, owner, clock),
|
||||||
device_sound_interface(mconfig, *this),
|
device_sound_interface(mconfig, *this),
|
||||||
m_channel(NULL),
|
m_channel(NULL),
|
||||||
m_chip(NULL)
|
m_chip(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
// ======================> tia_device
|
// ======================> tia_device
|
||||||
|
|
||||||
class tia_device : public device_t,
|
class tia_device : public device_t,
|
||||||
public device_sound_interface
|
public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
tia_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
tia_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
@ -35,7 +35,7 @@ protected:
|
|||||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DECLARE_WRITE8_MEMBER( tia_sound_w );
|
DECLARE_WRITE8_MEMBER( tia_sound_w );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
sound_stream *m_channel;
|
sound_stream *m_channel;
|
||||||
|
@ -17,7 +17,7 @@ const device_type EF9340_1 = &device_creator<ef9340_1_device>;
|
|||||||
|
|
||||||
static const UINT8 bgr2rgb[8] =
|
static const UINT8 bgr2rgb[8] =
|
||||||
{
|
{
|
||||||
0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07
|
0x00, 0x04, 0x02, 0x06, 0x01, 0x05, 0x03, 0x07
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -390,4 +390,3 @@ void ef9340_1_device::ef9340_scanline(int vpos)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,14 +17,13 @@
|
|||||||
|
|
||||||
#define MCFG_EF9340_1_ADD(_tag, _clock, _screen_tag) \
|
#define MCFG_EF9340_1_ADD(_tag, _clock, _screen_tag) \
|
||||||
MCFG_DEVICE_ADD(_tag, EF9340_1, _clock) \
|
MCFG_DEVICE_ADD(_tag, EF9340_1, _clock) \
|
||||||
ef9340_1_device::set_screen_tag(*device, _screen_tag); \
|
ef9340_1_device::set_screen_tag(*device, _screen_tag);
|
||||||
|
|
||||||
|
|
||||||
class ef9340_1_device : public device_t
|
class ef9340_1_device : public device_t
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
ef9340_1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
ef9340_1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
|
|
||||||
// static configuration helpers
|
// static configuration helpers
|
||||||
static void set_screen_tag(device_t &device, const char *screen_tag) { downcast<ef9340_1_device &>(device).m_screen_tag = screen_tag; }
|
static void set_screen_tag(device_t &device, const char *screen_tag) { downcast<ef9340_1_device &>(device).m_screen_tag = screen_tag; }
|
||||||
@ -82,4 +81,3 @@ protected:
|
|||||||
extern const device_type EF9340_1;
|
extern const device_type EF9340_1;
|
||||||
|
|
||||||
#endif /* __EF9340_1_H__ */
|
#endif /* __EF9340_1_H__ */
|
||||||
|
|
||||||
|
@ -318,20 +318,20 @@ READ8_MEMBER(i8244_device::read)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 0xa5:
|
case 0xa5:
|
||||||
if ((m_vdc.s.control & VDC_CONTROL_REG_STROBE_XY))
|
if ((m_vdc.s.control & VDC_CONTROL_REG_STROBE_XY))
|
||||||
{
|
{
|
||||||
m_x_beam_pos = get_x_beam();
|
m_x_beam_pos = get_x_beam();
|
||||||
}
|
}
|
||||||
data = m_x_beam_pos;
|
data = m_x_beam_pos;
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
data = m_vdc.reg[offset];
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
return data;
|
default:
|
||||||
|
data = m_vdc.reg[offset];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -348,7 +348,7 @@ WRITE8_MEMBER(i8244_device::write)
|
|||||||
if (offset == 0xa0)
|
if (offset == 0xa0)
|
||||||
{
|
{
|
||||||
if ( ( m_vdc.s.control & VDC_CONTROL_REG_STROBE_XY )
|
if ( ( m_vdc.s.control & VDC_CONTROL_REG_STROBE_XY )
|
||||||
&& !(data & VDC_CONTROL_REG_STROBE_XY))
|
&& !(data & VDC_CONTROL_REG_STROBE_XY))
|
||||||
{
|
{
|
||||||
/* Toggling strobe bit, tuck away values */
|
/* Toggling strobe bit, tuck away values */
|
||||||
m_x_beam_pos = get_x_beam();
|
m_x_beam_pos = get_x_beam();
|
||||||
@ -409,7 +409,7 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
//static const UINT8 COLLISION_EXTERNAL_UNUSED = 0x40;
|
//static const UINT8 COLLISION_EXTERNAL_UNUSED = 0x40;
|
||||||
static const UINT8 COLLISION_CHARACTERS = 0x80;
|
static const UINT8 COLLISION_CHARACTERS = 0x80;
|
||||||
|
|
||||||
UINT8 collision_map[160];
|
UINT8 collision_map[160];
|
||||||
|
|
||||||
|
|
||||||
if ( vpos == m_start_vpos )
|
if ( vpos == m_start_vpos )
|
||||||
@ -501,8 +501,8 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
/* Regular foreground objects */
|
/* Regular foreground objects */
|
||||||
for ( int i = 0; i < ARRAY_LENGTH( m_vdc.s.foreground ); i++ )
|
for ( int i = 0; i < ARRAY_LENGTH( m_vdc.s.foreground ); i++ )
|
||||||
{
|
{
|
||||||
int y = m_vdc.s.foreground[i].y & 0xFE;
|
int y = m_vdc.s.foreground[i].y & 0xFE;
|
||||||
int height = 8 - ( ( ( y >> 1 ) + m_vdc.s.foreground[i].ptr ) & 7 );
|
int height = 8 - ( ( ( y >> 1 ) + m_vdc.s.foreground[i].ptr ) & 7 );
|
||||||
|
|
||||||
if ( y >= 0x0E && y <= scanline && scanline < y + height * 2 )
|
if ( y >= 0x0E && y <= scanline && scanline < y + height * 2 )
|
||||||
{
|
{
|
||||||
@ -544,7 +544,7 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
|
|
||||||
if ( y <= scanline && scanline < y + height * 2 )
|
if ( y <= scanline && scanline < y + height * 2 )
|
||||||
{
|
{
|
||||||
int x = m_vdc.s.quad[i].single[0].x;
|
int x = m_vdc.s.quad[i].single[0].x;
|
||||||
|
|
||||||
// Charaecter height is always determined by the height of the 4th character
|
// Charaecter height is always determined by the height of the 4th character
|
||||||
int char_height = 8 - ( ( ( y >> 1 ) + m_vdc.s.quad[i].single[3].ptr ) & 7 );
|
int char_height = 8 - ( ( ( y >> 1 ) + m_vdc.s.quad[i].single[3].ptr ) & 7 );
|
||||||
@ -553,7 +553,6 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
{
|
{
|
||||||
if ( y <= scanline && scanline < y + char_height * 2 )
|
if ( y <= scanline && scanline < y + char_height * 2 )
|
||||||
{
|
{
|
||||||
|
|
||||||
UINT16 color = 8 + bgr2rgb[ ( ( m_vdc.s.quad[i].single[j].color >> 1 ) & 0x07 ) ];
|
UINT16 color = 8 + bgr2rgb[ ( ( m_vdc.s.quad[i].single[j].color >> 1 ) & 0x07 ) ];
|
||||||
int offset = ( m_vdc.s.quad[i].single[j].ptr | ( ( m_vdc.s.quad[i].single[j].color & 0x01 ) << 8 ) ) + ( y >> 1 ) + ( ( scanline - y ) >> 1 );
|
int offset = ( m_vdc.s.quad[i].single[j].ptr | ( ( m_vdc.s.quad[i].single[j].color & 0x01 ) << 8 ) ) + ( y >> 1 ) + ( ( scanline - y ) >> 1 );
|
||||||
UINT8 chr = c_shape[ offset & 0x1FF ];
|
UINT8 chr = c_shape[ offset & 0x1FF ];
|
||||||
@ -605,7 +604,7 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
int x = m_vdc.s.sprites[i].x;
|
int x = m_vdc.s.sprites[i].x;
|
||||||
int x_shift = 0;
|
int x_shift = 0;
|
||||||
|
|
||||||
switch ( m_vdc.s.sprites[i].color & 0x03 )
|
switch ( m_vdc.s.sprites[i].color & 0x03 )
|
||||||
{
|
{
|
||||||
case 1: // Xg attribute set
|
case 1: // Xg attribute set
|
||||||
x_shift = 2;
|
x_shift = 2;
|
||||||
@ -736,7 +735,7 @@ void i8244_device::sound_stream_update(sound_stream &stream, stream_sample_t **i
|
|||||||
/* Generate the signal */
|
/* Generate the signal */
|
||||||
old_signal = signal = m_vdc.s.shift3 | (m_vdc.s.shift2 << 8) | (m_vdc.s.shift1 << 16);
|
old_signal = signal = m_vdc.s.shift3 | (m_vdc.s.shift2 << 8) | (m_vdc.s.shift1 << 16);
|
||||||
|
|
||||||
if( m_vdc.s.sound & 0x80 ) /* Sound is enabled */
|
if( m_vdc.s.sound & 0x80 ) /* Sound is enabled */
|
||||||
{
|
{
|
||||||
for( ii = 0; ii < samples; ii++, buffer++ )
|
for( ii = 0; ii < samples; ii++, buffer++ )
|
||||||
{
|
{
|
||||||
@ -791,5 +790,3 @@ UINT32 i8244_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,23 +22,18 @@
|
|||||||
MCFG_DEVICE_ADD(_tag, I8244, _clock) \
|
MCFG_DEVICE_ADD(_tag, I8244, _clock) \
|
||||||
MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
||||||
MCFG_I8244_IRQ_CB(_irq_cb) \
|
MCFG_I8244_IRQ_CB(_irq_cb) \
|
||||||
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb) \
|
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb)
|
||||||
|
|
||||||
#define MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
#define MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
||||||
i8244_device::set_screen_tag(*device, _screen_tag); \
|
i8244_device::set_screen_tag(*device, _screen_tag);
|
||||||
|
|
||||||
#define MCFG_I8244_IRQ_CB(_devcb) \
|
#define MCFG_I8244_IRQ_CB(_devcb) \
|
||||||
devcb = &i8244_device::set_irq_cb(*device, DEVCB2_##_devcb); \
|
devcb = &i8244_device::set_irq_cb(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
#define MCFG_I8244_POSTPROCESS_CB(_devcb) \
|
#define MCFG_I8244_POSTPROCESS_CB(_devcb) \
|
||||||
devcb = &i8244_device::set_postprocess_cb(*device, DEVCB2_##_devcb); \
|
devcb = &i8244_device::set_postprocess_cb(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
#define MCFG_I8245_ADD(_tag, _clock, _screen_tag, _irq_cb, _postprocess_cb) \
|
#define MCFG_I8245_ADD(_tag, _clock, _screen_tag, _irq_cb, _postprocess_cb) \
|
||||||
MCFG_DEVICE_ADD(_tag, I8245, _clock) \
|
MCFG_DEVICE_ADD(_tag, I8245, _clock) \
|
||||||
MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
MCFG_I8244_SCREEN_TAG(_screen_tag) \
|
||||||
MCFG_I8244_IRQ_CB(_irq_cb) \
|
MCFG_I8244_IRQ_CB(_irq_cb) \
|
||||||
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb ) \
|
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb )
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
TYPE DEFINITIONS
|
TYPE DEFINITIONS
|
||||||
@ -48,15 +43,15 @@ union vdc_t {
|
|||||||
UINT8 reg[0x100];
|
UINT8 reg[0x100];
|
||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
UINT8 y,x,color,res;
|
UINT8 y,x,color,res;
|
||||||
} sprites[4];
|
} sprites[4];
|
||||||
struct {
|
struct {
|
||||||
UINT8 y,x,ptr,color;
|
UINT8 y,x,ptr,color;
|
||||||
} foreground[12];
|
} foreground[12];
|
||||||
struct {
|
struct {
|
||||||
struct {
|
struct {
|
||||||
UINT8 y,x,ptr,color;
|
UINT8 y,x,ptr,color;
|
||||||
} single[4];
|
} single[4];
|
||||||
} quad[4];
|
} quad[4];
|
||||||
UINT8 shape[4][8];
|
UINT8 shape[4][8];
|
||||||
UINT8 control;
|
UINT8 control;
|
||||||
@ -83,8 +78,8 @@ class i8244_device : public device_t
|
|||||||
, public device_sound_interface
|
, public device_sound_interface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
i8244_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
i8244_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
i8244_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int lines);
|
i8244_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int lines);
|
||||||
|
|
||||||
// static configuration helpers
|
// static configuration helpers
|
||||||
@ -103,7 +98,7 @@ public:
|
|||||||
|
|
||||||
inline bitmap_ind16 *get_bitmap() { return &m_tmp_bitmap; }
|
inline bitmap_ind16 *get_bitmap() { return &m_tmp_bitmap; }
|
||||||
|
|
||||||
// Global constants
|
// Global constants
|
||||||
static const int START_ACTIVE_SCAN = 42;
|
static const int START_ACTIVE_SCAN = 42;
|
||||||
static const int BORDER_SIZE = 10;
|
static const int BORDER_SIZE = 10;
|
||||||
static const int END_ACTIVE_SCAN = 42 + 10 + 320 + 10;
|
static const int END_ACTIVE_SCAN = 42 + 10 + 320 + 10;
|
||||||
@ -133,8 +128,8 @@ protected:
|
|||||||
static const device_timer_id TIMER_LINE = 0;
|
static const device_timer_id TIMER_LINE = 0;
|
||||||
static const device_timer_id TIMER_HBLANK = 1;
|
static const device_timer_id TIMER_HBLANK = 1;
|
||||||
|
|
||||||
// callbacks
|
// callbacks
|
||||||
devcb2_write_line m_irq_func;
|
devcb2_write_line m_irq_func;
|
||||||
devcb2_write16 m_postprocess_func;
|
devcb2_write16 m_postprocess_func;
|
||||||
|
|
||||||
const char *m_screen_tag;
|
const char *m_screen_tag;
|
||||||
|
@ -70,7 +70,7 @@ typedef void (*mc6845_on_update_addr_changed_func)(mc6845_device *device, int ad
|
|||||||
struct mc6845_interface
|
struct mc6845_interface
|
||||||
{
|
{
|
||||||
const char *m_screen_tag; /* screen we are acting on */
|
const char *m_screen_tag; /* screen we are acting on */
|
||||||
bool m_show_border_area; /* visible screen area (false) active display (true) active display + blanking */
|
bool m_show_border_area; /* visible screen area (false) active display (true) active display + blanking */
|
||||||
int m_hpixels_per_column; /* number of pixels per video memory address */
|
int m_hpixels_per_column; /* number of pixels per video memory address */
|
||||||
|
|
||||||
/* if specified, this gets called before any pixel update,
|
/* if specified, this gets called before any pixel update,
|
||||||
|
@ -182,16 +182,16 @@ static VIDEO_START( cga_mc1502 );
|
|||||||
|
|
||||||
static MC6845_INTERFACE( mc6845_cga_intf )
|
static MC6845_INTERFACE( mc6845_cga_intf )
|
||||||
{
|
{
|
||||||
CGA_SCREEN_NAME, /* screen number */
|
CGA_SCREEN_NAME, /* screen number */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* numbers of pixels per video memory address */
|
8, /* numbers of pixels per video memory address */
|
||||||
NULL, /* begin_update */
|
NULL, /* begin_update */
|
||||||
cga_update_row, /* update_row */
|
cga_update_row, /* update_row */
|
||||||
NULL, /* end_update */
|
NULL, /* end_update */
|
||||||
DEVCB_NULL, /* on_de_changed */
|
DEVCB_NULL, /* on_de_changed */
|
||||||
DEVCB_NULL, /* on_cur_changed */
|
DEVCB_NULL, /* on_cur_changed */
|
||||||
DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */
|
DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */
|
||||||
DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */
|
DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ const device_type TLC34076 = &device_creator<tlc34076_device>;
|
|||||||
// tlc34076_device - constructor
|
// tlc34076_device - constructor
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
tlc34076_device::tlc34076_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
tlc34076_device::tlc34076_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, TLC34076, "TLC34076", tag, owner, clock),
|
: device_t(mconfig, TLC34076, "TLC34076", tag, owner, clock),
|
||||||
m_dacbits(6)
|
m_dacbits(6)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
static void static_set_bits(device_t &device, tlc34076_bits bits);
|
static void static_set_bits(device_t &device, tlc34076_bits bits);
|
||||||
|
|
||||||
// public interface
|
// public interface
|
||||||
const pen_t *get_pens();
|
const pen_t *get_pens();
|
||||||
DECLARE_READ8_MEMBER(read);
|
DECLARE_READ8_MEMBER(read);
|
||||||
DECLARE_WRITE8_MEMBER(write);
|
DECLARE_WRITE8_MEMBER(write);
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
floppy_image_format_t::desc_e *desc;
|
floppy_image_format_t::desc_e *desc;
|
||||||
desc_s sectors[40];
|
desc_s sectors[40];
|
||||||
int track_offset = 0, error_offset = 0;
|
int track_offset = 0, error_offset = 0;
|
||||||
|
|
||||||
UINT8 id1 = 0, id2 = 0;
|
UINT8 id1 = 0, id2 = 0;
|
||||||
get_disk_id(f, io, id1, id2);
|
get_disk_id(f, io, id1, id2);
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
int remaining_size = total_size - current_size;
|
int remaining_size = total_size - current_size;
|
||||||
if(remaining_size < 0)
|
if(remaining_size < 0)
|
||||||
throw emu_fatalerror("d64_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
|
throw emu_fatalerror("d64_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
|
||||||
|
|
||||||
// Fixup the end gap
|
// Fixup the end gap
|
||||||
desc[21].p2 = remaining_size / 8;
|
desc[21].p2 = remaining_size / 8;
|
||||||
desc[22].p2 = remaining_size & 7;
|
desc[22].p2 = remaining_size & 7;
|
||||||
@ -259,7 +259,7 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
|
|
||||||
build_sector_description(f, &img[track_offset], sectors, sector_count, &img[f.sector_count*f.sector_base_size + error_offset]);
|
build_sector_description(f, &img[track_offset], sectors, sector_count, &img[f.sector_count*f.sector_base_size + error_offset]);
|
||||||
generate_track(desc, physical_track, head, sectors, sector_count, total_size, image);
|
generate_track(desc, physical_track, head, sectors, sector_count, total_size, image);
|
||||||
|
|
||||||
track_offset += track_size;
|
track_offset += track_size;
|
||||||
error_offset += sector_count;
|
error_offset += sector_count;
|
||||||
}
|
}
|
||||||
@ -272,7 +272,6 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
|
|
||||||
void d64_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head)
|
void d64_format::extract_sectors(floppy_image *image, const format &f, desc_s *sdesc, int track, int head)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool d64_format::save(io_generic *io, floppy_image *image)
|
bool d64_format::save(io_generic *io, floppy_image *image)
|
||||||
|
@ -137,46 +137,46 @@ const d81_format::format d81_format::formats[] = {
|
|||||||
|
|
||||||
floppy_image_format_t::desc_e* d81_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index)
|
floppy_image_format_t::desc_e* d81_format::get_desc_mfm(const format &f, int ¤t_size, int &end_gap_index)
|
||||||
{
|
{
|
||||||
static floppy_image_format_t::desc_e desc[25] = {
|
static floppy_image_format_t::desc_e desc[25] = {
|
||||||
/* 00 */ { MFM, 0x4e, f.gap_1 },
|
/* 00 */ { MFM, 0x4e, f.gap_1 },
|
||||||
/* 01 */ { SECTOR_LOOP_START, 0, f.sector_count-1 },
|
/* 01 */ { SECTOR_LOOP_START, 0, f.sector_count-1 },
|
||||||
/* 02 */ { MFM, 0x00, 12 },
|
/* 02 */ { MFM, 0x00, 12 },
|
||||||
/* 03 */ { CRC_CCITT_START, 1 },
|
/* 03 */ { CRC_CCITT_START, 1 },
|
||||||
/* 04 */ { RAW, 0x4489, 3 },
|
/* 04 */ { RAW, 0x4489, 3 },
|
||||||
/* 05 */ { MFM, 0xfe, 1 },
|
/* 05 */ { MFM, 0xfe, 1 },
|
||||||
/* 06 */ { TRACK_ID },
|
/* 06 */ { TRACK_ID },
|
||||||
/* 07 */ { HEAD_ID_SWAP },
|
/* 07 */ { HEAD_ID_SWAP },
|
||||||
/* 08 */ { SECTOR_ID },
|
/* 08 */ { SECTOR_ID },
|
||||||
/* 09 */ { SIZE_ID },
|
/* 09 */ { SIZE_ID },
|
||||||
/* 10 */ { CRC_END, 1 },
|
/* 10 */ { CRC_END, 1 },
|
||||||
/* 11 */ { CRC, 1 },
|
/* 11 */ { CRC, 1 },
|
||||||
/* 12 */ { MFM, 0x4e, f.gap_2 },
|
/* 12 */ { MFM, 0x4e, f.gap_2 },
|
||||||
/* 13 */ { MFM, 0x00, 12 },
|
/* 13 */ { MFM, 0x00, 12 },
|
||||||
/* 14 */ { CRC_CCITT_START, 2 },
|
/* 14 */ { CRC_CCITT_START, 2 },
|
||||||
/* 15 */ { RAW, 0x4489, 3 },
|
/* 15 */ { RAW, 0x4489, 3 },
|
||||||
/* 16 */ { MFM, 0xfb, 1 },
|
/* 16 */ { MFM, 0xfb, 1 },
|
||||||
/* 17 */ { SECTOR_DATA, -1 },
|
/* 17 */ { SECTOR_DATA, -1 },
|
||||||
/* 18 */ { CRC_END, 2 },
|
/* 18 */ { CRC_END, 2 },
|
||||||
/* 19 */ { CRC, 2 },
|
/* 19 */ { CRC, 2 },
|
||||||
/* 20 */ { MFM, 0x4e, f.gap_3 },
|
/* 20 */ { MFM, 0x4e, f.gap_3 },
|
||||||
/* 21 */ { SECTOR_LOOP_END },
|
/* 21 */ { SECTOR_LOOP_END },
|
||||||
/* 22 */ { MFM, 0x4e, 0 },
|
/* 22 */ { MFM, 0x4e, 0 },
|
||||||
/* 23 */ { RAWBITS, 0x9254, 0 },
|
/* 23 */ { RAWBITS, 0x9254, 0 },
|
||||||
/* 24 */ { END }
|
/* 24 */ { END }
|
||||||
};
|
};
|
||||||
|
|
||||||
current_size = f.gap_1*16;
|
current_size = f.gap_1*16;
|
||||||
if(f.sector_base_size)
|
if(f.sector_base_size)
|
||||||
current_size += f.sector_base_size * f.sector_count * 16;
|
current_size += f.sector_base_size * f.sector_count * 16;
|
||||||
else {
|
else {
|
||||||
for(int j=0; j != f.sector_count; j++)
|
for(int j=0; j != f.sector_count; j++)
|
||||||
current_size += f.per_sector_size[j] * 16;
|
current_size += f.per_sector_size[j] * 16;
|
||||||
}
|
}
|
||||||
current_size += (12+3+1+4+2+f.gap_2+12+3+1+2+f.gap_3) * f.sector_count * 16;
|
current_size += (12+3+1+4+2+f.gap_2+12+3+1+2+f.gap_3) * f.sector_count * 16;
|
||||||
|
|
||||||
end_gap_index = 22;
|
end_gap_index = 22;
|
||||||
|
|
||||||
return desc;
|
return desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
const floppy_format_type FLOPPY_D81_FORMAT = &floppy_image_format_creator<d81_format>;
|
const floppy_format_type FLOPPY_D81_FORMAT = &floppy_image_format_creator<d81_format>;
|
||||||
|
@ -301,7 +301,7 @@ protected:
|
|||||||
FM, //!< One byte in p1 to be fm-encoded, msb first, repeated p2 times
|
FM, //!< One byte in p1 to be fm-encoded, msb first, repeated p2 times
|
||||||
MFM, //!< One byte in p1 to be mfm-encoded, msb first, repeated p2 times
|
MFM, //!< One byte in p1 to be mfm-encoded, msb first, repeated p2 times
|
||||||
MFMBITS, //!< A value of p2 bits in p1 to be mfm-encoded, msb first
|
MFMBITS, //!< A value of p2 bits in p1 to be mfm-encoded, msb first
|
||||||
GCR5, //!< One byte in p1 to be gcr5-encoded, repeated p2 times
|
GCR5, //!< One byte in p1 to be gcr5-encoded, repeated p2 times
|
||||||
RAW, //!< One 16 bits word in p1 to be written raw, msb first, repeated p2 times
|
RAW, //!< One 16 bits word in p1 to be written raw, msb first, repeated p2 times
|
||||||
RAWBYTE, //!< One 8 bit byte in p1 to be written raw, msb first, repeated p2 times
|
RAWBYTE, //!< One 8 bit byte in p1 to be written raw, msb first, repeated p2 times
|
||||||
RAWBITS, //!< A value of p2 bits in p1 to be copied as-is, msb first
|
RAWBITS, //!< A value of p2 bits in p1 to be copied as-is, msb first
|
||||||
@ -330,13 +330,13 @@ protected:
|
|||||||
SECTOR_DATA_FM, //!< Sector data to fm-encode, which in p1, -1 for the current one per the sector id
|
SECTOR_DATA_FM, //!< Sector data to fm-encode, which in p1, -1 for the current one per the sector id
|
||||||
SECTOR_DATA_O, //!< Sector data to mfm-encode, odd bits only, which in p1, -1 for the current one per the sector id
|
SECTOR_DATA_O, //!< Sector data to mfm-encode, odd bits only, which in p1, -1 for the current one per the sector id
|
||||||
SECTOR_DATA_E, //!< Sector data to mfm-encode, even bits only, which in p1, -1 for the current one per the sector id
|
SECTOR_DATA_E, //!< Sector data to mfm-encode, even bits only, which in p1, -1 for the current one per the sector id
|
||||||
SECTOR_DATA_GCR5, //!< Sector data to gcr5-encode, which in p1, -1 for the current one per the sector id
|
SECTOR_DATA_GCR5, //!< Sector data to gcr5-encode, which in p1, -1 for the current one per the sector id
|
||||||
SECTOR_DATA_MAC, //!< Transformed sector data + checksum, mac style, id in p1, -1 for the current one per the sector id
|
SECTOR_DATA_MAC, //!< Transformed sector data + checksum, mac style, id in p1, -1 for the current one per the sector id
|
||||||
|
|
||||||
CRC_CCITT_START, //!< Start a CCITT CRC calculation, with the usual x^16 + x^12 + x^5 + 1 (11021) polynomial, p1 = crc id
|
CRC_CCITT_START, //!< Start a CCITT CRC calculation, with the usual x^16 + x^12 + x^5 + 1 (11021) polynomial, p1 = crc id
|
||||||
CRC_CCITT_FM_START, //!< Start a CCITT CRC calculation, with the usual x^16 + x^12 + x^5 + 1 (11021) polynomial, p1 = crc id
|
CRC_CCITT_FM_START, //!< Start a CCITT CRC calculation, with the usual x^16 + x^12 + x^5 + 1 (11021) polynomial, p1 = crc id
|
||||||
CRC_AMIGA_START, //!< Start an amiga checksum calculation, p1 = crc id
|
CRC_AMIGA_START, //!< Start an amiga checksum calculation, p1 = crc id
|
||||||
CRC_CBM_START, //<! Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id
|
CRC_CBM_START, //<! Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id
|
||||||
CRC_MACHEAD_START, //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded)
|
CRC_MACHEAD_START, //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded)
|
||||||
CRC_END, //!< End the checksum, p1 = crc id
|
CRC_END, //!< End the checksum, p1 = crc id
|
||||||
CRC, //!< Write a checksum in the apporpriate format, p1 = crc id
|
CRC, //!< Write a checksum in the apporpriate format, p1 = crc id
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "formats/g64_dsk.h"
|
#include "formats/g64_dsk.h"
|
||||||
|
|
||||||
#define G64_FORMAT_HEADER "GCR-1541"
|
#define G64_FORMAT_HEADER "GCR-1541"
|
||||||
|
|
||||||
g64_format::g64_format()
|
g64_format::g64_format()
|
||||||
{
|
{
|
||||||
@ -113,7 +113,7 @@ bool g64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
if (pos > 0) {
|
if (pos > 0) {
|
||||||
track_size = pick_integer_le(img, pos, 2);
|
track_size = pick_integer_le(img, pos, 2);
|
||||||
pos +=2;
|
pos +=2;
|
||||||
|
|
||||||
if (speed_zone_offset[track] > 3)
|
if (speed_zone_offset[track] > 3)
|
||||||
throw emu_fatalerror("g64_format: Unsupported variable speed zones on track %d", track);
|
throw emu_fatalerror("g64_format: Unsupported variable speed zones on track %d", track);
|
||||||
|
|
||||||
|
@ -384,23 +384,23 @@ value_ptr bplist_read_file(char *filename)
|
|||||||
#ifdef OSX_PPC
|
#ifdef OSX_PPC
|
||||||
value_ptr bplist_read_pref(char *filename, OSType folder_type)
|
value_ptr bplist_read_pref(char *filename, OSType folder_type)
|
||||||
{
|
{
|
||||||
FSRef prefdir;
|
FSRef prefdir;
|
||||||
char cstr[MAXPATHLEN];
|
char cstr[MAXPATHLEN];
|
||||||
|
|
||||||
OSErr err = FSFindFolder(kOnAppropriateDisk, folder_type,
|
OSErr err = FSFindFolder(kOnAppropriateDisk, folder_type,
|
||||||
FALSE, &prefdir);
|
FALSE, &prefdir);
|
||||||
if (err) {
|
if (err) {
|
||||||
bplist_log("Error finding preferences folder: %d\n", err);
|
bplist_log("Error finding preferences folder: %d\n", err);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
err = FSRefMakePath(&prefdir, (UInt8 *) cstr, (UInt32) (MAXPATHLEN - 1));
|
err = FSRefMakePath(&prefdir, (UInt8 *) cstr, (UInt32) (MAXPATHLEN - 1));
|
||||||
if (err) {
|
if (err) {
|
||||||
bplist_log("Error making path name for preferences folder: %d\n", err);
|
bplist_log("Error making path name for preferences folder: %d\n", err);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
strlcat(cstr, "/", MAXPATHLEN);
|
strlcat(cstr, "/", MAXPATHLEN);
|
||||||
strlcat(cstr, filename, MAXPATHLEN);
|
strlcat(cstr, filename, MAXPATHLEN);
|
||||||
return bplist_read_file(cstr);
|
return bplist_read_file(cstr);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
value_ptr bplist_read_pref(char *filename, OSType folder_type)
|
value_ptr bplist_read_pref(char *filename, OSType folder_type)
|
||||||
|
@ -365,7 +365,7 @@ static const ay8910_interface ay8910_intf =
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* number of pixels per video memory address */
|
8, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
@ -991,7 +991,7 @@ GFXDECODE_END
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* number of pixels per video memory address */
|
8, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
@ -210,7 +210,7 @@ static const ay8910_interface ay8910_config =
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* number of pixels per video memory address */
|
8, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
@ -804,7 +804,7 @@ static const ym3812_interface ym3812_config =
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
4, /* number of pixels per video memory address */
|
4, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
@ -1551,8 +1551,8 @@ static MC6845_INTERFACE( mc6845_intf )
|
|||||||
that's why the big horizontal parameters */
|
that's why the big horizontal parameters */
|
||||||
|
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
4, /* number of pixels per video memory address */
|
4, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
NULL, /* after pixel update callback */
|
NULL, /* after pixel update callback */
|
||||||
|
@ -85,11 +85,11 @@ public:
|
|||||||
UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
inline UINT32 decode64_32(offs_t offset64, UINT64 data, UINT64 mem_mask, offs_t &offset32);
|
inline UINT32 decode64_32(offs_t offset64, UINT64 data, UINT64 mem_mask, offs_t &offset32);
|
||||||
void logbinary(UINT32 data,int high,int low);
|
void logbinary(UINT32 data,int high,int low);
|
||||||
|
|
||||||
memory_region *m_nandregion;
|
memory_region *m_nandregion;
|
||||||
int m_nandcommand[4], m_nandoffset[4], m_nandaddressstep, m_nandaddress[4];
|
int m_nandcommand[4], m_nandoffset[4], m_nandaddressstep, m_nandaddress[4];
|
||||||
UINT32 m_area1_data[4];
|
UINT32 m_area1_data[4];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void atvtrack_state::logbinary(UINT32 data,int high=31,int low=0)
|
void atvtrack_state::logbinary(UINT32 data,int high=31,int low=0)
|
||||||
|
@ -850,7 +850,7 @@ GFXDECODE_END
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* number of pixels per video memory address */
|
8, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
These appear to run on Acorn Archimedes-compatible hardware, similar to ertictac.c.
|
These appear to run on Acorn Archimedes-compatible hardware, similar to ertictac.c.
|
||||||
That would make the SoC an ARM7500 or similar.
|
That would make the SoC an ARM7500 or similar.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -741,7 +741,7 @@ static const pia6821_interface megadpkr_pia1_intf =
|
|||||||
static MC6845_INTERFACE( mc6845_intf )
|
static MC6845_INTERFACE( mc6845_intf )
|
||||||
{
|
{
|
||||||
"screen", /* screen we are acting on */
|
"screen", /* screen we are acting on */
|
||||||
false, /* show border area */
|
false, /* show border area */
|
||||||
8, /* number of pixels per video memory address */
|
8, /* number of pixels per video memory address */
|
||||||
NULL, /* before pixel update callback */
|
NULL, /* before pixel update callback */
|
||||||
NULL, /* row update callback */
|
NULL, /* row update callback */
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user