Cleanups and version bump

This commit is contained in:
Miodrag Milanovic 2013-02-11 07:44:56 +00:00
parent 4b0b4e6b2f
commit a440a8e020
397 changed files with 18639 additions and 18731 deletions

View File

@ -6579,12 +6579,12 @@
<year>1984</year>
<publisher>Viza</publisher>
<sharedfeat name="compatibility" value="NTSC,PAL"/>
<part name="cart" interface="c64_cart">
<feature name="slot" value="vizastar" />
<feature name="game" value="1" />
<feature name="exrom" value="0" />
<dataarea name="roml" size="0x1000">
<rom name="v" size="0x1000" crc="d17689a0" sha1="4df4d254d7fae916c473d421515b2b74d77e9fd9" offset="0" />
</dataarea>
@ -6598,7 +6598,7 @@
</software>
<!-- Dummy cartridge entries to allow requirement mappings from c64_flop -->
<software name="cpm">
<description>CP/M</description>
<year>1982</year>

View File

@ -2,7 +2,7 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- based on c64tapes.org dumps -->
<softwarelist name="c64_cass" description="Commodore 64 cassettes">
<software name="jacknip2">
<description>Jack the Nipper II: In Coconut Capers</description>
<year>1987</year>

View File

@ -701,8 +701,8 @@
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
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
-->
<part name="flop1" interface="floppy_5_25">

View File

@ -1256,7 +1256,7 @@
</dataarea>
</part>
</software>
<software name="cbug88">
<description>CBUG #88</description>
<year>1983</year>

View File

@ -270231,23 +270231,23 @@ stick to CPC-Power disks, when available)
<!-- Robot-PD New Range -->
<!-- Text files
<!-- Text files
00001 The Big Book Of Mischief
Anarchic text files detailing how to blow things up. 18
03000 Comms text files.
03001 Comms text files.
04000 Programming tutorials
Learn how to program your computer in BASIC or machine code.
04400* CPC Guide
Kevin Thacker's excellent and comprehensive guide to the CPC's internals.
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.
06100 Tips for adventure games.
06101 Tips for adventure games.
09100 Nutworks
A comic look at computers from the early days of the Internet.
00001 The Big Book Of Mischief
Anarchic text files detailing how to blow things up. 18
03000 Comms text files.
03001 Comms text files.
04000 Programming tutorials
Learn how to program your computer in BASIC or machine code.
04400* CPC Guide
Kevin Thacker's excellent and comprehensive guide to the CPC's internals.
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.
06100 Tips for adventure games.
06101 Tips for adventure games.
09100 Nutworks
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.
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),
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
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,
demo programs for ComSoft's Basic Idea, and many more.
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
succinct descriptions of many PD programs.
10100 Educational programs for all ages.
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).
10301 The Jean-Michel Jarre music collection and Acid Music Box 2.
10302 Music Pack 4 (hacked tunes), plus Epsilon's new Anthology.
10304 Advanced Music System files by Rob Baxter.
10305 Advanced Music System files by Rob Baxter.
10306 Advanced Music System files by Rob Baxter.
10307 Advanced Music System files by Rob Baxter.
10308 Advanced Music System files by Rob Baxter.
10311 Soundhakker hacked music, complete with player program.
10314 Music to be loaded into Soundtrakker (see disc 11001).
10315 Music to be loaded into Soundtrakker (see disc 11001).
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),
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
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,
demo programs for ComSoft's Basic Idea, and many more.
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
succinct descriptions of many PD programs.
10100 Educational programs for all ages.
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).
10301 The Jean-Michel Jarre music collection and Acid Music Box 2.
10302 Music Pack 4 (hacked tunes), plus Epsilon's new Anthology.
10304 Advanced Music System files by Rob Baxter.
10305 Advanced Music System files by Rob Baxter.
10306 Advanced Music System files by Rob Baxter.
10307 Advanced Music System files by Rob Baxter.
10308 Advanced Music System files by Rob Baxter.
10311 Soundhakker hacked music, complete with player program.
10314 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.
11000 Protracker
An impressive music editor which uses real samples - it can even import .MOD files from the Amiga and PC.128
11001* Soundtrackers
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
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
11200 Databases.
11201 Databases.
11300 Spreadsheets, including PD Planner.
11400 PowerPage 64
The original version of the CPC desktop publisher. Lets you edit a fully graphical A5 page on even an unexpanded 464.
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.
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
11402 Alan Scully's simple Pagemaker DTP program.
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
Advanced Art Studio. Exclusively translated by Robot Software. Also includes PC-CPC graphic transfer programs, Smart II, and several other drawing
programs.
11000 Protracker
An impressive music editor which uses real samples - it can even import .MOD files from the Amiga and PC.128
11001* Soundtrackers
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
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
11200 Databases.
11201 Databases.
11300 Spreadsheets, including PD Planner.
11400 PowerPage 64
The original version of the CPC desktop publisher. Lets you edit a fully graphical A5 page on even an unexpanded 464.
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.
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
11402 Alan Scully's simple Pagemaker DTP program.
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
Advanced Art Studio. Exclusively translated by Robot Software. Also includes PC-CPC graphic transfer programs, Smart II, and several other drawing
programs.
-->
@ -270891,33 +270891,33 @@ AMSDOS software, 3
These discs are intended for Amstrad CPC and Plus computers.
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.
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
programs, while Pro-Ext brings clip art and headline font capabilities to Protext.XC 128
12003 Print Enhancer
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.
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
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
Disc utilities from all over Europe - copiers, formatters, rescue programs, you name it. Includes classics such as DMon and Crime.
12200 RSX-Lib
A programming utility from Smogware Systems. XC
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
are on the disc. Perfect for sending interesting disc letters to your CPC contacts.
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.
12400 A bizarre Unix-like operating system.
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.
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.
14400 Z80 Pack
A collection of assemblers, monitors and disassemblers for the novice or experienced coder. Includes the powerful LARA monitor.
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.
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
programs, while Pro-Ext brings clip art and headline font capabilities to Protext.XC 128
12003 Print Enhancer
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.
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
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
Disc utilities from all over Europe - copiers, formatters, rescue programs, you name it. Includes classics such as DMon and Crime.
12200 RSX-Lib
A programming utility from Smogware Systems. XC
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
are on the disc. Perfect for sending interesting disc letters to your CPC contacts.
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.
12400 A bizarre Unix-like operating system.
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.
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.
14400 Z80 Pack
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.
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.
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
for adventure enthusiasts. XC
16101 Simon Avery Collection
Quilled text adventures by the prolific Devon author, aka Romeo Squirrel. Nothing special, but a good introduction to the genre.
16103 Edmund Spicer Collection
A disc of largely unchallenging adventures.
16104 The mammoth Geno, plus Secrets of Ur, Blue Raider, and other adventures.
16105 Hitch-Hiker's Guide to Prague
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.
16200 Puzzle games galore, including several well-presented mindbenders from Germany's MOPS group.
16201 Crossword Compiler
Keith Mortimer's over-rated crossword utility and word games. 128
16202* Tetris Games
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?
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.
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
16302* Arcade classics including Invaders, Croco Magneto, Dripzone (a Breakout clone), and Pacman-with-a-difference Cyberboy.
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
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
written to demonstrate game creation systems.
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.
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
Masters of Space, by Stephen Lond Davis. XC
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.
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
for adventure enthusiasts. XC
16101 Simon Avery Collection
Quilled text adventures by the prolific Devon author, aka Romeo Squirrel. Nothing special, but a good introduction to the genre.
16103 Edmund Spicer Collection
A disc of largely unchallenging adventures.
16104 The mammoth Geno, plus Secrets of Ur, Blue Raider, and other adventures.
16105 Hitch-Hiker's Guide to Prague
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.
16200 Puzzle games galore, including several well-presented mindbenders from Germany's MOPS group.
16201 Crossword Compiler
Keith Mortimer's over-rated crossword utility and word games. 128
16202* Tetris Games
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?
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.
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
16302* Arcade classics including Invaders, Croco Magneto, Dripzone (a Breakout clone), and Pacman-with-a-difference Cyberboy.
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
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
written to demonstrate game creation systems.
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.
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
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.
17000 An introduction to overscan graphics (full screen, no border).
17100* Amiga Graphics
David Carter's famous compilation of pictures transferred from the Amiga. A slideshow of simply stunning quality.
17101* Amiga Graphics 2
Volume two of the classic slideshow.
17102 Digital Demo 7
17103 Peter Campbell Collection
Showcasing the bizarre sense of humour of the Comsoft boss and self-proclaimed babe magnet.
17104 Rock Show
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.
17106 Miscellaneous slideshows (or 'Diashows') from Germany.
17107 Pictures produced by members of the British CPC club WACCI.
17108 More WACCI 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.
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!
17112 Conspiracy Plus Slideshow
Digitised pictures in 16 shades of grey, for viewing on CPC Plus machines. Plus only
17114 Digitised and hand-drawn pictures by David Carter.
17115 Digitised and hand-drawn pictures by David Carter and Mark Chater.
17200 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.
17203 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.
17206 PowerPage clip art from the CPC SouthWest user group.
17207 Clip art for Stop Press and MicroDesign.
17208 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.
17211 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.
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
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
or coding a scrolltext, there's sure to be a font for you here.
17000 An introduction to overscan graphics (full screen, no border).
17100* Amiga Graphics
David Carter's famous compilation of pictures transferred from the Amiga. A slideshow of simply stunning quality.
17101* Amiga Graphics 2
Volume two of the classic slideshow.
17102 Digital Demo 7
17103 Peter Campbell Collection
Showcasing the bizarre sense of humour of the Comsoft boss and self-proclaimed babe magnet.
17104 Rock Show
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.
17106 Miscellaneous slideshows (or 'Diashows') from Germany.
17107 Pictures produced by members of the British CPC club WACCI.
17108 More WACCI 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.
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!
17112 Conspiracy Plus Slideshow
Digitised pictures in 16 shades of grey, for viewing on CPC Plus machines. Plus only
17114 Digitised and hand-drawn pictures by David Carter.
17115 Digitised and hand-drawn pictures by David Carter and Mark Chater.
17200 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.
17203 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.
17206 PowerPage clip art from the CPC SouthWest user group.
17207 Clip art for Stop Press and MicroDesign.
17208 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.
17211 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.
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
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
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.
18100 Simple demos by LDC, aka David Long of Demon PD.
18101 British demos.
18102 CRTC Collection
Demos by CRTC (Richard Fairhurst), including 1992's Inspiration demo and the MacBugs meeting demo.
18103 British demos.
18104 Demoware
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.
18106 Martin Young's impressive 4-bit samples, and Palm Coding's superlative Blip! Music compilation.
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.
18200 Terrific Demo
A classic megademo by Weee! and Thriller (Cadjo Clan), with some of the best music around. 128
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,
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
Early demos by the founders of CPC demo coding, including the Malibu/Logon collaboration, Amazing Demo.
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
18204 Paradise Demo
An accomplished, if predictable, megademo from Paradox.
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.
18206 French Classics 2
More examples of Gallic genius, including Malibu's head-spinning farewell, the Intox demo.
18207 Continental Classics
A snapshot of the demo scene in Germany and elsewhere, c. 1990. Best of all is KKB's imaginative First Demo.
18212 Voyage 1993
Formulaic megademo by Prodatron and Alien of BENG!. 128
18213 Prodatron Megademo
18214 NWC Collection
The innovative work of Danish demo coder Peter Sorensen, whose most recent release is entitled Unique (18218).
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
craze for 3D effects. Also includes Elmar Krieger's spectacular Chain Demo. 128
18216* Divine Megademo disc 1
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,
but contains some of the best CPC coding ever. Both discs needed. 128
18218 Unique
The long-awaited megademo by NWC of Unix, with new effects including an enormous sine scroll and starfield loader. 128
18300 Pleasure Zone
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
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
18100 Simple demos by LDC, aka David Long of Demon PD.
18101 British demos.
18102 CRTC Collection
Demos by CRTC (Richard Fairhurst), including 1992's Inspiration demo and the MacBugs meeting demo.
18103 British demos.
18104 Demoware
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.
18106 Martin Young's impressive 4-bit samples, and Palm Coding's superlative Blip! Music compilation.
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.
18200 Terrific Demo
A classic megademo by Weee! and Thriller (Cadjo Clan), with some of the best music around. 128
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,
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
Early demos by the founders of CPC demo coding, including the Malibu/Logon collaboration, Amazing Demo.
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
18204 Paradise Demo
An accomplished, if predictable, megademo from Paradox.
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.
18206 French Classics 2
More examples of Gallic genius, including Malibu's head-spinning farewell, the Intox demo.
18207 Continental Classics
A snapshot of the demo scene in Germany and elsewhere, c. 1990. Best of all is KKB's imaginative First Demo.
18212 Voyage 1993
Formulaic megademo by Prodatron and Alien of BENG!. 128
18213 Prodatron Megademo
18214 NWC Collection
The innovative work of Danish demo coder Peter Sorensen, whose most recent release is entitled Unique (18218).
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
craze for 3D effects. Also includes Elmar Krieger's spectacular Chain Demo. 128
18216* Divine Megademo disc 1
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,
but contains some of the best CPC coding ever. Both discs needed. 128
18218 Unique
The long-awaited megademo by NWC of Unix, with new effects including an enormous sine scroll and starfield loader. 128
18300 Pleasure Zone
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
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
-->
@ -272594,84 +272594,84 @@ AMSDOS software, 7
These discs are intended for Amstrad CPC and Plus computers.
19100 S.E.X. 1
English-language fanzine from Greece. 18
19101 C.E.F. 4/Fanzam 5
Unpretentious and little-known British disc fanzine.
19102 Donut Mag 1, Otto 1
The first issues of Tom Dean's lively disczine and Nicholas Campbell's more po-faced production.
19103 S.E.X. 2
The latest issue of the Greek fanzine.
19104 Amstrad User 6
19105 Amstrad User 7
Fanzine from Ireland. 128
19106 Donut Mag 2
Controversial but very enjoyable second issue of the Donut System fanzine.
19107 Otto 4
19108 Otto 3
Nicholas Campbell's fanzine, now incorporating Jonty Jones's After Dark.
19109 Ovation 2, CPC Telegramm 17
Worthy but dull Greek fanzine coupled with the latest issue of Germany's excellent dual-language newszine.
19110 Otto 5
The final issue.
19111* BTL 1
19112* BTL 2
19113* BTL 3
19114* BTL 4
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.
19121 EuroWACCI 1
A selection of classic articles from the WACCI paperzine in a freely distributable form for the European market.
19122 EuroWACCI 2
19125 ATM 1
19126 ATM 2
19127* ATM 3
Amstrad Technical Mag: an intriguing mixture of gossip and hardware tips from Roy Everett and Nigel Callcutt.
19128* Digital Press 3 disc 1
19129* Digital Press 3 disc 2
Informative and expansive French-German co-production. 128
19130 Impact 3, Otto 2
Fanzines by Tom Dean and Nicholas Campbell.
19131 Another World 1 & 2
19132 Another World 3 & 4
Richard Avery's simple disc fanzine.>
19200 Disc Full 5
19201 Disc Full 6
19202 Disc Full 7
Beautifully produced French-language disczine. Compatible with 6128 only.
19203 Ams'Dem 1
19204 Ams'Dem 3
19205 Z80 4
19206 Micro-Mag 5
19207 The Addams Fanz 1
19208 Disc Full 8
19209 Crack'n'Rom 7
19210 Micro-Mag/Press Fire 7
19211 Disc Full 10
French-language disczines.
19212 Dracula Fanz 4
19213 Demoniak 4
19214 Dracula Fanz 5 disc 1
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.
19300 Amsmail 1
A vintage German-language disczine.
19301 CPC Fastloader 4, Bad Mag 1
An issue of Prodatron's German-language fanzine plus the debut of notorious bilingual fanzine Bad Mag.
19302 CPC Fastloader 6
19303 Xtreme 1
The final issue of Prodatron's original disczine and the first fruit of his collaboration with Hypnomega. Mostly German-language.
19304 CPC Challenge 12
19305 Bad Mag 2
The second and final issue of the virulent Bad Mag.
19306* Xtreme 2
Probably the best of the "big name" fanzines, with flawless presentation and well-informed (bilingual) content.
19307 Xtreme 3, CPC Challenge 17
19309 Disc Mac Challenge 19/20
Hypnomega's popular document of German scene culture.
19310 Tribal Mag 7 disc 1
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.
19100 S.E.X. 1
English-language fanzine from Greece. 18
19101 C.E.F. 4/Fanzam 5
Unpretentious and little-known British disc fanzine.
19102 Donut Mag 1, Otto 1
The first issues of Tom Dean's lively disczine and Nicholas Campbell's more po-faced production.
19103 S.E.X. 2
The latest issue of the Greek fanzine.
19104 Amstrad User 6
19105 Amstrad User 7
Fanzine from Ireland. 128
19106 Donut Mag 2
Controversial but very enjoyable second issue of the Donut System fanzine.
19107 Otto 4
19108 Otto 3
Nicholas Campbell's fanzine, now incorporating Jonty Jones's After Dark.
19109 Ovation 2, CPC Telegramm 17
Worthy but dull Greek fanzine coupled with the latest issue of Germany's excellent dual-language newszine.
19110 Otto 5
The final issue.
19111* BTL 1
19112* BTL 2
19113* BTL 3
19114* BTL 4
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.
19121 EuroWACCI 1
A selection of classic articles from the WACCI paperzine in a freely distributable form for the European market.
19122 EuroWACCI 2
19125 ATM 1
19126 ATM 2
19127* ATM 3
Amstrad Technical Mag: an intriguing mixture of gossip and hardware tips from Roy Everett and Nigel Callcutt.
19128* Digital Press 3 disc 1
19129* Digital Press 3 disc 2
Informative and expansive French-German co-production. 128
19130 Impact 3, Otto 2
Fanzines by Tom Dean and Nicholas Campbell.
19131 Another World 1 & 2
19132 Another World 3 & 4
Richard Avery's simple disc fanzine.>
19200 Disc Full 5
19201 Disc Full 6
19202 Disc Full 7
Beautifully produced French-language disczine. Compatible with 6128 only.
19203 Ams'Dem 1
19204 Ams'Dem 3
19205 Z80 4
19206 Micro-Mag 5
19207 The Addams Fanz 1
19208 Disc Full 8
19209 Crack'n'Rom 7
19210 Micro-Mag/Press Fire 7
19211 Disc Full 10
French-language disczines.
19212 Dracula Fanz 4
19213 Demoniak 4
19214 Dracula Fanz 5 disc 1
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.
19300 Amsmail 1
A vintage German-language disczine.
19301 CPC Fastloader 4, Bad Mag 1
An issue of Prodatron's German-language fanzine plus the debut of notorious bilingual fanzine Bad Mag.
19302 CPC Fastloader 6
19303 Xtreme 1
The final issue of Prodatron's original disczine and the first fruit of his collaboration with Hypnomega. Mostly German-language.
19304 CPC Challenge 12
19305 Bad Mag 2
The second and final issue of the virulent Bad Mag.
19306* Xtreme 2
Probably the best of the "big name" fanzines, with flawless presentation and well-informed (bilingual) content.
19307 Xtreme 3, CPC Challenge 17
19309 Disc Mac Challenge 19/20
Hypnomega's popular document of German scene culture.
19310 Tribal Mag 7 disc 1
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.
-->
@ -273610,44 +273610,44 @@ These discs are intended for Amstrad CPC and Plus computers.
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.
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.
21101 Express Writer and Bradford, two word-processors with high quality printout options.
21400* Printmaster
Ingenious poster and card design package, with an integral font and clip art library. Easy to use and capable of superb results.
21600 GigaCAD
Graphical CAD system from Germany. CP/M 2.2 only
22000 Miscellaneous utilities including date-stamping, print processing, and easy menu creation.
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.
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.
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.
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.
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.
23205 XRAS bulletin-board system.
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
is the program with which the manufacturers of Windows first made their name.
24200 XLisp
24300 JRT Pascal disc 1
24301 JRT Pascal disc 2
An interpreted version of the language with extensive documentation.
24302 Small C
24303 Small C source
Interprets a subset of the system programming language.
24400 Z80dis
Flexible Z80 disassembler.
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.
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
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.
21101 Express Writer and Bradford, two word-processors with high quality printout options.
21400* Printmaster
Ingenious poster and card design package, with an integral font and clip art library. Easy to use and capable of superb results.
21600 GigaCAD
Graphical CAD system from Germany. CP/M 2.2 only
22000 Miscellaneous utilities including date-stamping, print processing, and easy menu creation.
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.
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.
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.
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.
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.
23205 XRAS bulletin-board system.
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
is the program with which the manufacturers of Windows first made their name.
24200 XLisp
24300 JRT Pascal disc 1
24301 JRT Pascal disc 2
An interpreted version of the language with extensive documentation.
24302 Small C
24303 Small C source
Interprets a subset of the system programming language.
24400 Z80dis
Flexible Z80 disassembler.
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.
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
-->

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
<!--
Some of these were normal Videopac G7000 carts with enhanced graphics for the Videopac Plus G7400 and the unreleased
Odyssey³ Command Center
-->

View File

@ -24480,7 +24480,7 @@
<dataarea name="rom" size="245760">
<rom name="x (usa) (proto).bin" size="245760" crc="cd555712" sha1="b1c5b60b82aaa0b824f7bf67fc8f111377ccfb6a" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- unconfirmed size -->
</dataarea>
</part>
</software>

View File

@ -162,7 +162,7 @@ Undumped Pirates:
<dataarea name="rom" size="524288">
<rom name="3-d ultra pinball - thrillride (usa).bin" size="524288" crc="1766e558" sha1="2b704415803cf6172a1d07912b1155c51576a511" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192">
<dataarea name="nvram" size="8192">
</dataarea>
</part>
</software>
@ -11870,7 +11870,7 @@ Undumped Pirates:
<dataarea name="rom" size="4194304">
<rom name="love hina pocket (japan).bin" size="4194304" crc="1c877abd" sha1="912c09f99bdae6e7fcd62d0c6f727e5fff93db70" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192">
<dataarea name="nvram" size="8192">
</dataarea>
</part>
</software>
@ -18682,7 +18682,7 @@ Undumped Pirates:
<dataarea name="rom" size="131072">
<rom name="roadsters '98 (usa) (proto).bin" size="131072" crc="fe2995a1" sha1="30a28cd5e020e98b0e7016b5ccda5bc0972a0ac9" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>
@ -25007,7 +25007,7 @@ Undumped Pirates:
<dataarea name="rom" size="1048576">
<rom name="harry potter (unl).bin" size="1048576" crc="5bebe333" sha1="dfd0693315da697240b510776695162880a75a82" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>
@ -25872,7 +25872,7 @@ Undumped Pirates:
<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" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>
@ -26091,7 +26091,7 @@ Undumped Pirates:
<dataarea name="rom" size="1048576">
<rom name="mark of the wolves (chi).bin" size="1048576" crc="219decf9" sha1="27cffc9c0224a7bb2e0751073a27670017211c87" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>
@ -26125,7 +26125,7 @@ Undumped Pirates:
<dataarea name="rom" size="1048576">
<rom name="e fighter hot (chi).bin" size="1048576" crc="8fa2539d" sha1="93a3716f8f41b89bee795af6e8f6fdddfcd8acf1" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>
@ -26161,7 +26161,7 @@ Undumped Pirates:
<dataarea name="rom" size="1048576">
<rom name="harry potter 3 (chi).bin" size="1048576" crc="4ea2c869" sha1="739c0e5dc0efd4ddb912236a6f630c3d6987d064" offset="000000" />
</dataarea>
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
<dataarea name="nvram" size="8192"> <!-- Unconfirmed size -->
</dataarea>
</part>
</software>

View File

@ -835,20 +835,20 @@ Missing files come here
</dataarea>
</part>
</software>
<!--
This is not a real dump, it was constructed using WinImage for use with MESS
Also circulating with CRC fb591430
<software name="ptombs">
<description>Pharaoh's Tomb (Shareware)</description>
<year>1994</year>
<publisher>Apogee</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="368640">
<rom name="pharaoh's tomb (shareware).img" size="368640" crc="b1f4dbf6" sha1="d3c4ae0b6ac6b5233c4970805c8e4f2b89f9c57a" offset="0" />
</dataarea>
</part>
</software>
This is not a real dump, it was constructed using WinImage for use with MESS
Also circulating with CRC fb591430
<software name="ptombs">
<description>Pharaoh's Tomb (Shareware)</description>
<year>1994</year>
<publisher>Apogee</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="368640">
<rom name="pharaoh's tomb (shareware).img" size="368640" crc="b1f4dbf6" sha1="d3c4ae0b6ac6b5233c4970805c8e4f2b89f9c57a" offset="0" />
</dataarea>
</part>
</software>
-->
<software name="raptor12">

View File

@ -11,7 +11,7 @@ Games:
Goofy Golf*
Combat!*
Superbowl
Football* (QQA-308)
Football* (QQA-308)
Astro-Logic*
Hammurabi*
Life*
@ -22,19 +22,19 @@ Thinkcards*
Computer Quiz
Data Sets for use with Computer Quiz:
TV Trivia The World of Books
Famous People World Geography
Sports Scene American History
Music Masters Complete the Quote
Current Exents Total Trivia
Popular Pairs Pseudonyms
The Sciences Famous Firsts
Who Said It? All About Animals
The Movies The Human Body
TV Trivia The World of Books
Famous People World Geography
Sports Scene American History
Music Masters Complete the Quote
Current Exents Total Trivia
Popular Pairs Pseudonyms
The Sciences Famous Firsts
Who Said It? All About Animals
The Movies The Human Body
Programming Aids:
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 Monitor
Bombs Away! Programming Tutorial
@ -89,7 +89,7 @@ Alignment Tape (Micro Video)
</dataarea>
</part>
</software>
<!-- Tape 102 -->
<software name="startrck">
<description>Star Track</description>
@ -101,7 +101,7 @@ Alignment Tape (Micro Video)
</dataarea>
</part>
</software>
<!-- Tape 103 -->
<software name="concentr">
<description>Concentration</description>

View File

@ -2,7 +2,7 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="m20" description="Olivetti M20 floppies">
<!--
<!--
General usage: if not bootable disk, check content with VL, then launch the .cmd files
@ -131,8 +131,8 @@
</software>
<software name="msdos20" supported="no">
<!-- "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" -->
<!-- "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" -->
<description>MS-DOS 2.0</description>
<year>19??</year>
<publisher>Microsoft</publisher>

View File

@ -14,37 +14,37 @@ The "rc" feature is used to indicate the source of the clock signal
-->
<!--
<software name="alienrdr">
<description>Alien Raiders</description>
<year>1981</year>
<publisher>Milton Bradley</publisher>
<software name="alienrdr">
<description>Alien Raiders</description>
<year>1981</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34009-n1" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34009-n1" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<!--
<software name="Baseball">
<description>Baseball</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<software name="Baseball">
<description>Baseball</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="mp3479-n1nll_4063" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="mp3479-n1nll_4063" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<software name="blckbstr">
@ -63,20 +63,20 @@ The "rc" feature is used to indicate the source of the clock signal
</software>
<!--
<software name="bowling">
<description>Bowling</description>
<year>1979</year>
<publisher>Milton Bradley</publisher>
<software name="bowling">
<description>Bowling</description>
<year>1979</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<!- - also seen with 4952 REV-A - ->
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="mp3475nll_4972" size="2048" crc="" sha1="" offset="0" />
<part name="cart" interface="microvision_cart">
<!- - also seen with 4952 REV-A - ->
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="mp3475nll_4972" size="2048" crc="" sha1="" offset="0" />
</software>
</software>
-->
<software name="connect4">
@ -95,20 +95,20 @@ The "rc" feature is used to indicate the source of the clock signal
</software>
<!--
<software name="cosmichu">
<description>Cosmic hunter</description>
<year>1981</year>
<publisher>Milton Bradley</publisher>
<software name="cosmichu">
<description>Cosmic hunter</description>
<year>1981</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34017-n1" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34017-n1" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<software name="mindbstr">
@ -142,54 +142,54 @@ The "rc" feature is used to indicate the source of the clock signal
</software>
<!--
<software name="pinball">
<description>Pinball</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<software name="pinball">
<description>Pinball</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/21.0K" />
<dataarea name="rom" size="2048">
<rom name="mp3455nll_4974" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/21.0K" />
<dataarea name="rom" size="2048">
<rom name="mp3455nll_4974" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<!--
<software name="seaduel">
<description>Sea Duel</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<software name="seaduel">
<description>Sea Duel</description>
<year>1980</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/39.4K" />
<dataarea name="rom" size="2048">
<rom name="mp3496-n1_4064" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="4952-79 REV-B" />
<feature name="paddle" value="no" />
<feature name="rc" value="100pf/39.4K" />
<dataarea name="rom" size="2048">
<rom name="mp3496-n1_4064" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<!--
<software name="sprblock">
<description>Super Blockbuster</description>
<year>1982</year>
<publisher>Milton Bradley</publisher>
<software name="sprblock">
<description>Super Blockbuster</description>
<year>1982</year>
<publisher>Milton Bradley</publisher>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="7924952D02" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34047-n2ll_4241" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
<part name="cart" interface="microvision_cart">
<feature name="pcb" value="7924952D02" />
<feature name="paddle" value="yes" />
<feature name="rc" value="100pf/23.2K" />
<dataarea name="rom" size="2048">
<rom name="m34047-n2ll_4241" size="2048" crc="" sha1="" offset="0" />
</dataarea>
</part>
</software>
-->
<software name="vegasslt">

View File

@ -14,7 +14,7 @@
</dataarea>
</part>
</software>
<software name="6809assa" cloneof="6809ass">
<description>6809 Assembler v1.0 (Alt)</description>
<year>1984</year>
@ -26,7 +26,7 @@
</dataarea>
</part>
</software>
<software name="6809mac" cloneof="6809ass">
<description>6809 Macro Assembler v3.6 (Hacked)</description>
<year>1984</year>
@ -38,7 +38,7 @@
</dataarea>
</part>
</software>
<software name="agenda">
<description>Agenda</description>
<year>1984</year>
@ -50,7 +50,7 @@
</dataarea>
</part>
</software>
<software name="airbus">
<description>Airbus</description>
<year>1984</year>
@ -62,7 +62,7 @@
</dataarea>
</part>
</software>
<software name="airbusa" cloneof="airbus">
<description>Airbus (Alt)</description>
<year>1984</year>
@ -74,7 +74,7 @@
</dataarea>
</part>
</software>
<software name="blitz">
<description>Blitz!</description>
<year>1984</year>
@ -86,7 +86,7 @@
</dataarea>
</part>
</software>
<software name="blitza" cloneof="blitz">
<description>Blitz! (Alt)</description>
<year>1984</year>
@ -98,7 +98,7 @@
</dataarea>
</part>
</software>
<software name="carnet">
<description>Carnet d'Adresses</description>
<year>1984</year>
@ -110,7 +110,7 @@
</dataarea>
</part>
</software>
<software name="clrcalc">
<description>Colorcalc</description>
<year>1985</year>
@ -122,7 +122,7 @@
</dataarea>
</part>
</software>
<software name="clrpaint">
<description>Colopaint</description>
<year>1985</year>
@ -134,7 +134,7 @@
</dataarea>
</part>
</software>
<software name="controle">
<description>Controle Aerien</description>
<year>1984</year>
@ -146,7 +146,7 @@
</dataarea>
</part>
</software>
<software name="desass">
<description>Desassembleur Dump &amp; Patch v4.0 (PD)</description>
<year>1986</year>
@ -158,7 +158,7 @@
</dataarea>
</part>
</software>
<software name="enigma">
<description>Enimatika</description>
<year>1984</year>
@ -170,8 +170,8 @@
</dataarea>
</part>
</software>
<software name="gemini">
<description>Gemini</description>
<year>1982</year>
@ -182,8 +182,8 @@
<rom name="gemini (1982)(vifi-nathan)(fr).m5" size="16384" crc="cc30bba2" sha1="67be5d9736c50d6c8c4237eec483b0fef1574a4a" offset="0x0000" />
</dataarea>
</part>
</software>
</software>
<software name="glouton">
<description>Blitz (Fra)</description>
<year>1986</year>
@ -195,7 +195,7 @@
</dataarea>
</part>
</software>
<software name="gloutona" cloneof="glouton">
<description>Blitz (Fra, Alt)</description>
<year>1986</year>
@ -207,7 +207,7 @@
</dataarea>
</part>
</software>
<software name="grille">
<description>La Grille</description>
<year>1985</year>
@ -219,7 +219,7 @@
</dataarea>
</part>
</software>
<software name="jane">
<description>Jane</description>
<year>1985</year>
@ -231,7 +231,7 @@
</dataarea>
</part>
</software>
<software name="logo">
<description>LOGO v1.0</description>
<year>1984</year>
@ -243,7 +243,7 @@
</dataarea>
</part>
</software>
<software name="logoa" cloneof="logo">
<description>LOGO v1.0 (Alt)</description>
<year>1984</year>
@ -255,7 +255,7 @@
</dataarea>
</part>
</software>
<software name="lsegedl">
<description>LSEG-EDL v3.2</description>
<year>1985</year>
@ -267,7 +267,7 @@
</dataarea>
</part>
</software>
<software name="maison">
<description>La Maison d'Amedee</description>
<year>1984</year>
@ -279,7 +279,7 @@
</dataarea>
</part>
</software>
<software name="melimemo">
<description>Melimemot</description>
<year>1983</year>
@ -291,7 +291,7 @@
</dataarea>
</part>
</software>
<software name="melodia">
<description>Melodia</description>
<year>1982</year>
@ -327,7 +327,7 @@
</dataarea>
</part>
</software>
<software name="peche">
<description>La Peche a la Barre</description>
<year>1984</year>
@ -339,7 +339,7 @@
</dataarea>
</part>
</software>
<software name="pictor">
<description>Pictor</description>
<year>1983</year>
@ -351,7 +351,7 @@
</dataarea>
</part>
</software>
<software name="trap">
<description>Trap</description>
<year>1982</year>
@ -375,6 +375,6 @@
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -990,7 +990,7 @@ kept for now until finding out what those bytes affect...
<description>Super Laydock (The Links Network Version) (Jpn)</description>
<year>1987</year>
<publisher>T&amp;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">
<feature name="pcb" value="TA6228" />
<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>
<year></year>
<publisher>Bit²</publisher>
<info name="alt_title" value="シンセサウルス" />
<info name="alt_title" value="シンセサウルス" />
<part name="cart" interface="msx_cart">
<feature name="pcb" value="TAS-1M-008S" />
<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>
<year></year>
<publisher>Bit²</publisher>
<info name="alt_title" value="シンセサウルス" />
<info name="alt_title" value="シンセサウルス" />
<part name="cart" interface="msx_cart">
<feature name="pcb" value="TAS-2M008-E2M" />
<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>
<year>1986</year>
<publisher>Toshiba EMI</publisher>
<info name="serial" value=" PS-2019G" />
<info name="serial" value=" PS-2019G" />
<info name="alt_title" value="スカーレット7" />
<part name="cart" interface="msx_cart">
<feature name="mapper" value="NOMAPPER" />
@ -11841,7 +11841,7 @@ kept for now until finding out what those bytes affect...
</part>
</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?? -->
<software name="supercol">
<description>Super Columns (Kor)</description>
@ -12433,7 +12433,7 @@ kept for now until finding out what those bytes affect...
<description>Thunderbolt (Jpn)</description>
<year>1986</year>
<publisher>Pixel</publisher>
<info name="serial" value=" AR-8601" />
<info name="serial" value=" AR-8601" />
<info name="alt_title" value="サンダーボルト" />
<part name="cart" interface="msx_cart">
<feature name="mapper" value="NOMAPPER" />
@ -12447,7 +12447,7 @@ kept for now until finding out what those bytes affect...
<description>Thunderbolt (Jpn, Alt)</description>
<year>1986</year>
<publisher>Pixel</publisher>
<info name="serial" value=" AR-8601" />
<info name="serial" value=" AR-8601" />
<info name="alt_title" value="サンダーボルト" />
<part name="cart" interface="msx_cart">
<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>
<year>1986</year>
<publisher>Pixel</publisher>
<info name="serial" value=" AR-8601" />
<info name="serial" value=" AR-8601" />
<info name="alt_title" value="サンダーボルト" />
<part name="cart" interface="msx_cart">
<feature name="mapper" value="NOMAPPER" />
@ -14427,7 +14427,7 @@ kept for now until finding out what those bytes affect...
</software>
<software name="123a">
<description>123 (Arab, Alt)</description>
<description>123 (Arab, Alt)</description>
<year>1986</year>
<publisher>Al Alamiah</publisher>
<info name="serial" value="P081" />

View File

@ -3,12 +3,12 @@
<softwarelist name="mz800_cass" description="Sharp MZ-800 cassettes">
<!--
List
MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwaltung
Address Data: Adressverwaltung
Advoka: )
Head Driver: } Spiele
Egg: )
MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwaltung
Address Data: Adressverwaltung
Advoka: )
Head Driver: } Spiele
Egg: )
-->
<!-- Games -->
@ -86,11 +86,11 @@ MZ-821 Sharp BASIC Trainer (Germany): Account Manager: Einnahmen/Ausgaben-Verwal
<year>19??</year>
<publisher>BBG Software</publisher>
<!--
<part name="cass1" interface="mz_cass">
<dataarea name="cass" size="16585">
<rom name="mucmac700.mzf" size="16585" crc="5a49451e" sha1="b4d3f23019df154e1a7bf5db32388dabf5f43c66" offset="0" />
</dataarea>
</part>
<part name="cass1" interface="mz_cass">
<dataarea name="cass" size="16585">
<rom name="mucmac700.mzf" size="16585" crc="5a49451e" sha1="b4d3f23019df154e1a7bf5db32388dabf5f43c66" offset="0" />
</dataarea>
</part>
-->
<part name="cass1" interface="mz_cass">
<dataarea name="cass" size="20896">

View File

@ -11,15 +11,15 @@ add serials for radiola and jopacs
-->
<!--
Undumped:
Spaans (spanish to dutch translator)
Spaans (spanish to dutch translator)
Crazy Horses
Protos:
Bastion youtube.com/watch?v=cFdmgs4r7_E
Catburglar youtube.com/watch?v=DDsWDFxy0oE
Himalaya youtube.com/watch?v=L_lvOs6EnA4
SoundTool youtube.com/watch?v=7JYn6B7rxqw
Terrahawks youtube.com/watch?v=AXk7OSA6NGg
Bastion youtube.com/watch?v=cFdmgs4r7_E
Catburglar youtube.com/watch?v=DDsWDFxy0oE
Himalaya youtube.com/watch?v=L_lvOs6EnA4
SoundTool youtube.com/watch?v=7JYn6B7rxqw
Terrahawks youtube.com/watch?v=AXk7OSA6NGg
http://www.ozyr.com/rene/PICS/protos.jpg
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)"/>
<part name="cart" interface="odyssey_cart">
<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>
</part>
</software>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="pet_cass" description="Commodore PET cassettes">
<software name="lunarlnd">
<description>Lunar Lander</description>
<year>197?</year>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<softwarelist name="plus4_cass" description="Commodore Plus/4 / C16 / C116 cassettes">
<software name="dtstar">
<description>Daley Thompson's Star Events</description>
<year>1985</year>

26138
hash/psx.xml

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@
</dataarea>
</part>
</software>
<software name="sp1">
<description>Signal Processing No. 1</description>
<year>198?</year>
@ -28,7 +28,7 @@
</dataarea>
</part>
</software>
<software name="sp2">
<description>Signal Processing No. 2 (FFT)</description>
<year>198?</year>
@ -56,7 +56,7 @@
</dataarea>
</part>
</software>
<software name="da">
<description>D/A Converter</description>
<year>198?</year>

View File

@ -14,5 +14,5 @@
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -14,7 +14,7 @@
</dataarea>
</part>
</software>
<software name="6809ass1" cloneof="6809ass2">
<description>6809 Assembler v1.0</description>
<year>1984</year>
@ -26,7 +26,7 @@
</dataarea>
</part>
</software>
<software name="airbus">
<description>Airbus</description>
<year>1984</year>
@ -38,7 +38,7 @@
</dataarea>
</part>
</software>
<software name="atomium">
<description>Atomium</description>
<year>1982</year>
@ -50,7 +50,7 @@
</dataarea>
</part>
</software>
<software name="basic">
<description>BASIC v1.0</description>
<year>1982</year>
@ -62,7 +62,7 @@
</dataarea>
</part>
</software>
<software name="blitz">
<description>Blitz</description>
<year>1984</year>
@ -74,7 +74,7 @@
</dataarea>
</part>
</software>
<software name="caractr2">
<description>Caractor II</description>
<year>1984</year>
@ -86,7 +86,7 @@
</dataarea>
</part>
</software>
<software name="caractor">
<description>Caractor</description>
<year>1983</year>
@ -98,7 +98,7 @@
</dataarea>
</part>
</software>
<software name="choplift">
<description>Choplifter</description>
<year>1982</year>
@ -110,7 +110,7 @@
</dataarea>
</part>
</software>
<software name="clrpaint">
<description>Colorpaint</description>
<year>1985</year>
@ -122,7 +122,7 @@
</dataarea>
</part>
</software>
<software name="controle">
<description>Controle Aerien</description>
<year>1984</year>
@ -134,7 +134,7 @@
</dataarea>
</part>
</software>
<software name="crypto">
<description>Crypto</description>
<year>1982</year>
@ -158,7 +158,7 @@
</dataarea>
</part>
</software>
<software name="gemini">
<description>Gemini</description>
<year>1982</year>
@ -169,8 +169,8 @@
<rom name="gemini (1982)(vifi-nathan)(fr).m7" size="4096" crc="c20c1d82" sha1="92ee16ef7d14b241e8df390b0e6192810a8eda40" offset="0x0000" />
</dataarea>
</part>
</software>
</software>
<software name="gerfiche">
<description>Gerez vos Fiches</description>
<year>1983</year>
@ -181,8 +181,8 @@
<rom name="gerez vos fiches (1983)(answare)(fr).m7" size="8192" crc="e9dacb6b" sha1="a83ffd9e28387e57aaf5acf4e7294c045c1e4c7f" offset="0x0000" />
</dataarea>
</part>
</software>
</software>
<software name="gerteque">
<description>Gerez Votre Bibliotheque-Discotheque-Videotheque</description>
<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" />
</dataarea>
</part>
</software>
</software>
<software name="chiflett">
<description>Les Chiffres et les Lettres</description>
<year>198?</year>
@ -206,7 +206,7 @@
</dataarea>
</part>
</software>
<software name="logicod">
<description>Logicod</description>
<year>1982</year>
@ -218,7 +218,7 @@
</dataarea>
</part>
</software>
<software name="logo">
<description>LOGO v1.0</description>
<year>1984</year>
@ -230,7 +230,7 @@
</dataarea>
</part>
</software>
<software name="melodia">
<description>Melodia</description>
<year>1982</year>
@ -266,7 +266,7 @@
</dataarea>
</part>
</software>
<software name="pictor">
<description>Pictor</description>
<year>1982</year>
@ -278,7 +278,7 @@
</dataarea>
</part>
</software>
<software name="prolog">
<description>Prolog v1.0</description>
<year>1986</year>
@ -290,7 +290,7 @@
</dataarea>
</part>
</software>
<software name="quest">
<description>Quest</description>
<year>1983</year>
@ -302,7 +302,7 @@
</dataarea>
</part>
</software>
<software name="scriptor">
<description>Scriptor</description>
<year>1984</year>
@ -314,7 +314,7 @@
</dataarea>
</part>
</software>
<software name="threshld">
<description>Threshold</description>
<year>1984</year>

View File

@ -2,7 +2,7 @@
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!-- based on vic20tapes.org dumps -->
<softwarelist name="vic1001_cass" description="Commodore VIC-1001 / VIC-20 cassettes">
<software name="3dmaze">
<description>3D Maze</description>
<year>1984</year>

View File

@ -93,7 +93,7 @@ enum
};
/* Coprocessor-related macros */
#define COPRO_TLB_BASE arm->tlbBase
#define COPRO_TLB_BASE arm->tlbBase
#define COPRO_TLB_BASE_MASK 0xffffc000
#define COPRO_TLB_VADDR_FLTI_MASK 0xfff00000
#define COPRO_TLB_VADDR_FLTI_MASK_SHIFT 18
@ -117,7 +117,7 @@ enum
#define COPRO_TLB_SECTION_TABLE 2
#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_ADDRFAULT_EN 0x00000002
#define COPRO_CTRL_DCACHE_EN 0x00000004
@ -143,12 +143,12 @@ enum
#define COPRO_DOMAIN_ACCESS_CONTROL arm->domainAccessControl
#define COPRO_FAULT_STATUS_D arm->faultStatus[0]
#define COPRO_FAULT_STATUS_P arm->faultStatus[1]
#define COPRO_FAULT_STATUS_D arm->faultStatus[0]
#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 */
#define ARM7COPRO_REGS \

File diff suppressed because it is too large Load Diff

View File

@ -42,22 +42,22 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
| HandleALUNZFlags(rd))); \
R15 += 2;
#define DRCHandleThumbALUAddFlags(rd, rn, op2) \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
DRCHandleALUNZFlags(rd); \
UML_XOR(block, I1, rn, ~0); \
UML_CMP(block, I1, op2); \
UML_MOVc(block, COND_B, I1, C_BIT); \
UML_MOVc(block, COND_AE, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_XOR(block, I1, rn, op2); \
UML_XOR(block, I2, rn, rd); \
UML_AND(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I1, V_BIT); \
UML_MOVc(block, COND_Z, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
#define DRCHandleThumbALUAddFlags(rd, rn, op2) \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
DRCHandleALUNZFlags(rd); \
UML_XOR(block, I1, rn, ~0); \
UML_CMP(block, I1, op2); \
UML_MOVc(block, COND_B, I1, C_BIT); \
UML_MOVc(block, COND_AE, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_XOR(block, I1, rn, op2); \
UML_XOR(block, I2, rn, rd); \
UML_AND(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I1, V_BIT); \
UML_MOVc(block, COND_Z, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
UML_ADD(block, DRC_PC, DRC_PC, 2);
#define HandleALUSubFlags(rd, rn, op2) \
@ -75,31 +75,31 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
| HandleALUNZFlags(rd))); \
R15 += 2;
#define DRCHandleThumbALUSubFlags(rd, rn, op2) \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
DRCHandleALUNZFlags(rd); \
UML_XOR(block, I1, rn, op2); \
UML_XOR(block, I2, rn, rd); \
UML_AND(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I1, V_BIT); \
UML_MOVc(block, COND_Z, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
UML_AND(block, I0, rd, 1 << 31); \
UML_AND(block, I1, op2, 1 << 31); \
UML_AND(block, I2, rn, 1 << 31); \
UML_XOR(block, I2, I2, ~0); \
UML_AND(block, I1, I1, I2); \
UML_AND(block, I2, I2, I0); \
UML_OR(block, I1, I1, I2); \
UML_AND(block, I2, op2, 1 << 31); \
UML_AND(block, I2, I2, I0); \
UML_OR(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I0, C_MASK); \
UML_MOVc(block, COND_Z, I0, 0); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
#define DRCHandleThumbALUSubFlags(rd, rn, op2) \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | V_MASK | C_MASK)); \
DRCHandleALUNZFlags(rd); \
UML_XOR(block, I1, rn, op2); \
UML_XOR(block, I2, rn, rd); \
UML_AND(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I1, V_BIT); \
UML_MOVc(block, COND_Z, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
UML_AND(block, I0, rd, 1 << 31); \
UML_AND(block, I1, op2, 1 << 31); \
UML_AND(block, I2, rn, 1 << 31); \
UML_XOR(block, I2, I2, ~0); \
UML_AND(block, I1, I1, I2); \
UML_AND(block, I2, I2, I0); \
UML_OR(block, I1, I1, I2); \
UML_AND(block, I2, op2, 1 << 31); \
UML_AND(block, I2, I2, I0); \
UML_OR(block, I1, I1, I2); \
UML_TEST(block, I1, 1 << 31); \
UML_MOVc(block, COND_NZ, I0, C_MASK); \
UML_MOVc(block, COND_Z, I0, 0); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
UML_ADD(block, DRC_PC, DRC_PC, 2);
/* Set NZC flags for logical operations. */
@ -109,11 +109,11 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
#define HandleALUNZFlags(rd) \
(((rd) & SIGN_BIT) | ((!(rd)) << Z_BIT))
#define DRCHandleALUNZFlags(rd) \
UML_AND(block, I0, rd, SIGN_BIT); \
UML_CMP(block, rd, 0); \
UML_MOVc(block, COND_E, I1, 1); \
UML_MOVc(block, COND_NE, I1, 0); \
#define DRCHandleALUNZFlags(rd) \
UML_AND(block, I0, rd, SIGN_BIT); \
UML_CMP(block, rd, 0); \
UML_MOVc(block, COND_E, I1, 1); \
UML_MOVc(block, COND_NE, I1, 0); \
UML_ROLINS(block, I0, I1, Z_BIT, 1 << Z_BIT);
// Long ALU Functions use bit 63
@ -127,23 +127,23 @@ extern void SwitchMode(arm_state *arm, int cpsr_mode_val);
| (((sc) != 0) << C_BIT))); \
R15 += 4;
#define DRC_RD mem(&GET_REGISTER(arm, rd))
#define DRC_RS mem(&GET_REGISTER(arm, rs))
#define DRC_CPSR mem(&GET_CPSR)
#define DRC_PC mem(&R15)
#define DRC_REG(i) mem(&arm->r[(i)]);
#define DRC_RD mem(&GET_REGISTER(arm, rd))
#define DRC_RS mem(&GET_REGISTER(arm, rs))
#define DRC_CPSR mem(&GET_CPSR)
#define DRC_PC mem(&R15)
#define DRC_REG(i) mem(&arm->r[(i)]);
#define DRCHandleALULogicalFlags(rd, sc) \
if (insn & INSN_S) \
{ \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | C_MASK); \
DRCHandleALUNZFlags(rd); \
UML_TEST(block, sc, ~0); \
UML_MOVc(block, COND_Z, I1, C_BIT); \
UML_MOVc(block, COND_NZ, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
} \
#define DRCHandleALULogicalFlags(rd, sc) \
if (insn & INSN_S) \
{ \
UML_AND(block, DRC_CPSR, DRC_CPSR, ~(N_MASK | Z_MASK | C_MASK); \
DRCHandleALUNZFlags(rd); \
UML_TEST(block, sc, ~0); \
UML_MOVc(block, COND_Z, I1, C_BIT); \
UML_MOVc(block, COND_NZ, I1, 0); \
UML_OR(block, I0, I0, I1); \
UML_OR(block, DRC_CPSR, DRC_CPSR, I0); \
} \
UML_ADD(block, DRC_PC, DRC_PC, 4);
void set_cpsr( arm_state *arm, UINT32 val);

View File

@ -8,149 +8,149 @@
arm7thumb_drcophandler drcthumb_handler[0x40*0x10] =
{
// #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_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_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,
// #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_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_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_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_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_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13, drctg01_13,
// #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_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_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,
// #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_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_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,
//#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_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_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_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_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_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)
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_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_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_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_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_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_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_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,
//#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_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_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,
//#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_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_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,
// #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_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_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,
// #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_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_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,
// #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_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_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,
// #define THUMB_STACKOP_TYPE ((UINT16)0x0f00)
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_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_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_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_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_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_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_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,
// #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_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_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,
// #define THUMB_COND_TYPE ((UINT16)0x0f00)
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_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_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_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_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_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_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_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,
// #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_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_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,
// #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_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_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,
};
/* 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);
}
#endif // ARM7_USE_DRC
#endif // ARM7_USE_DRC

View File

@ -287,7 +287,7 @@ OBJDIRS += $(CPUOBJ)/es5510
CPUOBJS += $(CPUOBJ)/es5510/es5510.o
endif
$(CPUOBJ)/es5510.o: $(CPUSRC)/es5510/es5510.c \
$(CPUOBJ)/es5510.o: $(CPUSRC)/es5510/es5510.c \
$(CPUSRC)/es5510/es5510.h

View File

@ -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)
: cpu_device(mconfig, DSP16, "DSP16", tag, owner, clock),
m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1),
m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1),
m_i(0),
m_pc(0),
m_pt(0),
m_pr(0),
m_pi(0),
m_j(0),
m_k(0),
m_rb(0),
m_re(0),
m_r0(0),
m_r1(0),
m_r2(0),
m_r3(0),
m_x(0),
m_y(0),
m_p(0),
m_a0(0),
m_a1(0),
m_auc(0),
m_psw(0),
m_c0(0),
m_c1(0),
m_c2(0),
m_sioc(0),
m_srta(0),
m_sdx(0),
m_pioc(0),
m_pdx0(0),
m_pdx1(0),
m_ppc(0),
m_cacheStart(CACHE_INVALID),
m_cacheEnd(CACHE_INVALID),
m_cacheRedoNextPC(CACHE_INVALID),
m_cacheIterations(0),
m_program(NULL),
m_data(NULL),
m_direct(NULL),
m_icount(0)
m_program_config("program", ENDIANNESS_LITTLE, 16, 16, -1),
m_data_config("data", ENDIANNESS_LITTLE, 16, 16, -1),
m_i(0),
m_pc(0),
m_pt(0),
m_pr(0),
m_pi(0),
m_j(0),
m_k(0),
m_rb(0),
m_re(0),
m_r0(0),
m_r1(0),
m_r2(0),
m_r3(0),
m_x(0),
m_y(0),
m_p(0),
m_a0(0),
m_a1(0),
m_auc(0),
m_psw(0),
m_c0(0),
m_c1(0),
m_c2(0),
m_sioc(0),
m_srta(0),
m_sdx(0),
m_pioc(0),
m_pdx0(0),
m_pdx1(0),
m_ppc(0),
m_cacheStart(CACHE_INVALID),
m_cacheEnd(CACHE_INVALID),
m_cacheRedoNextPC(CACHE_INVALID),
m_cacheIterations(0),
m_program(NULL),
m_data(NULL),
m_direct(NULL),
m_icount(0)
{
// Allocate & setup
}
@ -195,8 +195,8 @@ void dsp16_device::device_reset()
const address_space_config *dsp16_device::memory_space_config(address_spacenum spacenum) const
{
return (spacenum == AS_PROGRAM) ? &m_program_config :
(spacenum == AS_DATA) ? &m_data_config :
NULL;
(spacenum == AS_DATA) ? &m_data_config :
NULL;
}
@ -325,7 +325,7 @@ void dsp16_device::execute_run()
do
{
// 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);
// instruction fetch & execute

View File

@ -55,7 +55,7 @@ protected:
// CPU registers
// ROM Address Arithmetic Unit (XAAU)
UINT16 m_i; // 12 bits
UINT16 m_i; // 12 bits
UINT16 m_pc;
UINT16 m_pt;
UINT16 m_pr;
@ -73,9 +73,9 @@ protected:
UINT16 m_x;
UINT32 m_y;
UINT32 m_p;
UINT64 m_a0; // 36 bits
UINT64 m_a1; // 36 bits
UINT8 m_auc; // 6 bits
UINT64 m_a0; // 36 bits
UINT64 m_a1; // 36 bits
UINT8 m_auc; // 6 bits
UINT16 m_psw;
UINT8 m_c0;
UINT8 m_c1;
@ -85,8 +85,8 @@ protected:
UINT16 m_srta;
UINT16 m_sdx;
UINT16 m_pioc;
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_pdx0; // pdx0 & pdx1 refer to the same physical register (page 6-1)
UINT16 m_pdx1; // but we keep them seperate for logic's sake.
// internal stuff
UINT16 m_ppc;
@ -143,12 +143,12 @@ extern const device_type DSP16;
enum
{
DSP16_I, // ROM Address Arithmetic Unit (XAAU)
DSP16_I, // ROM Address Arithmetic Unit (XAAU)
DSP16_PC,
DSP16_PT,
DSP16_PR,
DSP16_PI,
DSP16_J, // RAM Address Arithmetic Unit (YAAU)
DSP16_J, // RAM Address Arithmetic Unit (YAAU)
DSP16_K,
DSP16_RB,
DSP16_RE,
@ -156,7 +156,7 @@ enum
DSP16_R1,
DSP16_R2,
DSP16_R3,
DSP16_X, // Data Arithmetic Unit (DAU)
DSP16_X, // Data Arithmetic Unit (DAU)
DSP16_Y,
DSP16_P,
DSP16_A0,
@ -170,8 +170,8 @@ enum
DSP16_SRTA,
DSP16_SDX,
DSP16_PIOC,
DSP16_PDX0,
DSP16_PDX1
DSP16_PDX0,
DSP16_PDX1
};

View File

@ -234,8 +234,8 @@ bool disasmSIField(const UINT8& SI)
{
switch (SI)
{
case 0x00: return 0; // Not a software interrupt
case 0x01: return 1; // Software Interrupt
case 0x00: return 0; // Not a software interrupt
case 0x01: return 1; // Software Interrupt
}
return false;
}
@ -505,7 +505,7 @@ CPU_DISASSEMBLE( dsp16a )
const UINT8 R = (op & 0x03f0) >> 4;
astring yString = disasmYField(Y);
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());
break;
}

View File

@ -49,24 +49,24 @@ bool dsp16_device::conditionTest(const UINT8& CON)
{
switch (CON)
{
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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)
default: logerror("Unrecognized condition at PC=0x%04x\n", m_pc); break;
}
return false;
@ -112,11 +112,11 @@ void* dsp16_device::registerFromRTable(const UINT8 &R)
case 0x10: return (void*)&m_x;
case 0x11: return (void*)&m_y;
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 0x15: return (void*)&m_c0; // sign extended
case 0x16: return (void*)&m_c1; // sign extended
case 0x17: return (void*)&m_c2; // sign extended
case 0x15: return (void*)&m_c0; // sign extended
case 0x16: return (void*)&m_c1; // sign extended
case 0x17: return (void*)&m_c2; // sign extended
case 0x18: return (void*)&m_sioc;
case 0x19: return (void*)&m_srta;
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;
//switch (D)
//{
// case 0x00: destinationReg = &m_a0;
// case 0x01: destinationReg = &m_a1;
// default: break;
// case 0x00: destinationReg = &m_a0;
// case 0x01: destinationReg = &m_a1;
// default: break;
//}
// Which source is being used?
//UINT64* sourceReg = NULL;
//switch (S)
//{
// case 0x00: sourceReg = &m_a0;
// case 0x01: sourceReg = &m_a1;
// default: break;
// case 0x00: sourceReg = &m_a0;
// case 0x01: sourceReg = &m_a1;
// default: break;
//}
switch (F1)
{
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;
default: break;
}
const UINT8 lower = Y & 0x03;
switch (lower)
{
@ -341,7 +341,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
case 0x00: m_pt++; break;
case 0x01: m_pt += m_i; break;
}
cycles = 2; // TODO: 1 if cached
cycles = 2; // TODO: 1 if cached
pcAdvance = 1;
break;
}
@ -355,15 +355,15 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
const UINT8 F1 = (op & 0x01e0) >> 5;
bool useA1 = (opcode == 0x1b);
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);
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)
{
case 0x00: m_pt++; break;
case 0x01: m_pt += m_i; break;
}
cycles = 2; // TODO: 1 if cached
cycles = 2; // TODO: 1 if cached
pcAdvance = 1;
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 D = (op & 0x0400) >> 10;
const UINT8 F1 = (op & 0x01e0) >> 5;
executeF1Field(F1, D, S);
UINT16 temp = 0x0000;
UINT16* rN = (UINT16*)registerFromYFieldUpper(Z);
switch (X)
{
case 0x00:
temp = m_y & 0x0000ffff;
m_y &= 0xffff0000;
m_y |= data_read(*rN);
executeZFieldPartOne(Z, rN);
data_write(*rN, temp);
executeZFieldPartTwo(Z, rN);
break;
case 0x01:
temp = (m_y & 0xffff0000) >> 16;
m_y &= 0x0000ffff;
m_y |= (data_read(*rN) << 16);
executeZFieldPartOne(Z, rN);
data_write(*rN, temp);
executeZFieldPartTwo(Z, rN);
break;
}
cycles = 2;
pcAdvance = 1;
executeF1Field(F1, D, S);
UINT16 temp = 0x0000;
UINT16* rN = (UINT16*)registerFromYFieldUpper(Z);
switch (X)
{
case 0x00:
temp = m_y & 0x0000ffff;
m_y &= 0xffff0000;
m_y |= data_read(*rN);
executeZFieldPartOne(Z, rN);
data_write(*rN, temp);
executeZFieldPartTwo(Z, rN);
break;
case 0x01:
temp = (m_y & 0xffff0000) >> 16;
m_y &= 0x0000ffff;
m_y |= (data_read(*rN) << 16);
executeZFieldPartOne(Z, rN);
data_write(*rN, temp);
executeZFieldPartTwo(Z, rN);
break;
}
cycles = 2;
pcAdvance = 1;
break;
}
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)
const UINT8 CON = (op & 0x001f);
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;
if (!conditionFulfilled)
{
@ -577,7 +577,7 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
}
void* sourceReg = registerFromRTable(R);
*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)
*destinationReg |= U64(0xf00000000);
// 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 UINT8 R = (op & 0x0e00) >> 9;
void* reg = registerFromRImmediateField(R);
writeRegister(reg, (INT16)M); // Sign extend 8 bit int
writeRegister(reg, (INT16)M); // Sign extend 8 bit int
cycles = 1;
pcAdvance = 1;
break;
@ -656,14 +656,14 @@ void dsp16_device::execute_one(const UINT16& op, UINT8& cycles, UINT8& pcAdvance
// Do
m_cacheStart = m_pc + 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;
pcAdvance = 1;
}
else
{
// 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_pc = m_cacheStart;
pcAdvance = 0;

File diff suppressed because it is too large Load Diff

View File

@ -13,163 +13,163 @@
#include "emu.h"
class es5510_device : public cpu_device {
public:
es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
public:
es5510_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
DECLARE_READ8_MEMBER(host_r);
DECLARE_WRITE8_MEMBER(host_w);
DECLARE_READ8_MEMBER(host_r);
DECLARE_WRITE8_MEMBER(host_w);
DECLARE_READ16_MEMBER(ser_r);
DECLARE_WRITE16_MEMBER(ser_w);
DECLARE_READ16_MEMBER(ser_r);
DECLARE_WRITE16_MEMBER(ser_w);
enum line_t {
ES5510_HALT = 0
};
enum line_t {
ES5510_HALT = 0
};
enum state_t {
STATE_RUNNING = 0,
STATE_HALTED = 1
};
enum state_t {
STATE_RUNNING = 0,
STATE_HALTED = 1
};
struct alu_op_t {
int operands;
const char * const opcode;
};
struct alu_op_t {
int operands;
const char * const opcode;
};
enum op_src_dst_t {
SRC_DST_REG = 1 << 0,
SRC_DST_DELAY = 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 op_src_dst_t {
SRC_DST_REG = 1 << 0,
SRC_DST_DELAY = 1 << 1,
SRC_DST_BOTH = (1 << 0) | (1 << 1)
};
enum ram_control_access_t {
RAM_CONTROL_DELAY = 0,
RAM_CONTROL_TABLE_A,
RAM_CONTROL_TABLE_B,
RAM_CONTROL_IO
};
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_cycle_t {
RAM_CYCLE_READ = 0,
RAM_CYCLE_WRITE = 1,
RAM_CYCLE_DUMP_FIFO = 2
};
enum ram_control_access_t {
RAM_CONTROL_DELAY = 0,
RAM_CONTROL_TABLE_A,
RAM_CONTROL_TABLE_B,
RAM_CONTROL_IO
};
struct ram_control_t {
ram_cycle_t cycle;
ram_control_access_t access;
const char * const description;
};
enum ram_cycle_t {
RAM_CYCLE_READ = 0,
RAM_CYCLE_WRITE = 1,
RAM_CYCLE_DUMP_FIFO = 2
};
static const alu_op_t ALU_OPS[16];
static const op_select_t OPERAND_SELECT[16];
static const ram_control_t RAM_CONTROL[8];
struct ram_control_t {
ram_cycle_t cycle;
ram_control_access_t access;
const char * const description;
};
struct alu_t {
UINT8 aReg;
UINT8 bReg;
op_src_dst_t src;
op_src_dst_t dst;
UINT8 op;
INT32 aValue;
INT32 bValue;
INT32 result;
bool update_ccr;
bool write_result;
};
static const alu_op_t ALU_OPS[16];
static const op_select_t OPERAND_SELECT[16];
static const ram_control_t RAM_CONTROL[8];
struct mulacc_t {
UINT8 cReg;
UINT8 dReg;
op_src_dst_t src;
op_src_dst_t dst;
bool accumulate;
INT64 cValue;
INT64 dValue;
INT64 product;
INT64 result;
bool write_result;
};
struct alu_t {
UINT8 aReg;
UINT8 bReg;
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 ram_t {
INT32 address; // up to 20 bits, left-justified within the right 24 bits of the 32-bit word
bool io; // I/O space, rather than delay line memory
ram_cycle_t cycle; // cycle type
};
struct mulacc_t {
UINT8 cReg;
UINT8 dReg;
op_src_dst_t src;
op_src_dst_t dst;
bool accumulate;
INT64 cValue;
INT64 dValue;
INT64 product;
INT64 result;
bool write_result;
};
protected:
virtual void device_start();
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);
struct ram_t {
INT32 address; // up to 20 bits, left-justified within the right 24 bits of the 32-bit word
bool io; // I/O space, rather than delay line memory
ram_cycle_t cycle; // cycle type
};
INT32 read_reg(UINT8 reg);
void write_reg(UINT8 reg, INT32 value);
void write_to_dol(INT32 value);
protected:
virtual void device_start();
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:
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;
INT32 alu_operation(UINT8 op, INT32 aValue, INT32 bValue, UINT8 &flags);
UINT64 instr[160]; // 48 bits, right justified
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.
private:
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
INT32 dol_latch; // 24 bits
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; //
UINT64 instr[160]; // 48 bits, right justified
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.
// 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
// latch registers for host interaction
INT32 dol_latch; // 24 bits
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)
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;

View File

@ -5,15 +5,12 @@
#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 \
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
#define MCFG_LR35902_RESET_VALUES(_regs) \
lr35902_cpu_device::set_reset_values(*device, _regs); \
lr35902_cpu_device::set_reset_values(*device, _regs);
enum
{

View File

@ -128,7 +128,7 @@ protected:
DASM_imz, /* load immediate byte, store to zero page address (M740) */
DASM_spg, /* "special page": implied FF00 plus immediate value (M740)*/
DASM_biz, /* bit, zero page (M740) */
DASM_bzr /* bit, zero page, relative offset (M740) */
DASM_bzr /* bit, zero page, relative offset (M740) */
};
enum {

View File

@ -75,36 +75,36 @@
HELPER MACROS
***************************************************************************/
#define RSREG ((m_op >> 21) & 31)
#define RTREG ((m_op >> 16) & 31)
#define RDREG ((m_op >> 11) & 31)
#define SHIFT ((m_op >> 6) & 31)
#define RSREG ((m_op >> 21) & 31)
#define RTREG ((m_op >> 16) & 31)
#define RDREG ((m_op >> 11) & 31)
#define SHIFT ((m_op >> 6) & 31)
#define RSVAL m_r[RSREG]
#define RTVAL m_r[RTREG]
#define RDVAL m_r[RDREG]
#define RSVAL m_r[RSREG]
#define RTVAL m_r[RTREG]
#define RDVAL m_r[RDREG]
#define SIMMVAL ((INT16)m_op)
#define UIMMVAL ((UINT16)m_op)
#define LIMMVAL (m_op & 0x03ffffff)
#define SIMMVAL ((INT16)m_op)
#define UIMMVAL ((UINT16)m_op)
#define LIMMVAL (m_op & 0x03ffffff)
#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 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 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 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 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 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 RBYTE(x) (this->*m_cur->m_read_byte)(x)
#define RWORD(x) (this->*m_cur->m_read_word)(x)
#define RLONG(x) (this->*m_cur->m_read_dword)(x)
#define RBYTE(x) (this->*m_cur->m_read_byte)(x)
#define RWORD(x) (this->*m_cur->m_read_word)(x)
#define RLONG(x) (this->*m_cur->m_read_dword)(x)
#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 WLONG(x,v) (this->*m_cur->m_write_dword)(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 WLONG(x,v) (this->*m_cur->m_write_dword)(x, v)
#define SR m_cpr[0][COP0_Status]
#define CAUSE m_cpr[0][COP0_Cause]
#define SR m_cpr[0][COP0_Status]
#define CAUSE m_cpr[0][COP0_Cause]
//**************************************************************************
@ -227,7 +227,7 @@ void r3000_device::device_start()
m_icache_size = 4096;
m_dcache_size = 2048;
break;
}
}
case CHIP_TYPE_R3052:
{
m_icache_size = 8192;
@ -238,17 +238,17 @@ void r3000_device::device_start()
// TODO: R3071 and R3081 have configurable cache sizes
case CHIP_TYPE_R3071:
{
m_icache_size = 16384; // or 8kB
m_dcache_size = 4096; // or 8kB
m_icache_size = 16384; // or 8kB
m_dcache_size = 4096; // or 8kB
break;
}
case CHIP_TYPE_R3081:
{
m_icache_size = 16384; // or 8kB
m_dcache_size = 4096; // or 8kB
m_icache_size = 16384; // or 8kB
m_dcache_size = 4096; // or 8kB
m_hasfpu = true;
break;
}
}
}
// allocate cache memory
@ -286,7 +286,7 @@ void r3000_device::device_start()
m_lwr = &r3000_device::lwr_le;
m_swl = &r3000_device::swl_le;
m_swr = &r3000_device::swr_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_dword = &r3000_device::readcache_le_dword;
@ -302,44 +302,44 @@ void r3000_device::device_start()
m_in_brcond3.resolve_safe(0);
// register our state for the debugger
state_add(STATE_GENPC, "GENPC", m_pc).noshow();
state_add(STATE_GENPCBASE, "GENPCBASE", m_ppc).noshow();
state_add(STATE_GENSP, "GENSP", m_r[31]).noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", SR).callimport().callexport().formatstr("%6s").noshow();
state_add(R3000_PC, "PC", m_pc);
state_add(R3000_SR, "SR", SR);
state_add(R3000_R0, "R0", m_r[0]);
state_add(R3000_R1, "R1", m_r[1]);
state_add(R3000_R2, "R2", m_r[2]);
state_add(R3000_R3, "R3", m_r[3]);
state_add(R3000_R4, "R4", m_r[4]);
state_add(R3000_R5, "R5", m_r[5]);
state_add(R3000_R6, "R6", m_r[6]);
state_add(R3000_R7, "R7", m_r[7]);
state_add(R3000_R8, "R8", m_r[8]);
state_add(R3000_R9, "R9", m_r[9]);
state_add(R3000_R10, "R10", m_r[10]);
state_add(R3000_R11, "R11", m_r[11]);
state_add(R3000_R12, "R12", m_r[12]);
state_add(R3000_R13, "R13", m_r[13]);
state_add(R3000_R14, "R14", m_r[14]);
state_add(R3000_R15, "R15", m_r[15]);
state_add(R3000_R16, "R16", m_r[16]);
state_add(R3000_R17, "R17", m_r[17]);
state_add(R3000_R18, "R18", m_r[18]);
state_add(R3000_R19, "R19", m_r[19]);
state_add(R3000_R20, "R20", m_r[20]);
state_add(R3000_R21, "R21", m_r[21]);
state_add(R3000_R22, "R22", m_r[22]);
state_add(R3000_R23, "R23", m_r[23]);
state_add(R3000_R24, "R24", m_r[24]);
state_add(R3000_R25, "R25", m_r[25]);
state_add(R3000_R26, "R26", m_r[26]);
state_add(R3000_R27, "R27", m_r[27]);
state_add(R3000_R28, "R28", m_r[28]);
state_add(R3000_R29, "R29", m_r[29]);
state_add(R3000_R30, "R30", m_r[30]);
state_add(R3000_R31, "R31", m_r[31]);
state_add(STATE_GENPC, "GENPC", m_pc).noshow();
state_add(STATE_GENPCBASE, "GENPCBASE", m_ppc).noshow();
state_add(STATE_GENSP, "GENSP", m_r[31]).noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", SR).callimport().callexport().formatstr("%6s").noshow();
state_add(R3000_PC, "PC", m_pc);
state_add(R3000_SR, "SR", SR);
state_add(R3000_R0, "R0", m_r[0]);
state_add(R3000_R1, "R1", m_r[1]);
state_add(R3000_R2, "R2", m_r[2]);
state_add(R3000_R3, "R3", m_r[3]);
state_add(R3000_R4, "R4", m_r[4]);
state_add(R3000_R5, "R5", m_r[5]);
state_add(R3000_R6, "R6", m_r[6]);
state_add(R3000_R7, "R7", m_r[7]);
state_add(R3000_R8, "R8", m_r[8]);
state_add(R3000_R9, "R9", m_r[9]);
state_add(R3000_R10, "R10", m_r[10]);
state_add(R3000_R11, "R11", m_r[11]);
state_add(R3000_R12, "R12", m_r[12]);
state_add(R3000_R13, "R13", m_r[13]);
state_add(R3000_R14, "R14", m_r[14]);
state_add(R3000_R15, "R15", m_r[15]);
state_add(R3000_R16, "R16", m_r[16]);
state_add(R3000_R17, "R17", m_r[17]);
state_add(R3000_R18, "R18", m_r[18]);
state_add(R3000_R19, "R19", m_r[19]);
state_add(R3000_R20, "R20", m_r[20]);
state_add(R3000_R21, "R21", m_r[21]);
state_add(R3000_R22, "R22", m_r[22]);
state_add(R3000_R23, "R23", m_r[23]);
state_add(R3000_R24, "R24", m_r[24]);
state_add(R3000_R25, "R25", m_r[25]);
state_add(R3000_R26, "R26", m_r[26]);
state_add(R3000_R27, "R27", m_r[27]);
state_add(R3000_R28, "R28", m_r[28]);
state_add(R3000_R29, "R29", m_r[29]);
state_add(R3000_R30, "R30", m_r[30]);
state_add(R3000_R31, "R31", m_r[31]);
// register our state for saving
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()
{
@ -749,8 +749,8 @@ inline void r3000_device::handle_cop0()
case 0x08: /* BC */
switch (RTREG)
{
case 0x00: /* BCzF */ if (!m_in_brcond0()) ADDPC(SIMMVAL); break;
case 0x01: /* BCzT */ 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 0x02: /* BCzFL */ invalid_instruction(); break;
case 0x03: /* BCzTL */ invalid_instruction(); break;
default: invalid_instruction(); break;
@ -828,8 +828,8 @@ inline void r3000_device::handle_cop1()
case 0x08: /* BC */
switch (RTREG)
{
case 0x00: /* BCzF */ if (!m_in_brcond1()) ADDPC(SIMMVAL); break;
case 0x01: /* BCzT */ 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 0x02: /* BCzFL */ invalid_instruction(); break;
case 0x03: /* BCzTL */ invalid_instruction(); break;
default: invalid_instruction(); break;
@ -894,8 +894,8 @@ inline void r3000_device::handle_cop2()
case 0x08: /* BC */
switch (RTREG)
{
case 0x00: /* BCzF */ if (!m_in_brcond2()) ADDPC(SIMMVAL); break;
case 0x01: /* BCzT */ 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 0x02: /* BCzFL */ invalid_instruction(); break;
case 0x03: /* BCzTL */ invalid_instruction(); break;
default: invalid_instruction(); break;
@ -960,8 +960,8 @@ inline void r3000_device::handle_cop3()
case 0x08: /* BC */
switch (RTREG)
{
case 0x00: /* BCzF */ if (!m_in_brcond3()) ADDPC(SIMMVAL); break;
case 0x01: /* BCzT */ 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 0x02: /* BCzFL */ invalid_instruction(); break;
case 0x03: /* BCzTL */ invalid_instruction(); break;
default: invalid_instruction(); break;

View File

@ -13,7 +13,7 @@
/***************************************************************************
INTERFACE CONFIGURATION MACROS
***************************************************************************/
#define MCFG_R3000_ENDIANNESS(_endianness) \
r3000_device::static_set_endianness(*device, _endianness);
@ -134,12 +134,12 @@ protected:
// memory accessors
struct r3000_data_accessors
{
UINT8 (r3000_device::*m_read_byte)(offs_t byteaddress);
UINT16 (r3000_device::*m_read_word)(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_word)(offs_t byteaddress, UINT16 data);
void (r3000_device::*m_write_dword)(offs_t byteaddress, UINT32 data);
UINT8 (r3000_device::*m_read_byte)(offs_t byteaddress);
UINT16 (r3000_device::*m_read_word)(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_word)(offs_t byteaddress, UINT16 data);
void (r3000_device::*m_write_dword)(offs_t byteaddress, UINT32 data);
};
UINT32 readop(offs_t pc);
@ -213,13 +213,13 @@ protected:
direct_read_data *m_direct;
// configuration
chip_type m_chip_type;
bool m_hasfpu;
endianness_t m_endianness;
chip_type m_chip_type;
bool m_hasfpu;
endianness_t m_endianness;
// core registers
UINT32 m_pc;
UINT32 m_nextpc;
UINT32 m_nextpc;
UINT32 m_hi;
UINT32 m_lo;
UINT32 m_r[32];
@ -229,8 +229,8 @@ protected:
UINT32 m_ccr[4][32];
// internal stuff
UINT32 m_ppc;
UINT32 m_op;
UINT32 m_ppc;
UINT32 m_op;
int m_icount;
int m_interrupt_cycles;
@ -254,10 +254,10 @@ protected:
size_t m_dcache_size;
// I/O
devcb2_read_line m_in_brcond0;
devcb2_read_line m_in_brcond1;
devcb2_read_line m_in_brcond2;
devcb2_read_line m_in_brcond3;
devcb2_read_line m_in_brcond0;
devcb2_read_line m_in_brcond1;
devcb2_read_line m_in_brcond2;
devcb2_read_line m_in_brcond3;
};

View File

@ -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)
{
// INT8 rel8;
// UINT32 imm32;
// UINT8 op2;
// INT8 rel8;
// UINT32 imm32;
// UINT8 op2;
UINT32 flags = 0;
//if (!strcmp(op_table->mnemonic, "jsr") || !strcmp(op_table->mnemonic, "bsr"))

View File

@ -1860,7 +1860,7 @@ INLINE void op0000(sh2_state *sh2, UINT16 opcode)
case 0x06: MOVLS0(sh2, Rm, Rn); break;
case 0x07: MULL(sh2, Rm, Rn); break;
case 0x08: CLRT(sh2); break;
case 0x09: NOP(); break;
case 0x09: NOP(); break;
case 0x0a: STSMACH(sh2, Rn); break;
case 0x0b: RTS(sh2); break;
case 0x0c: MOVBL0(sh2, Rm, Rn); break;

View File

@ -32,7 +32,7 @@ INLINE UINT32 RL(sh2_state *sh2, offs_t A)
if (A >= 0xc0000000) /* Cache Data Array */
return sh2->program->read_dword(A);
/* 0x60000000 Cache Address Data Array */
/* 0x60000000 Cache Address Data Array */
if (A >= 0x40000000) /* Cache Associative Purge Area */
return 0xa5a5a5a5;
@ -56,7 +56,7 @@ INLINE void WL(sh2_state *sh2, offs_t A, UINT32 V)
return;
}
/* 0x60000000 Cache Address Data Array */
/* 0x60000000 Cache Address Data Array */
if (A >= 0x40000000) /* Cache Associative Purge Area */
return;
@ -575,13 +575,13 @@ WRITE32_HANDLER( sh2_internal_w )
// Standby and cache
case 0x24: // SBYCR, CCR
/*
CCR
xx-- ---- ---- ---- Way 0/1
---x ---- ---- ---- Cache Purge (CP)
---- x--- ---- ---- Two-Way Mode (TW)
---- -x-- ---- ---- Data Replacement Disable (OD)
---- --x- ---- ---- Instruction Replacement Disable (ID)
---- ---x ---- ---- Cache Enable (CE)
CCR
xx-- ---- ---- ---- Way 0/1
---x ---- ---- ---- Cache Purge (CP)
---- x--- ---- ---- Two-Way Mode (TW)
---- -x-- ---- ---- Data Replacement Disable (OD)
---- --x- ---- ---- Instruction Replacement Disable (ID)
---- ---x ---- ---- Cache Enable (CE)
*/
break;

View File

@ -1807,7 +1807,7 @@ static int generate_group_0(sh2_state *sh2, drcuml_block *block, compiler_state
{
switch (opcode & 0x3F)
{
case 0x00: // these are all illegal
case 0x00: // these are all illegal
case 0x01:
case 0x10:
case 0x11:

View File

@ -493,7 +493,7 @@ static UINT32 dasm_compute_dreg_dmpm(UINT32 pc, UINT64 opcode)
compute(comp);
print(", ");
}
if (dmd)
if (dmd)
{
print("DM(%s, %s) = R%d, ", GET_DAG1_I(dmi), GET_DAG1_M(dmm), dmdreg);
}

View File

@ -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(0x13, m_IR1);
}

View File

@ -4,12 +4,10 @@
#define __SM8500_H__
#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) \
sm8500_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb); \
sm8500_cpu_device::set_timer_cb(*device, DEVCB2_##_devcb);
enum
{

View File

@ -61,9 +61,9 @@
debug_view_source::debug_view_source(const char *name, device_t *device)
: m_next(NULL),
m_name(name),
m_device(device),
m_is_octal(false)
m_name(name),
m_device(device),
m_is_octal(false)
{
device_execute_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)
: m_machine(machine),
m_head(NULL),
m_tail(NULL),
m_count(0)
m_head(NULL),
m_tail(NULL),
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)
: m_next(NULL),
m_type(type),
m_source(NULL),
m_source_list(machine),
m_osdupdate(osdupdate),
m_osdprivate(osdprivate),
m_visible(10,10),
m_total(10,10),
m_topleft(0,0),
m_cursor(0,0),
m_supports_cursor(false),
m_cursor_visible(false),
m_recompute(true),
m_update_level(0),
m_update_pending(true),
m_osd_update_pending(true),
m_viewdata(NULL),
m_viewdata_size(0),
m_machine(machine)
m_type(type),
m_source(NULL),
m_source_list(machine),
m_osdupdate(osdupdate),
m_osdprivate(osdprivate),
m_visible(10,10),
m_total(10,10),
m_topleft(0,0),
m_cursor(0,0),
m_supports_cursor(false),
m_cursor_visible(false),
m_recompute(true),
m_update_level(0),
m_update_pending(true),
m_osd_update_pending(true),
m_viewdata(NULL),
m_viewdata_size(0),
m_machine(machine)
{
// allocate memory for the buffer
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)
: 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)
: m_machine(machine),
m_dirty(true),
m_result(0),
m_parsed(debug_cpu_get_global_symtable(machine)),
m_string("0")
m_dirty(true),
m_result(0),
m_parsed(debug_cpu_get_global_symtable(machine)),
m_string("0")
{
}

View File

@ -72,35 +72,35 @@ enum debug_view_notification
// attribute bits for debug_view_char.attrib
const UINT8 DCA_NORMAL = 0x00; // in Windows: black on white
const UINT8 DCA_CHANGED = 0x01; // in Windows: red foreground
const UINT8 DCA_SELECTED = 0x02; // in Windows: light red background
const UINT8 DCA_INVALID = 0x04; // in Windows: dark blue foreground
const UINT8 DCA_DISABLED = 0x08; // in Windows: darker foreground
const UINT8 DCA_ANCILLARY = 0x10; // in Windows: grey background
const UINT8 DCA_CURRENT = 0x20; // in Windows: yellow background
const UINT8 DCA_COMMENT = 0x40; // in Windows: green foreground
const UINT8 DCA_NORMAL = 0x00; // in Windows: black on white
const UINT8 DCA_CHANGED = 0x01; // in Windows: red foreground
const UINT8 DCA_SELECTED = 0x02; // in Windows: light red background
const UINT8 DCA_INVALID = 0x04; // in Windows: dark blue foreground
const UINT8 DCA_DISABLED = 0x08; // in Windows: darker foreground
const UINT8 DCA_ANCILLARY = 0x10; // in Windows: grey background
const UINT8 DCA_CURRENT = 0x20; // in Windows: yellow background
const UINT8 DCA_COMMENT = 0x40; // in Windows: green foreground
// special characters that can be passed to process_char()
const int DCH_UP = 1; // up arrow
const int DCH_DOWN = 2; // down arrow
const int DCH_LEFT = 3; // left arrow
const int DCH_RIGHT = 4; // right arrow
const int DCH_PUP = 5; // page up
const int DCH_PDOWN = 6; // page down
const int DCH_HOME = 7; // home
const int DCH_CTRLHOME = 8; // ctrl+home
const int DCH_END = 9; // end
const int DCH_CTRLEND = 10; // ctrl+end
const int DCH_CTRLRIGHT = 11; // ctrl+right
const int DCH_CTRLLEFT = 12; // ctrl+left
const int DCH_UP = 1; // up arrow
const int DCH_DOWN = 2; // down arrow
const int DCH_LEFT = 3; // left arrow
const int DCH_RIGHT = 4; // right arrow
const int DCH_PUP = 5; // page up
const int DCH_PDOWN = 6; // page down
const int DCH_HOME = 7; // home
const int DCH_CTRLHOME = 8; // ctrl+home
const int DCH_END = 9; // end
const int DCH_CTRLEND = 10; // ctrl+end
const int DCH_CTRLRIGHT = 11; // ctrl+right
const int DCH_CTRLLEFT = 12; // ctrl+left
// special characters that can be passed to process_click()
const int DCK_LEFT_CLICK = 1; // left instantaneous click
const int DCK_RIGHT_CLICK = 2; // right instantaneous click
const int DCK_MIDDLE_CLICK = 3; // middle instantaneous click
const int DCK_LEFT_CLICK = 1; // left instantaneous click
const int DCK_RIGHT_CLICK = 2; // right 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
struct debug_view_char
{
UINT8 byte;
UINT8 attrib;
UINT8 byte;
UINT8 attrib;
};
@ -129,8 +129,8 @@ class debug_view_xy
public:
debug_view_xy(int _x = 0, int _y = 0) : x(_x), y(_y) { }
INT32 x;
INT32 y;
INT32 x;
INT32 y;
};
@ -154,10 +154,10 @@ public:
private:
// internal state
debug_view_source * m_next; // link to next item
astring m_name; // name of the source item
device_t * m_device; // associated device (if applicable)
bool m_is_octal; // is view in octal or hex
debug_view_source * m_next; // link to next item
astring m_name; // name of the source item
device_t * m_device; // associated device (if applicable)
bool m_is_octal; // is view in octal or hex
};
@ -186,10 +186,10 @@ public:
private:
// internal state
running_machine & m_machine; // reference to our machine
debug_view_source * m_head; // head of the list
debug_view_source * m_tail; // end of the tail
UINT32 m_count; // number of items in the list
running_machine & m_machine; // reference to our machine
debug_view_source * m_head; // head of the list
debug_view_source * m_tail; // end of the tail
UINT32 m_count; // number of items in the list
};
@ -248,33 +248,33 @@ protected:
protected:
// core view data
debug_view * m_next; // link to the next view
debug_view_type m_type; // type of view
const debug_view_source *m_source; // currently selected data source
debug_view_source_list m_source_list; // list of available data sources
debug_view * m_next; // link to the next view
debug_view_type m_type; // type of view
const debug_view_source *m_source; // currently selected data source
debug_view_source_list m_source_list; // list of available data sources
// OSD data
debug_view_osd_update_func m_osdupdate; // callback for the update
void * m_osdprivate; // OSD-managed private data
debug_view_osd_update_func m_osdupdate; // callback for the update
void * m_osdprivate; // OSD-managed private data
// visibility info
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_topleft; // top-left visible position (in rows and columns)
debug_view_xy m_cursor; // cursor position
bool m_supports_cursor; // does this view support a cursor?
bool m_cursor_visible; // is the cursor visible?
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_topleft; // top-left visible position (in rows and columns)
debug_view_xy m_cursor; // cursor position
bool m_supports_cursor; // does this view support a cursor?
bool m_cursor_visible; // is the cursor visible?
// update info
bool m_recompute; // does this view require a recomputation?
UINT8 m_update_level; // update level; updates when this hits 0
bool m_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
int m_viewdata_size; // number of elements of the viewdata array
bool m_recompute; // does this view require a recomputation?
UINT8 m_update_level; // update level; updates when this hits 0
bool m_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
int m_viewdata_size; // number of elements of the viewdata array
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);
// internal state
running_machine & m_machine; // reference to our machine
debug_view * m_viewlist; // list of views
running_machine & m_machine; // reference to our machine
debug_view * m_viewlist; // list of views
};
@ -333,11 +333,11 @@ private:
bool recompute();
// internal state
running_machine & m_machine; // reference to the machine
bool m_dirty; // true if the expression needs to be re-evaluated
UINT64 m_result; // last result from the expression
parsed_expression m_parsed; // parsed expression data
astring m_string; // copy of the expression string
running_machine & m_machine; // reference to the machine
bool m_dirty; // true if the expression needs to be re-evaluated
UINT64 m_result; // last result from the expression
parsed_expression m_parsed; // parsed expression data
astring m_string; // copy of the expression string
};

View File

@ -54,9 +54,9 @@
debug_view_disasm_source::debug_view_disasm_source(const char *name, device_t &device)
: debug_view_source(name, &device),
m_device(device),
m_disasmintf(dynamic_cast<device_disasm_interface *>(&device)),
m_space(device.memory().space(AS_PROGRAM))
m_device(device),
m_disasmintf(dynamic_cast<device_disasm_interface *>(&device)),
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(machine, DVT_DISASSEMBLY, osdupdate, osdprivate),
m_right_column(DASM_RIGHTCOL_RAW),
m_backwards_steps(3),
m_dasm_width(DEFAULT_DASM_WIDTH),
m_last_direct_raw(NULL),
m_last_direct_decrypted(NULL),
m_last_change_count(0),
m_last_pcbyte(0),
m_divider1(0),
m_divider2(0),
m_divider3(0),
m_expression(machine),
m_allocated(0,0),
m_byteaddress(NULL),
m_dasm(NULL)
m_right_column(DASM_RIGHTCOL_RAW),
m_backwards_steps(3),
m_dasm_width(DEFAULT_DASM_WIDTH),
m_last_direct_raw(NULL),
m_last_direct_decrypted(NULL),
m_last_change_count(0),
m_last_pcbyte(0),
m_divider1(0),
m_divider2(0),
m_divider3(0),
m_expression(machine),
m_allocated(0,0),
m_byteaddress(NULL),
m_dasm(NULL)
{
// fail if no available sources
enumerate_sources();
@ -199,7 +199,7 @@ void debug_view_disasm::view_char(int chval)
m_cursor.y = temp;
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);
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;
}
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
m_total.x = m_divider2 + 1;

View File

@ -77,9 +77,9 @@ public:
private:
// internal state
device_t & m_device; // underlying device
device_disasm_interface *m_disasmintf; // disassembly interface
address_space & m_space; // address space to display
device_t & m_device; // underlying device
device_disasm_interface *m_disasmintf; // disassembly interface
address_space & m_space; // address space to display
};
@ -123,19 +123,19 @@ private:
bool recompute(offs_t pc, int startline, int lines);
// internal state
disasm_right_column m_right_column; // right column contents
UINT32 m_backwards_steps; // number of backwards steps
UINT32 m_dasm_width; // width of the disassembly area
UINT8 * m_last_direct_raw; // last direct raw value
UINT8 * m_last_direct_decrypted;// last direct decrypted value
UINT32 m_last_change_count; // last comment change count
offs_t m_last_pcbyte; // last PC byte value
int m_divider1, m_divider2; // left and right divider columns
int m_divider3; // comment divider column
debug_view_expression m_expression; // expression-related information
debug_view_xy m_allocated; // allocated rows/columns
offs_t * m_byteaddress; // addresses of the instructions
char * m_dasm; // disassembled instructions
disasm_right_column m_right_column; // right column contents
UINT32 m_backwards_steps; // number of backwards steps
UINT32 m_dasm_width; // width of the disassembly area
UINT8 * m_last_direct_raw; // last direct raw value
UINT8 * m_last_direct_decrypted;// last direct decrypted value
UINT32 m_last_change_count; // last comment change count
offs_t m_last_pcbyte; // last PC byte value
int m_divider1, m_divider2; // left and right divider columns
int m_divider3; // comment divider column
debug_view_expression m_expression; // expression-related information
debug_view_xy m_allocated; // allocated rows/columns
offs_t * m_byteaddress; // addresses of the instructions
char * m_dasm; // disassembled instructions
// constants
static const int DEFAULT_DASM_LINES = 1000;

View File

@ -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_source(name, &space.device()),
m_space(&space),
m_memintf(dynamic_cast<device_memory_interface *>(&space.device())),
m_base(NULL),
m_length(0),
m_offsetxor(0),
m_endianness(space.endianness()),
m_prefsize(space.data_width() / 8)
m_space(&space),
m_memintf(dynamic_cast<device_memory_interface *>(&space.device())),
m_base(NULL),
m_length(0),
m_offsetxor(0),
m_endianness(space.endianness()),
m_prefsize(space.data_width() / 8)
{
}
debug_view_memory_source::debug_view_memory_source(const char *name, memory_region &region)
: debug_view_source(name),
m_space(NULL),
m_memintf(NULL),
m_base(region),
m_length(region.bytes()),
m_offsetxor(NATIVE_ENDIAN_VALUE_LE_BE(region.width() - 1, 0)),
m_endianness(region.endianness()),
m_prefsize(MIN(region.width(), 8))
m_space(NULL),
m_memintf(NULL),
m_base(region),
m_length(region.bytes()),
m_offsetxor(NATIVE_ENDIAN_VALUE_LE_BE(region.width() - 1, 0)),
m_endianness(region.endianness()),
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_source(name),
m_space(NULL),
m_memintf(NULL),
m_base(base),
m_length(element_size * num_elements),
m_offsetxor(0),
m_endianness(ENDIANNESS_NATIVE),
m_prefsize(MIN(element_size, 8))
m_space(NULL),
m_memintf(NULL),
m_base(base),
m_length(element_size * num_elements),
m_offsetxor(0),
m_endianness(ENDIANNESS_NATIVE),
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(machine, DVT_MEMORY, osdupdate, osdprivate),
m_expression(machine),
m_chunks_per_row(16),
m_bytes_per_chunk(1),
m_reverse_view(false),
m_ascii_view(true),
m_no_translation(false),
m_maxaddr(0),
m_bytes_per_row(16),
m_byte_offset(0)
m_expression(machine),
m_chunks_per_row(16),
m_bytes_per_chunk(1),
m_reverse_view(false),
m_ascii_view(true),
m_no_translation(false),
m_maxaddr(0),
m_bytes_per_row(16),
m_byte_offset(0)
{
// fail if no available sources
enumerate_sources();
@ -181,10 +181,10 @@ void debug_view_memory::enumerate_sources()
break;
// 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.
if (strncmp(itemname, "timer/", 6))
// 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))
{
name.cpy(itemname);
name.cpy(itemname);
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)
{
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 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 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 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;
}
}
return ismapped;
@ -700,10 +700,10 @@ void debug_view_memory::write(UINT8 size, offs_t offs, UINT64 data)
{
switch (size)
{
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 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 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 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;
}
return;
}

View File

@ -60,13 +60,13 @@ public:
address_space *space() const { return m_space; }
private:
address_space *m_space; // address space we reference (if any)
device_memory_interface *m_memintf; // pointer to the memory interface of the device
void * m_base; // pointer to memory base
offs_t m_length; // length of memory
offs_t m_offsetxor; // XOR to apply to offsets
endianness_t m_endianness; // endianness of memory
UINT8 m_prefsize; // preferred bytes per chunk
address_space *m_space; // address space we reference (if any)
device_memory_interface *m_memintf; // pointer to the memory interface of the device
void * m_base; // pointer to memory base
offs_t m_length; // length of memory
offs_t m_offsetxor; // XOR to apply to offsets
endianness_t m_endianness; // endianness of memory
UINT8 m_prefsize; // preferred bytes per chunk
};
@ -127,31 +127,31 @@ private:
void write(UINT8 size, offs_t offs, UINT64 data);
// internal state
debug_view_expression m_expression; // expression describing the start address
UINT32 m_chunks_per_row; // number of chunks displayed per line
UINT8 m_bytes_per_chunk; // bytes per chunk
bool m_reverse_view; // reverse-endian view?
bool m_ascii_view; // display ASCII characters?
bool m_no_translation; // don't run addresses through the cpu translation hook
offs_t m_maxaddr; // (derived) maximum address to display
UINT32 m_bytes_per_row; // (derived) number of bytes displayed per line
UINT32 m_byte_offset; // (derived) offset of starting visible byte
astring m_addrformat; // (derived) format string to use to print addresses
debug_view_expression m_expression; // expression describing the start address
UINT32 m_chunks_per_row; // number of chunks displayed per line
UINT8 m_bytes_per_chunk; // bytes per chunk
bool m_reverse_view; // reverse-endian view?
bool m_ascii_view; // display ASCII characters?
bool m_no_translation; // don't run addresses through the cpu translation hook
offs_t m_maxaddr; // (derived) maximum address to display
UINT32 m_bytes_per_row; // (derived) number of bytes displayed per line
UINT32 m_byte_offset; // (derived) offset of starting visible byte
astring m_addrformat; // (derived) format string to use to print addresses
struct section
{
bool contains(int x) const { return x >= m_pos && x < m_pos + m_width; }
INT32 m_pos; /* starting position */
INT32 m_width; /* width of this section */
INT32 m_pos; /* starting position */
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
{
UINT8 m_spacing; /* spacing between each entry */
UINT8 m_shift[24]; /* shift for each character */
UINT8 m_spacing; /* spacing between each entry */
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
static const int MEM_MAX_LINE_WIDTH = 1024;

View File

@ -67,8 +67,8 @@ const image_device_type_info device_image_interface::m_device_info_array[] =
{ IO_CDROM, "cdrom", "cdrm" }, /* 13 */
{ IO_MAGTAPE, "magtape", "magt" }, /* 14 */
{ IO_ROM, "romimage", "rom" }, /* 15 */
{ IO_MIDIIN, "midiin", "min" }, /* 16 */
{ IO_MIDIOUT, "midiout", "mout" } /* 17 */
{ IO_MIDIIN, "midiin", "min" }, /* 16 */
{ IO_MIDIOUT, "midiout", "mout" } /* 17 */
};

View File

@ -70,8 +70,8 @@ enum iodevice_t
IO_CDROM, /* 14 - optical CD-ROM disc */
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_MIDIIN, /* 17 - MIDI In port */
IO_MIDIOUT, /* 18 - MIDI Out port */
IO_MIDIIN, /* 17 - MIDI In port */
IO_MIDIOUT, /* 18 - MIDI Out port */
IO_COUNT /* 19 - Total Number of IO_devices for searching */
};

View File

@ -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)
: device_t(mconfig, MIDIIN, "MIDI In image device", tag, owner, clock),
device_image_interface(mconfig, *this),
device_serial_interface(mconfig, *this)
device_image_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;
if (m_midi == NULL) {
return;
return;
}
while (osd_poll_midi_channel(m_midi))
@ -122,8 +122,8 @@ void midiin_device::call_unload(void)
{
osd_close_midi_channel(m_midi);
}
m_timer->enable(false);
m_midi = NULL;
m_timer->enable(false);
m_midi = NULL;
}
void midiin_device::tra_complete()
@ -131,7 +131,7 @@ void midiin_device::tra_complete()
// is there more waiting to send?
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++]);
if (m_xmit_read >= XMIT_RING_SIZE)
{
@ -158,7 +158,7 @@ void midiin_device::xmit_char(UINT8 data)
if (!m_tx_busy)
{
m_tx_busy = true;
// printf("tx0 %02x\n", data);
// printf("tx0 %02x\n", data);
transmit_register_setup(data);
}
else
@ -175,4 +175,3 @@ void midiin_device::xmit_char(UINT8 data)
void midiin_device::input_callback(UINT8 state)
{
}

View File

@ -44,7 +44,7 @@ void midiout_device::device_reset()
}
/*-------------------------------------------------
device_config_complete
device_config_complete
-------------------------------------------------*/
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)
{
}

View File

@ -9,12 +9,12 @@
/*
TODO:
TODO:
- receiver disable
- IRQ on DCD/DSR change
- parity
- framing error
- receiver disable
- IRQ on DCD/DSR change
- parity
- framing error
*/
@ -100,7 +100,7 @@ void mos6551_device::tra_complete()
{
transmit_register_setup(m_tdr);
m_st |= ST_TDRE;
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
{
m_st |= ST_IRQ;
@ -120,7 +120,7 @@ void mos6551_device::rcv_complete()
{
m_st |= ST_OR;
}
m_st &= ~(ST_FE | ST_PE);
m_st |= ST_RDRF;
@ -159,7 +159,7 @@ void mos6551_device::update_serial()
else
{
int baud = clock() / brg_divider[brg] / 16;
set_tra_rate(baud);
if (m_ctrl & CTRL_RXC_BRG)
@ -250,12 +250,12 @@ WRITE8_MEMBER( mos6551_device::write )
case 0:
m_tdr = data;
m_st &= ~ST_TDRE;
if (is_transmit_register_empty())
{
transmit_register_setup(m_tdr);
m_st |= ST_TDRE;
if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
{
m_st |= ST_IRQ;

View File

@ -93,17 +93,17 @@ protected:
CTRL_BRG_9600,
CTRL_BRG_19200,
CTRL_BRG_MASK = 0x0f,
CTRL_RXC_EXT = 0x00,
CTRL_RXC_BRG = 0x10,
CTRL_RXC_MASK = 0x10,
CTRL_WL_8 = 0x00,
CTRL_WL_7 = 0x20,
CTRL_WL_6 = 0x40,
CTRL_WL_5 = 0x60,
CTRL_WL_MASK = 0x60,
CTRL_SB_1 = 0x00,
CTRL_SB_2 = 0x80,
CTRL_SB_MASK = 0x80
@ -112,9 +112,9 @@ protected:
enum
{
CMD_DTR = 0x01,
CMD_RIE = 0x02,
CMD_TC_RTS_HI = 0x00,
CMD_TC_TIE_RTS_LO = 0x04,
CMD_TC_RTS_LO = 0x08,

View File

@ -976,4 +976,3 @@ void duart68681_channel::ACR_updated()
{
write_chan_reg(1, CSR);
}

View File

@ -3679,7 +3679,7 @@ static DEVICE_RESET( s3c24xx )
static DEVICE_START( s3c24xx )
{
s3c24xx_t *s3c24xx = get_token( device);
s3c24xx->m_cpu = device->machine().device( "maincpu");
verboselog( device->machine(), 1, "s3c24xx device start\n");

View File

@ -1002,10 +1002,10 @@ void wd_fdc_t::sector_w(UINT8 val)
if (inverted_bus) val ^= 0xff;
// 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
//if(sector_buffer != -1)
// return;
// return;
sector_buffer = val;
delay_cycles(t_sector, dden ? delay_register_commit*2 : delay_register_commit);

View File

@ -1478,7 +1478,7 @@ static struct rom_entry *software_find_romdata(software_part *swpart, const char
data++;
}
if (data && !data->_name)
data = NULL;
}

View File

@ -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)
: device_t(mconfig, DIGITALKER, "Digitalker", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_rom(NULL),
m_stream(NULL),
m_data(0),
m_cs(0),
m_cms(0),
m_wr(0),
m_intr(0),
m_bpos(0),
m_apos(0),
m_mode(0),
m_cur_segment(0),
m_cur_repeat(0),
m_segments(0),
m_repeats(0),
m_prev_pitch(0),
m_pitch(0),
m_pitch_pos(0),
m_stop_after(0),
m_cur_dac(0),
m_cur_bits(0),
m_zero_count(0),
m_dac_index(0)
device_sound_interface(mconfig, *this),
m_rom(NULL),
m_stream(NULL),
m_data(0),
m_cs(0),
m_cms(0),
m_wr(0),
m_intr(0),
m_bpos(0),
m_apos(0),
m_mode(0),
m_cur_segment(0),
m_cur_repeat(0),
m_segments(0),
m_repeats(0),
m_prev_pitch(0),
m_pitch(0),
m_pitch_pos(0),
m_stop_after(0),
m_cur_dac(0),
m_cur_bits(0),
m_zero_count(0),
m_dac_index(0)
{
}
@ -688,4 +688,3 @@ WRITE8_MEMBER( digitalker_device::digitalker_data_w )
{
m_data = data;
}

View File

@ -19,7 +19,7 @@
// ======================> digitalker_device
class digitalker_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
digitalker_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);

View File

@ -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)
: device_t(mconfig, FILTER_RC, "RC Filter", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_k(0),
m_memory(0),
m_type(0)
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_k(0),
m_memory(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();
set_RC_info(type, R1, R2, R3, C);
}

View File

@ -73,13 +73,13 @@ extern const flt_rc_config flt_rc_ac_default;
// ======================> filter_rc_device
class filter_rc_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
filter_rc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~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:
// 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);
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:
sound_stream* m_stream;

View File

@ -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)
: device_t(mconfig, FILTER_VOLUME, "Volume Filter", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_gain(0)
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_gain(0)
{
}
@ -48,4 +48,3 @@ void filter_volume_device::flt_volume_set_volume(float volume)
{
m_gain = (int)(volume * 256);
}

View File

@ -22,13 +22,13 @@
// ======================> filter_volume_device
class filter_volume_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
filter_volume_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
~filter_volume_device() { }
void flt_volume_set_volume(float volume);
void flt_volume_set_volume(float volume);
protected:
// device-level overrides

View File

@ -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)
: device_t(mconfig, IREMGA20, "Irem GA20", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_rom(NULL),
m_rom_size(0),
m_stream(NULL)
device_sound_interface(mconfig, *this),
m_rom(NULL),
m_rom_size(0),
m_stream(NULL)
{
}

View File

@ -56,12 +56,12 @@ protected:
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
public:
DECLARE_WRITE8_MEMBER( irem_ga20_w );
DECLARE_READ8_MEMBER( irem_ga20_r );
DECLARE_WRITE8_MEMBER( irem_ga20_w );
DECLARE_READ8_MEMBER( irem_ga20_r );
private:
void iremga20_reset();
private:
UINT8 *m_rom;
INT32 m_rom_size;

View File

@ -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)
: device_t(mconfig, K005289, "K005289", tag, owner, clock),
device_sound_interface(mconfig, *this),
device_sound_interface(mconfig, *this),
m_sound_prom(NULL),
m_stream(NULL),
m_mclock(0),
m_rate(0),
m_rate(0),
m_mixer_table(NULL),
m_mixer_lookup(NULL),
m_mixer_buffer(NULL),

View File

@ -30,7 +30,7 @@ struct k005289_sound_channel
// ======================> k005289_device
class k005289_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
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 );
private:
void make_mixer_table(int voices);
void k005289_recompute();
void make_mixer_table(int voices);
void k005289_recompute();
private:
k005289_sound_channel m_channel_list[2];
@ -61,7 +61,7 @@ private:
const unsigned char *m_sound_prom;
sound_stream *m_stream;
int m_mclock;
int m_rate;
int m_rate;
/* mixer tables and internal buffers */
INT16 *m_mixer_table;

View File

@ -198,5 +198,3 @@ void k056800_device::device_reset()
{
DEVICE_RESET_NAME( k056800 )(this);
}

View File

@ -24,16 +24,16 @@ silence compression: '00 nn' must be replaced by nn+1 times '80'.
inside 16 bits without overflowing.
*/
static const int vol_table[4] = { 26, 84, 200, 258 };
// device type definition
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)
: device_t(mconfig, NAMCO_63701X, "Namco 63701X", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_rom(NULL)
device_sound_interface(mconfig, *this),
m_stream(NULL),
m_rom(NULL)
{
}
@ -140,4 +140,3 @@ WRITE8_MEMBER( namco_63701x_device::namco_63701x_w )
}
}
}

View File

@ -21,12 +21,12 @@ struct voice_63701x
{
voice_63701x()
: select(0),
playing(0),
base_addr(0),
position(0),
volume(0),
silence_counter(0) {}
playing(0),
base_addr(0),
position(0),
volume(0),
silence_counter(0) {}
int select;
int playing;
int base_addr;
@ -58,7 +58,7 @@ public:
private:
voice_63701x m_voices[2];
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;

View File

@ -2338,7 +2338,7 @@ void spu_device::key_on(const int v)
void spu_device::set_xa_format(const float _freq, const int channels)
{
// 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_channels=channels;
@ -2499,7 +2499,7 @@ void spu_device::generate_cdda(void *ptr, const unsigned int sz)
if (! cdda_buffer->get_bytes_in())
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);
}
}

View File

@ -62,7 +62,7 @@
// ======================> t6721a_device
class t6721a_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
t6721a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);

View File

@ -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)
: device_t(mconfig, TIA, "TIA", tag, owner, clock),
device_sound_interface(mconfig, *this),
m_channel(NULL),
m_chip(NULL)
device_sound_interface(mconfig, *this),
m_channel(NULL),
m_chip(NULL)
{
}

View File

@ -20,7 +20,7 @@
// ======================> tia_device
class tia_device : public device_t,
public device_sound_interface
public device_sound_interface
{
public:
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);
public:
DECLARE_WRITE8_MEMBER( tia_sound_w );
DECLARE_WRITE8_MEMBER( tia_sound_w );
private:
sound_stream *m_channel;

View File

@ -17,7 +17,7 @@ const device_type EF9340_1 = &device_creator<ef9340_1_device>;
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)
}
}
}

View File

@ -17,14 +17,13 @@
#define MCFG_EF9340_1_ADD(_tag, _clock, _screen_tag) \
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
{
public:
// construction/destruction
ef9340_1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// construction/destruction
ef9340_1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// 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; }
@ -82,4 +81,3 @@ protected:
extern const device_type EF9340_1;
#endif /* __EF9340_1_H__ */

View File

@ -318,20 +318,20 @@ READ8_MEMBER(i8244_device::read)
break;
case 0xa5:
if ((m_vdc.s.control & VDC_CONTROL_REG_STROBE_XY))
case 0xa5:
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;
break;
default:
data = m_vdc.reg[offset];
data = m_x_beam_pos;
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 ( ( 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 */
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_CHARACTERS = 0x80;
UINT8 collision_map[160];
UINT8 collision_map[160];
if ( vpos == m_start_vpos )
@ -501,8 +501,8 @@ void i8244_device::render_scanline(int vpos)
/* Regular foreground objects */
for ( int i = 0; i < ARRAY_LENGTH( m_vdc.s.foreground ); i++ )
{
int y = m_vdc.s.foreground[i].y & 0xFE;
int height = 8 - ( ( ( y >> 1 ) + m_vdc.s.foreground[i].ptr ) & 7 );
int y = m_vdc.s.foreground[i].y & 0xFE;
int height = 8 - ( ( ( y >> 1 ) + m_vdc.s.foreground[i].ptr ) & 7 );
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 )
{
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
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 )
{
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 );
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_shift = 0;
switch ( m_vdc.s.sprites[i].color & 0x03 )
switch ( m_vdc.s.sprites[i].color & 0x03 )
{
case 1: // Xg attribute set
x_shift = 2;
@ -736,7 +735,7 @@ void i8244_device::sound_stream_update(sound_stream &stream, stream_sample_t **i
/* Generate the signal */
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++ )
{
@ -791,5 +790,3 @@ UINT32 i8244_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
return 0;
}

View File

@ -22,23 +22,18 @@
MCFG_DEVICE_ADD(_tag, I8244, _clock) \
MCFG_I8244_SCREEN_TAG(_screen_tag) \
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) \
i8244_device::set_screen_tag(*device, _screen_tag); \
i8244_device::set_screen_tag(*device, _screen_tag);
#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) \
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) \
MCFG_DEVICE_ADD(_tag, I8245, _clock) \
MCFG_I8244_SCREEN_TAG(_screen_tag) \
MCFG_I8244_IRQ_CB(_irq_cb) \
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb ) \
MCFG_I8244_POSTPROCESS_CB(_postprocess_cb )
/***************************************************************************
TYPE DEFINITIONS
@ -48,15 +43,15 @@ union vdc_t {
UINT8 reg[0x100];
struct {
struct {
UINT8 y,x,color,res;
UINT8 y,x,color,res;
} sprites[4];
struct {
UINT8 y,x,ptr,color;
UINT8 y,x,ptr,color;
} foreground[12];
struct {
struct {
struct {
UINT8 y,x,ptr,color;
} single[4];
} single[4];
} quad[4];
UINT8 shape[4][8];
UINT8 control;
@ -83,8 +78,8 @@ class i8244_device : public device_t
, public device_sound_interface
{
public:
// construction/destruction
i8244_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// construction/destruction
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);
// static configuration helpers
@ -103,7 +98,7 @@ public:
inline bitmap_ind16 *get_bitmap() { return &m_tmp_bitmap; }
// Global constants
// Global constants
static const int START_ACTIVE_SCAN = 42;
static const int BORDER_SIZE = 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_HBLANK = 1;
// callbacks
devcb2_write_line m_irq_func;
// callbacks
devcb2_write_line m_irq_func;
devcb2_write16 m_postprocess_func;
const char *m_screen_tag;

View File

@ -70,7 +70,7 @@ typedef void (*mc6845_on_update_addr_changed_func)(mc6845_device *device, int ad
struct mc6845_interface
{
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 */
/* if specified, this gets called before any pixel update,

View File

@ -182,16 +182,16 @@ static VIDEO_START( cga_mc1502 );
static MC6845_INTERFACE( mc6845_cga_intf )
{
CGA_SCREEN_NAME, /* screen number */
false, /* show border area */
8, /* numbers of pixels per video memory address */
NULL, /* begin_update */
cga_update_row, /* update_row */
NULL, /* end_update */
DEVCB_NULL, /* on_de_changed */
DEVCB_NULL, /* on_cur_changed */
DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */
DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */
CGA_SCREEN_NAME, /* screen number */
false, /* show border area */
8, /* numbers of pixels per video memory address */
NULL, /* begin_update */
cga_update_row, /* update_row */
NULL, /* end_update */
DEVCB_NULL, /* on_de_changed */
DEVCB_NULL, /* on_cur_changed */
DEVCB_LINE(cga_hsync_changed), /* on_hsync_changed */
DEVCB_LINE(cga_vsync_changed), /* on_vsync_changed */
NULL
};

View File

@ -40,7 +40,7 @@ const device_type TLC34076 = &device_creator<tlc34076_device>;
// tlc34076_device - constructor
//-------------------------------------------------
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)
{
}

View File

@ -38,7 +38,7 @@ public:
static void static_set_bits(device_t &device, tlc34076_bits bits);
// public interface
const pen_t *get_pens();
const pen_t *get_pens();
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);

View File

@ -234,7 +234,7 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
floppy_image_format_t::desc_e *desc;
desc_s sectors[40];
int track_offset = 0, error_offset = 0;
UINT8 id1 = 0, id2 = 0;
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;
if(remaining_size < 0)
throw emu_fatalerror("d64_format: Incorrect track layout, max_size=%d, current_size=%d", total_size, current_size);
// Fixup the end gap
desc[21].p2 = remaining_size / 8;
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]);
generate_track(desc, physical_track, head, sectors, sector_count, total_size, image);
track_offset += track_size;
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)
{
}
bool d64_format::save(io_generic *io, floppy_image *image)

View File

@ -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 &current_size, int &end_gap_index)
{
static floppy_image_format_t::desc_e desc[25] = {
/* 00 */ { MFM, 0x4e, f.gap_1 },
/* 01 */ { SECTOR_LOOP_START, 0, f.sector_count-1 },
/* 02 */ { MFM, 0x00, 12 },
/* 03 */ { CRC_CCITT_START, 1 },
/* 04 */ { RAW, 0x4489, 3 },
/* 05 */ { MFM, 0xfe, 1 },
/* 06 */ { TRACK_ID },
/* 07 */ { HEAD_ID_SWAP },
/* 08 */ { SECTOR_ID },
/* 09 */ { SIZE_ID },
/* 10 */ { CRC_END, 1 },
/* 11 */ { CRC, 1 },
/* 12 */ { MFM, 0x4e, f.gap_2 },
/* 13 */ { MFM, 0x00, 12 },
/* 14 */ { CRC_CCITT_START, 2 },
/* 15 */ { RAW, 0x4489, 3 },
/* 16 */ { MFM, 0xfb, 1 },
/* 17 */ { SECTOR_DATA, -1 },
/* 18 */ { CRC_END, 2 },
/* 19 */ { CRC, 2 },
/* 20 */ { MFM, 0x4e, f.gap_3 },
/* 21 */ { SECTOR_LOOP_END },
/* 22 */ { MFM, 0x4e, 0 },
/* 23 */ { RAWBITS, 0x9254, 0 },
/* 24 */ { END }
};
static floppy_image_format_t::desc_e desc[25] = {
/* 00 */ { MFM, 0x4e, f.gap_1 },
/* 01 */ { SECTOR_LOOP_START, 0, f.sector_count-1 },
/* 02 */ { MFM, 0x00, 12 },
/* 03 */ { CRC_CCITT_START, 1 },
/* 04 */ { RAW, 0x4489, 3 },
/* 05 */ { MFM, 0xfe, 1 },
/* 06 */ { TRACK_ID },
/* 07 */ { HEAD_ID_SWAP },
/* 08 */ { SECTOR_ID },
/* 09 */ { SIZE_ID },
/* 10 */ { CRC_END, 1 },
/* 11 */ { CRC, 1 },
/* 12 */ { MFM, 0x4e, f.gap_2 },
/* 13 */ { MFM, 0x00, 12 },
/* 14 */ { CRC_CCITT_START, 2 },
/* 15 */ { RAW, 0x4489, 3 },
/* 16 */ { MFM, 0xfb, 1 },
/* 17 */ { SECTOR_DATA, -1 },
/* 18 */ { CRC_END, 2 },
/* 19 */ { CRC, 2 },
/* 20 */ { MFM, 0x4e, f.gap_3 },
/* 21 */ { SECTOR_LOOP_END },
/* 22 */ { MFM, 0x4e, 0 },
/* 23 */ { RAWBITS, 0x9254, 0 },
/* 24 */ { END }
};
current_size = f.gap_1*16;
if(f.sector_base_size)
current_size += f.sector_base_size * f.sector_count * 16;
else {
for(int j=0; j != f.sector_count; j++)
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 = f.gap_1*16;
if(f.sector_base_size)
current_size += f.sector_base_size * f.sector_count * 16;
else {
for(int j=0; j != f.sector_count; j++)
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;
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>;

View File

@ -301,7 +301,7 @@ protected:
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
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
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
@ -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_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_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
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_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_END, //!< End the checksum, p1 = crc id
CRC, //!< Write a checksum in the apporpriate format, p1 = crc id

View File

@ -42,7 +42,7 @@
#include "emu.h"
#include "formats/g64_dsk.h"
#define G64_FORMAT_HEADER "GCR-1541"
#define G64_FORMAT_HEADER "GCR-1541"
g64_format::g64_format()
{
@ -113,7 +113,7 @@ bool g64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
if (pos > 0) {
track_size = pick_integer_le(img, pos, 2);
pos +=2;
if (speed_zone_offset[track] > 3)
throw emu_fatalerror("g64_format: Unsupported variable speed zones on track %d", track);

View File

@ -384,23 +384,23 @@ value_ptr bplist_read_file(char *filename)
#ifdef OSX_PPC
value_ptr bplist_read_pref(char *filename, OSType folder_type)
{
FSRef prefdir;
char cstr[MAXPATHLEN];
FSRef prefdir;
char cstr[MAXPATHLEN];
OSErr err = FSFindFolder(kOnAppropriateDisk, folder_type,
FALSE, &prefdir);
if (err) {
bplist_log("Error finding preferences folder: %d\n", err);
return NULL;
}
err = FSRefMakePath(&prefdir, (UInt8 *) cstr, (UInt32) (MAXPATHLEN - 1));
if (err) {
bplist_log("Error making path name for preferences folder: %d\n", err);
return NULL;
}
strlcat(cstr, "/", MAXPATHLEN);
strlcat(cstr, filename, MAXPATHLEN);
return bplist_read_file(cstr);
OSErr err = FSFindFolder(kOnAppropriateDisk, folder_type,
FALSE, &prefdir);
if (err) {
bplist_log("Error finding preferences folder: %d\n", err);
return NULL;
}
err = FSRefMakePath(&prefdir, (UInt8 *) cstr, (UInt32) (MAXPATHLEN - 1));
if (err) {
bplist_log("Error making path name for preferences folder: %d\n", err);
return NULL;
}
strlcat(cstr, "/", MAXPATHLEN);
strlcat(cstr, filename, MAXPATHLEN);
return bplist_read_file(cstr);
}
#else
value_ptr bplist_read_pref(char *filename, OSType folder_type)

View File

@ -365,7 +365,7 @@ static const ay8910_interface ay8910_intf =
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
8, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

View File

@ -991,7 +991,7 @@ GFXDECODE_END
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
8, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

View File

@ -210,7 +210,7 @@ static const ay8910_interface ay8910_config =
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
8, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

View File

@ -804,7 +804,7 @@ static const ym3812_interface ym3812_config =
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
4, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

View File

@ -1551,8 +1551,8 @@ static MC6845_INTERFACE( mc6845_intf )
that's why the big horizontal parameters */
"screen", /* screen we are acting on */
false, /* show border area */
4, /* number of pixels per video memory address */
false, /* show border area */
4, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */
NULL, /* after pixel update callback */

View File

@ -85,11 +85,11 @@ public:
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);
void logbinary(UINT32 data,int high,int low);
memory_region *m_nandregion;
int m_nandcommand[4], m_nandoffset[4], m_nandaddressstep, m_nandaddress[4];
UINT32 m_area1_data[4];
};
void atvtrack_state::logbinary(UINT32 data,int high=31,int low=0)

View File

@ -850,7 +850,7 @@ GFXDECODE_END
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
8, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

View File

@ -4,7 +4,7 @@
These appear to run on Acorn Archimedes-compatible hardware, similar to ertictac.c.
That would make the SoC an ARM7500 or similar.
*/
/*

View File

@ -741,7 +741,7 @@ static const pia6821_interface megadpkr_pia1_intf =
static MC6845_INTERFACE( mc6845_intf )
{
"screen", /* screen we are acting on */
false, /* show border area */
false, /* show border area */
8, /* number of pixels per video memory address */
NULL, /* before pixel update callback */
NULL, /* row update callback */

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