This commit is contained in:
briantro 2016-11-24 17:26:55 -06:00
commit a1698491fe
23 changed files with 1465 additions and 168 deletions

View File

@ -651,7 +651,7 @@ Published by Others (T-yyy*** serial codes, for yyy depending on the publisher)
</part>
</software>
<software name="cookpico">
<software name="cookpico">
<description>Cooking Pico (Jpn)</description>
<year>1999</year>
<publisher>Sega Toys</publisher>

View File

@ -17,18 +17,18 @@
</part>
</software>
<software name="doraedbl">
<description>Doraemon Nobita no Dou Butsu Land</description>
<year>1996</year>
<publisher>Sega</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19040" />
<dataarea name="rom" size="524288">
<rom name="mpr-19040.ic1" size="524288" crc="0c9bae2f" sha1="bc5030fab99e8f4b1bcc8ed77c1cc07d8407df93" offset="0" />
</dataarea>
</part>
</software>
<software name="doraedbl">
<description>Doraemon Nobita no Dou Butsu Land</description>
<year>1996</year>
<publisher>Sega</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19040" />
<dataarea name="rom" size="524288">
<rom name="mpr-19040.ic1" size="524288" crc="0c9bae2f" sha1="bc5030fab99e8f4b1bcc8ed77c1cc07d8407df93" offset="0" />
</dataarea>
</part>
</software>
<software name="mickkuda">
<description>Mickey no Kudamonoya-san</description>
@ -90,20 +90,20 @@
</part>
</software>
<software name="soreike">
<description>Soreike! Anpanman Onamae Na~ni</description>
<year>1996</year>
<publisher>Sega</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19041" />
<dataarea name="rom" size="524288">
<rom name="mpr-19041.ic1" size="524288" crc="ec924165" sha1="b25a5637c8cc1f2f6224595853d540195be86ec9" offset="0" />
</dataarea>
</part>
</software>
<software name="soreike">
<description>Soreike! Anpanman Onamae Na~ni</description>
<year>1996</year>
<publisher>Sega</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19041" />
<dataarea name="rom" size="524288">
<rom name="mpr-19041.ic1" size="524288" crc="ec924165" sha1="b25a5637c8cc1f2f6224595853d540195be86ec9" offset="0" />
</dataarea>
</part>
</software>
<software name="micknatk">
<software name="micknatk">
<description>Tokyo Disneyland - Mickey no Nakayoshi Tankentai</description>
<year>1998</year>
<publisher>Sega?</publisher>
@ -148,17 +148,17 @@
</part>
</software>
<software name="uht">
<description>Ultra Hero Touch</description>
<year>1997</year>
<publisher>Bandai</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19828-T" />
<dataarea name="rom" size="524288">
<rom name="mpr-19828-t.ic1" size="524288" crc="57988dc7" sha1="438a35b2a46ec82b5e31478d9e244928f98891ab" offset="0" />
</dataarea>
</part>
</software>
<software name="uht">
<description>Ultra Hero Touch</description>
<year>1997</year>
<publisher>Bandai</publisher>
<part name="cart" interface="sawatte_cart">
<feature name="pcb" value="171-7323A" />
<feature name="ic1" value="MPR-19828-T" />
<dataarea name="rom" size="524288">
<rom name="mpr-19828-t.ic1" size="524288" crc="57988dc7" sha1="438a35b2a46ec82b5e31478d9e244928f98891ab" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -7595,7 +7595,7 @@
<year>1990</year>
<publisher>Seo Jin</publisher>
<part name="cart" interface="sms_cart">
<feature name="slot" value="seojin" />
<feature name="slot" value="seojin" />
<dataarea name="rom" size="0x080000">
<rom name="SG11004A 79ST0086END 9045" size="0x080000" crc="cdbfe86e" sha1="83d6f261471dca20f8d2e33b9807d670e9b4eb9c" offset="000000" />
</dataarea>

869
hash/zorba.xml Normal file
View File

@ -0,0 +1,869 @@
<?xml version="1.0"?>
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
<!--
Thanks to http://www.zorba.z80.de for info!
Attempting to load any td0 dump in this list throws a fatalerror,
and they are all marked as unsupported.
The following "Oracle of Zeus" newsletter disks are known to be dumped,
but require special permission for the dumps to be obtained:
1983-11-01 Oracle of Zeus Vol.1 No.1
oracle12.td0 1984-01-01 113K Oracle of Zeus Vol.1 No.2
oracle13.td0 1984-03-01 182K Oracle of Zeus Vol.1 No.3
oracle14.td0 1984-06-01 191K Oracle of Zeus Vol.1 No.4
oracle15.td0 1984-09-01 195K Oracle of Zeus Vol.1 No.5
oracle16.td0 1984-11-01 191K Oracle of Zeus Vol.1 No.6
oracle21.td0 1985-02-01 176K Oracle of Zeus Vol.2 No.1
oracle22.td0 1985-05-01 192K Oracle of Zeus Vol.2 No.2
oracle23.td0 1985-08-01 190K Oracle of Zeus Vol.2 No.3
oracle24.td0 1986-05-01 192K Oracle of Zeus Vol.2 No.4
-->
<softwarelist name="zorba" description="Telcon Zorba floppy disks">
<!-- CP/M disks -->
<software name="compat" supported="no">
<description>Compat (v3.2)</description>
<year>1985</year>
<publisher>Mycroft Labs</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="78499">
<rom name="compat v3.2 - application disk.td0" size="78499" crc="19a9d6a9" sha1="e496a9bdfa171b742425f11423c101abce8c9e85" offset="0" />
</dataarea>
</part>
</software>
<software name="cpm">
<description>58K CP/M (v2.2, BIOS v1.7A)</description>
<year>1984?</year>
<publisher>Telcon</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="174565">
<rom name="zorba1.imd" size="174565" crc="b7c4e257" sha1="be10a48c8e512476cd39c2ca0faa261bda280260" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="332397">
<rom name="zorba2.imd" size="332397" crc="9f4832b9" sha1="41b6ff86ac11077f3a16bd9ed7be991448b16968" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
<dataarea name="flop" size="351758">
<rom name="zorba5.imd" size="351758" crc="d3a2362a" sha1="4d291814b23144a7f122b565348fd5021af8c43e" offset="0" />
</dataarea>
</part>
</software>
<!-- System disk was missing, using one from the parent set -->
<software name="cpm17" cloneof="cpm" supported="partial">
<description>58K CP/M (v2.2, BIOS v1.7)</description>
<year>1984</year>
<publisher>Telcon</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="174565">
<rom name="zorba1.imd" size="174565" crc="b7c4e257" sha1="be10a48c8e512476cd39c2ca0faa261bda280260" offset="0" status="baddump" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="139002">
<rom name="cpm-80 v2.2 (zorba bios v1.7) - source disk.td0" size="139002" crc="1c549210" sha1="0ceff17dca1e9cfb7306d9e04d6c323cf434d2f2" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
<dataarea name="flop" size="109526">
<rom name="cpm-80 v2.2 (zorba bios v1.7) - utility disk.td0" size="109526" crc="da09bdd8" sha1="6d78efec8441833498025a2852504489dade9d94" offset="0" />
</dataarea>
</part>
</software>
<software name="cpm16" cloneof="cpm" supported="no">
<description>58K CP/M (v2.2, BIOS v1.6)</description>
<year>1984</year>
<publisher>Telcon</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="171898">
<rom name="cpm-80 v2.2 (zorba bios v1.6) - system disk.td0" size="171898" crc="6df3c58e" sha1="3a15e3b927f88fa34e6e6cdfffc272ff83b2a061" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="226552">
<rom name="cpm-80 v2.2 (zorba bios v1.6) - utility disk.td0" size="226552" crc="b65c0436" sha1="9f8ed5dd2167f5b9f0abd27fa6d4ed1f50646d2f" offset="0" />
</dataarea>
</part>
</software>
<software name="cpm16a" cloneof="cpm" supported="no">
<description>58K CP/M (v2.2, BIOS v1.6, Alt)</description>
<year>1984</year>
<publisher>Telcon</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="193670">
<rom name="cpm-80 v2.2 (zorba bios v1.6) - system disk 1.td0" size="193670" crc="a4530528" sha1="ff29f06c57485e8ff41f2217daac63598bdaa74e" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="171990">
<rom name="cpm-80 v2.2 (zorba bios v1.6) - system disk 2.td0" size="171990" crc="993b96ce" sha1="ac3bcd735244d3a6405dd02efbb37f944174ad3a" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
<dataarea name="flop" size="226552">
<rom name="cpm-80 v2.2 (zorba bios v1.6) - utility disk.td0" size="226552" crc="b65c0436" sha1="9f8ed5dd2167f5b9f0abd27fa6d4ed1f50646d2f" offset="0" />
</dataarea>
</part>
</software>
<software name="datastar" supported="no">
<description>DataStar (Release 1.41)</description>
<year>1982</year>
<publisher>MicroPro International</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="285491">
<rom name="datastar v1.41.td0" size="285491" crc="ff9ce693" sha1="e054c30a4738f94d6a66b21a0d8d1b6a98eecbb4" offset="0" />
</dataarea>
</part>
</software>
<software name="datastar14" cloneof="datastar">
<description>DataStar (Release 1.4)</description>
<year>1982</year>
<publisher>MicroPro International</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="290987">
<rom name="zorba3.imd" size="290987" crc="d5cf92cb" sha1="d123e3763ac8da14ef7443361f77df34dcc5cd0f" offset="0" />
</dataarea>
</part>
</software>
<software name="dbase2" supported="no">
<description>dBase II (v2.41)</description>
<year>1982</year>
<publisher>Ashton-Tate</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="117176">
<rom name="ashton-tate dbase ii v2.41 application disk - disk 1.td0" size="117176" crc="4d51f8b4" sha1="617169d9e1d2e10460a3966968701ccd44c147f2" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="94274">
<rom name="ashton-tate dbase ii v2.41 sample disk 1 - disk 2.td0" size="94274" crc="3f0b6f59" sha1="4af4aaee1f631ae1be0be11f2fc2131cf0bfbd77" offset="0" />
</dataarea>
</part>
<part name="flop3" interface="floppy_5_25">
<dataarea name="flop" size="22058">
<rom name="ashton-tate dbase ii v2.41 sample disk 2 - disk 3.td0" size="22058" crc="cfc04630" sha1="c988d1b330d1cdecf25bd63625a6caae20b53393" offset="0" />
</dataarea>
</part>
<part name="flop4" interface="floppy_5_25">
<dataarea name="flop" size="22056">
<rom name="ashton-tate dbase ii v2.41 sample disk 3 - disk 4.td0" size="22056" crc="f54b6f10" sha1="769b7abd592431cb260f72ab43300fb23ea5ec40" offset="0" />
</dataarea>
</part>
<part name="flop5" interface="floppy_5_25">
<dataarea name="flop" size="29424">
<rom name="ashton-tate dbase ii v2.41 sample disk 4 - disk 5.td0" size="29424" crc="fa4531f8" sha1="9791a692446540bcf57241e798cf7bd0d8a30ce8" offset="0" />
</dataarea>
</part>
</software>
<software name="mite" supported="no">
<description>Mite (v3.0)</description>
<year>1985</year>
<publisher>Mycroft Labs</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="161505">
<rom name="mite v3.0 - application disk.td0" size="161505" crc="4a1e5dec" sha1="1bd24b9481047a8c7db93c56fa2fd56b68e0aa49" offset="0" />
</dataarea>
</part>
</software>
<software name="wscs" supported="no">
<description>WordStar (Release 3.0) and CalcStar (Release 1.45)</description>
<year>198?</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="356678">
<rom name="wordstar v3.00.td0" size="356678" crc="37896ed4" sha1="df2c938987dda821863383cbbcb9b8e1008606f3" offset="0" />
</dataarea>
</part>
</software>
<software name="wscsa" cloneof="wscs">
<description>WordStar (Release 3.0) and CalcStar (Release 1.2)</description>
<year>198?</year>
<publisher>&lt;unknown&gt;</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="259832">
<rom name="zorba4.imd" size="259832" crc="3c89eb7a" sha1="c54c579e9a24410870eed5f7a6c3a73f0f5f2633" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 001 Public Domain Software
COMPARE.COM - File comparison utility
WASH.COM - File management utility
SWEEP.COM - File managment utility
UNERASE.COM - Unerases deleted file
INDEX.COM - Directory utility
SHOW.COM - Displays files a screenful at a time
WS.KEY - WordStar key definition file
SQUEEZE.COM - Data compression program
UMPIRE.COM - Give your memory a checkup
FILTER.COM - Strips unprintable characters from files
MENU.COM - Menu program
CHESS.COM - Plays, even displays a little board
BANNER.COM - Prints banner headlines
DU.COM - Track and sector level disk utility
IDXGEN.COM - Generate an idex at the end of WordStar files
TRANSLAT.COM - 8080 to Z80 non optimizing translator
CAT.COM - Disk catalog program
LOOK.COM - Memory search program
CRCK.COM - Cyclic redundancy check program
-->
<software name="zeus1" supported="no">
<description>Zeus Public Domain Software Disk 1</description>
<year>1983</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="204828">
<rom name="zeuslib. 001 public domain software.td0" size="204828" crc="049704a6" sha1="8ad508756e2715d23f8da21825cca31b39e836ee" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 002 Public Domain Software
HELP.COM - Help utility
*.BAS - Several MBASIC games
SM.COM - Smartmodem program
PHOTO.COM - Screen-to-file dump utility
OK.COM - Setup program for Okidata printer
CURSOR.MAC - Program to change cursor
NEWSWEEP.COM - Newsweep version 1.9 in 8K file
DU-V86.COM - Disk Utility version 8.6
SAP27.COM - Directory sort & purge
DIR.COM - File diference utility
SCAN.COM - File display utility
TYPER.COM - Typewritter program
PGLST.COM - Converts single column into multi-column list
UN.COM - File unprotector
RUBIK.CQB - Rubik cube program
CRCK.COM - Cyclic redundancy check program
-->
<software name="zeus2" supported="no">
<description>Zeus Public Domain Software Disk 2</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="280008">
<rom name="zeuslib. 002 public domain software.td0" size="280008" crc="2eaa4c27" sha1="c2b443d710e5677b0af7bcc696e0fa78f6489796" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 003 Public Domain Software
AUTOWRAP.COM - Switches on wrap at the end of the line
NOMASK.COM - Disables the zapping of the high bit in CONOUT
CMP.COM - File comparision utility
DF.COM - Sorted directory program
IDXGEN.PQS - Source for index generating program
INDEXZ.COM - Index program
LINES.COM - Get the number of lines in your document
PASSWORD.COM - Allows you to make a program password protected
SCRAMBLE.COM - Encript a file
RENAME.COM - Accepts wildcards when renaming
LU.COM - Library Utility used to combine files
XREF.BQS - Generates cross reference listings
XCAT36.COM - Cross reference utility for MAST.CAT
LISTT16.COM - File printing program version 16
FCB.COM - Displays the file control blocks
RULER.COM - Displays ruler on 25th line of the screen
OKI92.COM - Setup for Okidata 92 printer
ZBSET251.LBR - Display text on 25th (status) line
ZBMDM727.LBR - Modem 7 terminal program version 2.7
NSWP199.COM - Newsweep version 1.99
CRCK.COM - Cyclic redundancy check program
-->
<software name="zeus3" supported="no">
<description>Zeus Public Domain Software Disk 3</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="263142">
<rom name="zeuslib. 003 public domain software.td0" size="263142" crc="3f715516" sha1="fd22691481f0aab59f6ca5d3a9130eb00c064b77" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 004 Public Domain Software
*.* - Programming tools disk
(disassemblers, macro libraries, tracer, compiler, loader, etc)
CRCK.COM - Cyclic redundancy check program
-->
<software name="zeus4" supported="no">
<description>Zeus Public Domain Software Disk 4</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="269382">
<rom name="zeuslib. 004 public domain software.td0" size="269382" crc="a2a3005d" sha1="653329e738f2313e9515016d2a4aacd7d40293ce" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 005 Public Domain Software
CAL.COM - Calendar program
PHOTO1.COM - Save Screen to disk file
QK20.LBR - Qwikkey 2.0 key redefinition program
DELBR.COM - Library files extractor
LSWEEP.COM - Sweep for libraries
BARGRAPH.LBR - Zorba graphics program
WASH2.COM - Disk washer-upper version 3.2
UNERA12.COM - Unerase program
ALLOC.COM - Lists the allocation blocks on disk
DIRCHK.COM - Lists the files on a disk
DUPUSR21.COM - Make programs accessible in different USER areas
RITEMAN.COM - Printer setup for the Inforunner Riteman
SD-78.COM - Super Directory 7.8
FILEFIND.COM - Checks all available user areas on all drives
FAST2.LBR - Speeds up disk bound programs
BSORT.LBR - Fast sort program
EAC.COM - Extended Arithmetic Calculator
FILTER11.AQM - Source code to FILTER
UNSPOOL.AQM - print spooler source code
FMENU.COM - File Menu program
LABEL.LBR - Label printing programs
SYNONYM.LBR - Synonym program
DRI-HLP.LBR - Library of HELP files for Digital Research programs
FIND.COM - Another HELP program
CPMADR.COM - CP/M attributes and drive format information
PAUSE.COM - For use in SUBMIT files, menu programs, etc.
DISKCOPY.COM - Zorba track to track disk copy program
CRCK8.COM - Cyclic redundancy check program
-->
<software name="zeus5" supported="no">
<description>Zeus Public Domain Software Disk 5</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="241178">
<rom name="zeuslib. 005 public domain software.td0" size="241178" crc="1e82d9bc" sha1="d6a6c1ece5ed55c8883a13c1cd9957e5979edf29" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 006 Public Domain Software
WS-INFO.LBR - DOC files for patching WordStar
ENSOFT2.LBR - Document conversion program
TUCHTYPE.LBR - Touch-typing programs
GRADEBOK.LBR - A gradebook program
FILT2.LBR - Filters BASIC program files created with WordStar
SPELL20.* - Spelling checker version 2.0
SPINDOWN.LBR - How to get the Zorba drives to spindown quicker
-->
<software name="zeus6" supported="no">
<description>Zeus Public Domain Software Disk 6</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="268476">
<rom name="zeuslib. 006 public domain software.td0" size="268476" crc="1cd375f1" sha1="84d248b824b7d065fd7551fa4a2fd194d6ff2a24" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 007 Public Domain Software
*.* - This disk contains a grab-bag of games
(requires either MBASIC or CBASIC)
CRCK8.COM - Cyclic redundancy check program
-->
<software name="zeus7" supported="no">
<description>Zeus Public Domain Software Disk 7</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="180484">
<rom name="zeuslib. 007 public domain software.td0" size="180484" crc="a22ea734" sha1="f66e320ccb4990372ab443a1f1006d175e4307e6" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 008 Public Domain Software
ZBMDM740.COM - Modem 7.40 terminal program
PHONDATA.LBR - Phone number filing system
MSGFILES.LBR - Files commonly downloaded from BBS's
LRBDSK22.LBR - Creates logical drives on a single disk
RBBS35.LBR - Bulletin board program
SECURSYS.DOC - Advice for sysops on system security
SCRNWRAP.LBR - Screen wrap program for BIOS 1.7A & 1.8B
PILOT.LBR - Pilot Game with source
TTY.ASM - TTY program
-->
<software name="zeus8" supported="no">
<description>Zeus Public Domain Software Disk 8</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="304818">
<rom name="zeuslib. 008 public domain software.td0" size="304818" crc="c173a8ed" sha1="d3b7fb35a95a1e88f1cacf30fa4690d91c058046" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 009 Public Domain Software
MODEM9XX.* - Modem 9.00 terminal program
RUNOFF.LBR - Text formating program
ZCPR22.LBR - ZCPR is a replacement for CP/M's CCP
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus9" supported="no">
<description>Zeus Public Domain Software Disk 9</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="264184">
<rom name="zeuslib. 009 public domain software.td0" size="264184" crc="f41a5f53" sha1="f863263f211c328f124abf5a40e93aa6503aa20e" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 010 Public Domain Software
GRAF.DQC - MX-80 bit-plot graphics program
FX80-PIX.LBR - FX80 pictures
ROFF40.LBR - Text formating program version 4.0
@.COM - Online expression evaluator for CP/M's CCP
SWAP.LBR - Swaps CP/M's CONSOLE and LIST outputs
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus10" supported="no">
<description>Zeus Public Domain Software Disk 10</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="249080">
<rom name="zeuslib. 010 public domain software.td0" size="249080" crc="aca92c7e" sha1="d05346cb40f9a2ab468c0173a8b9430caa15ecc0" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 011 Public Domain Software
VUKEY.COM - Shows function keys on 25th line
DU2V17.COM - Disk Utility version 1.7
BLIST.COM - Proofing source code for BEGIN END blocks
MORSECOD.COM - Morse code program
OKI92ITAL.COM - Okidata 92 printer setup program
M7ZB-3.ASM - Modem 7 overlay for the Zorba
ZSIDFIX.DOC - Patch for Digital Research's ZSID debugger
MEX.COM - Modem terminal program
CRCK8.COM - Cyclic redundancy check program
-->
<software name="zeus11" supported="no">
<description>Zeus Public Domain Software Disk 11</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="268902">
<rom name="zeuslib. 011 public domain software.td0" size="268902" crc="bbca9771" sha1="b8434a474971143ee9cd25e1fc665c5a8dc831e1" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 012 Public Domain Software
ADVNTURE.LBR - Adventure game
BULLCOW.COM - Bullcow game
HANGMAN.LBR - Hangman game
PILOT.LBR - Pilot game
PLANE.COM - Poor man's flight simulator
SQUARE2.COM - Zorba video demonstration program
ZWORM2.COM - Green worm screen wiggle
ZGAMMON.BAS - Back Gammon game
FROG.BAS - dichotomous key demonstration program
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus12" supported="no">
<description>Zeus Public Domain Software Disk 12</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="276624">
<rom name="zeuslib. 012 public domain software.td0" size="276624" crc="d85bf1cb" sha1="e5a3e46fb9c7258769bb185a6cfc9baf416de0a9" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 013 Public Domain Software
MCAT41.LBR - Popular catalog system
MEMTEST.COM - Rasmussen memory test version 1.8
MTYPE.COM - Type utility that accepts wildcards
GRAPHICS.BAS - Zorba Graphics tutorial (MBASIC)
INFO.COM - Maps where things are in your CP/M system
MONITOR.LBR - Serial line data analyzer
PHOTO2.LBR - Saves Screen image to disk
DUMPX.LBR - Improved CP/M dump utility
ASCIDUMP.LBR - Dump a file to the screen
DIABLO.AQM - WordStar patch for Diablo printer
DRAW.PQS - Draw program - Turbo Pascal source
SCR-MU.LBR - Programmer's screen management utility
GEMINI15.LBR - CBASIC program for setting printer attributes
DATER.LBR - Calendar program written in C
SAP38.LBR - Latest Sort & Pack directory program
FIND40.LBR - Find text string
WHATSNEW.LBR - What's new on disk since last change
HELP.AQM - Source code for HELP.COM
UNDEL.LBR - Undelete program
SETDRU.LBR - A BIOS filter for hard disk users
ZCOMPARE.LBR - File comparision program
DISKMON.COM - Disk monitor utility
COUNT.LBR - Program to determine length of a file
LISTT16A.AQM - Source code for creating lists
MBASUTIL.LBR - 4 function calculator
ODDBALL.LBR - Bizarre game, supposedly Italian ping pong!
INVANALY.BAS - Investment analysis program
INSTMNT.LBR - Finds lowest commission rate
BNCHMARK.BAS - Benchmark & Timmings
DIRECDIF.LBR - Program to compare directory tracks
COMPARE2.COM - 2K file compare program
ESSAY.RQS - A true story by Richard Stillman
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus13" supported="no">
<description>Zeus Public Domain Software Disk 13</description>
<year>1984</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="284364">
<rom name="zeuslib. 013 public domain software.td0" size="284364" crc="1412b3ac" sha1="6b9727a6cfe26e215b0928d3bdb53f2665c72865" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 014 Public Domain Software
APPEND.LBR - Append adds one file to another
DBL.LBR - Prints pages side by side on an ordinary page
VDO.COM - Good emulation of Wordstar's non-document mode
SPEED.PGS - Squeezed source code for SPEED (drive speed checking)
DUMP2.LBR - Improved CP/M dump program
SAP39.LBR - Latest version of directory sort and pack
GOTHIC.LBR - Printing block letters in gothic font
SAVEPROM.LBR - Saves contents of the Zorba boot prom
SONARWAR.LQR - Squeezed library of game
OTHELLO.COM - Compiled version of CBASIC Othello game
ZGRAF15.LBR - ZGRAF business graphic program
SC2.HQP - Squeezed Help file for SuperCalc 2
FUNNIES.LBR - A barrel of fun
ZM.LBR - There's always room for another assembler
BLIST.LBR - Turbo Pascal list utility
QUOTES.PRN - Pithy savings of pithy people
PIPPATCH.AQM - File with patches to PIP
SAVER.AQM - Recover text from memory after Wordstar crash
FRUN.COM - Odd game
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus14" supported="no">
<description>Zeus Public Domain Software Disk 14</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="302842">
<rom name="zeuslib. 014 public domain software.td0" size="302842" crc="d4ffdd8a" sha1="7b2caae4c4623c25469e06d190b4fa53c67bdce8" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 015 Public Domain Software
DIRFILES3.LBR - Utility to associate a comment with each file name
NULU10.COM - Assembly language version of LU & LSWEEP
ADDRESS.LBR - Computerized name, address and phone number book
FTNOTE12.LBR - Footnoting program for use with WordStar
EDIT.LBR - Line Editor
LUX42.LBR - Utility for browsing on-line in libraries (LBR files)
DIRR.COM - Another directory program
FOOTBALL.COM - A game of American football
LFILTER.LBR - Utility to facilitate file interchange
MCIMAIL2.LBR - A library of MCI mail stuff
XLIST.COM - Cross-reference utility for Turbo Pascal programs
SIFT.LBR - Finds a string in a text file
ZORKHINT.LBR - Some programs to assist you with the game ZORK
PASSWORD.AQM - squeezed source for PASSWORD program on Zeuslib.003
HANG.BAS - what could this be? You'll need MBASIC to find out.
UNSPOOL.HLP - Help file for UNSPOOL program
CRC.COM - Cyclic redundancy check program
-->
<software name="zeus15" supported="no">
<description>Zeus Public Domain Software Disk 15</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="238514">
<rom name="zeuslib. 015 public domain software.td0" size="238514" crc="200665b1" sha1="e8a690c2f2d3a4439b4b34f9c2077f8f3d4035ca" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 016 Public Domain Software
SMC.COM - The Small C complier
FORTH.COM - A true Fig-Forth
XLISP.COM - This is LISP from SIG/M
-->
<software name="zeus16" supported="no">
<description>Zeus Public Domain Software Disk 16</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="284722">
<rom name="zeuslib. 016 public domain software.td0" size="284722" crc="6a2de0eb" sha1="a7804dd1a0dec12b5e8525fbdba08b0f3b360cff" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 017 Public Domain Software
TOUR.COM - Outline processor
DIRFILES.COM - Ver. 3.1 creates a 'data' file listing
EDIT.COM - Small, fast text editor
EX15.COM - Replacement for Submit.com and Xsub.com
FILT6.COM - Filters text files and removes control characters
WSDOCON.COM - Converts any text file into Wordstar document file
KERMIT39.COM - Telecommunications program
N30.COM - Accepts any decimal, hex, or binary number or any ASCII character and displays the value in all four modes
WHATCHAR.COM - Accepts keyboard entry and displays decimal and hexadecimal equivalent
NULU12.COM - Latest version of NU L(ibrary) U(tility)
QK21.COM - Qwikkey version 2.1
SUPERZAP.COM - Full screen interactive disk update utility
MEMAP.COM - System map utility
TPA.COM - Display TPA size
WINDEX.COM - Creates an index for any Wordstar document file
WS-USER.AQM - Assembly patch for changing default drives
GRXR.LBR - Turns a text file into a 'runnable' .com file
-->
<software name="zeus17" supported="no">
<description>Zeus Public Domain Software Disk 17</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="196860">
<rom name="zeuslib. 017 public domain software.td0" size="196860" crc="494998ae" sha1="495e97b1329370619b36769be10a90b70995de22" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 018 Public Domain Software
MEX (A Modem Executive for CP/M-80)
(Version 1.12 and 1.14 - instructions & help files)
(Zorba - specific overlay files & runnable version)
Command files
Documentation, Help files
MEX command/key/library files
MEX overlay/patch files
-->
<software name="zeus18" supported="no">
<description>Zeus Public Domain Software Disk 18</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="232056">
<rom name="zeuslib. 018 public domain software.td0" size="232056" crc="d0cb40d8" sha1="34ce4b85f0245a70c98b79420643e179aaf94e1a" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 019 Public Domain Software
Wordprocessing & Text Utilities Disk:
Biblioms (Bibliography Management system)
Sift 2.2 - Text search/sort (Zorba specific)
Listfilz - Annotated disk directories
Linesort - Alphabetical sort line-by-line
Screenwright - Screenplay formatter
Wordstar patches - how to get started
-->
<software name="zeus19" supported="no">
<description>Zeus Public Domain Software Disk 19</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="202302">
<rom name="zeuslib. 019 public domain software.td0" size="202302" crc="5aab0c0f" sha1="a79d65730aa2fb8aa6bd8667a1a2a049b29e6b68" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 020 Public Domain Software
Oracle of Zeus - Index (Volume 1)
Supercalc, Calcstar, Infostar templates
Curve-fitting and graphing programs
MBASIC programmer's utility
Zorba utilities and oddities
M7ZB-4 - latest Zorba modem overlay
RECIPE.COM - file your kitchen favorites
-->
<software name="zeus20" supported="no">
<description>Zeus Public Domain Software Disk 20</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="237880">
<rom name="zeuslib. 020 public domain software.td0" size="237880" crc="48dbec4f" sha1="cbf6ace0fdb29fdff8d7e01f21a029339fab7198" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 021 Public Domain Software
Entertaining and Educational Games
(With MBASIC, CBASIC, and Pascal source included)
-->
<software name="zeus21" supported="no">
<description>Zeus Public Domain Software Disk 21</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="269470">
<rom name="zeuslib. 021 public domain software.td0" size="269470" crc="0efd6c68" sha1="a2b52a52694d9c75486f8573c4534442e3531c7f" offset="0" />
</dataarea>
</part>
</software>
<!--
Zeuslib. 022 Public Domain Software
Forth-83 (Version 2.1.1) - The Laxen/Perry Model
F83.COM - the compiled system
The source files - all .BLK files
Documentation/instruction files
TUTORIAL.COM - simple help for begginers
-->
<software name="zeus22" supported="no">
<description>Zeus Public Domain Software Disk 22</description>
<year>1985</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="252560">
<rom name="zeuslib. 022 public domain software.td0" size="252560" crc="2bcd0db4" sha1="ccd3371ed90c68f88dede9dbbe6b3d4ee32b717f" offset="0" />
</dataarea>
</part>
</software>
<software name="zeusbios" supported="no">
<description>Zorba BIOS (v1.8Z)</description>
<year>1986</year>
<publisher>Zorba Equipment Users' Society (Zeus)</publisher>
<part name="flop43" interface="floppy_5_25">
<dataarea name="flop" size="116362">
<rom name="zorba bios v1.8z.td0" size="116362" crc="51e4746a" sha1="ed363b3ef97e273ac887a46c1a839dc8b5d15307" offset="0" />
</dataarea>
</part>
</software>
<!-- Co-Power-88 disks -->
<software name="copower" supported="no">
<description>Co-Power-88 for Telcon Zorba</description>
<year>1985</year>
<publisher>SWP</publisher>
<info name="usage" value="Requires Co-Power-88 expansion" />
<part name="flop19" interface="floppy_5_25">
<dataarea name="flop" size="39433">
<rom name="swp co-power 88.td0" size="39433" crc="f4134db7" sha1="fc270abad2f715b86138d192ccc7f9ab173e77c9" offset="0" />
</dataarea>
</part>
</software>
<software name="cpm86" supported="no">
<description>CP/M-86 (v1.1)</description>
<year>1983</year>
<publisher>SWP?</publisher>
<info name="usage" value="Requires Co-Power-88 expansion" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="247616">
<rom name="digital research cpm-86 v1.1.td0" size="247616" crc="d6137dca" sha1="0feba6c3c36f28be5aec57ec877ea57e67d1754a" offset="0" />
</dataarea>
</part>
</software>
<software name="pcdos330" supported="no">
<description>PC-DOS (v3.30)</description>
<year>1987</year>
<publisher>SWP?</publisher>
<info name="usage" value="Requires Co-Power-88 expansion" />
<part name="flop18" interface="floppy_5_25">
<dataarea name="flop" size="322343">
<rom name="pc dos 3.30 system disk.td0" size="322343" crc="ca6260df" sha1="2a0d4988ee2562a98b7af1d345d4899ce55aa8d2" offset="0" />
</dataarea>
</part>
</software>
<software name="pcdos211" supported="no">
<description>PC-DOS (v2.11)</description>
<year>1983</year>
<publisher>SWP?</publisher>
<info name="usage" value="Requires Co-Power-88 expansion" />
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="227363">
<rom name="pc dos 2.11 system disk 1.td0" size="227363" crc="c6291464" sha1="68b7ccd7ffac98f76bca48ae4cae2fccd70f8a51" offset="0" />
</dataarea>
</part>
<part name="flop2" interface="floppy_5_25">
<dataarea name="flop" size="228103">
<rom name="pc dos 2.11 system disk 2.td0" size="228103" crc="3f898887" sha1="0071c716f1c6d5be153c5013f29819869f449209" offset="0" />
</dataarea>
</part>
</software>
</softwarelist>

View File

@ -1894,6 +1894,8 @@ files {
MAME_DIR .. "src/mame/video/fmtowns.cpp",
MAME_DIR .. "src/mame/machine/fm_scsi.cpp",
MAME_DIR .. "src/mame/machine/fm_scsi.h",
MAME_DIR .. "src/mame/machine/fmt_icmem.cpp",
MAME_DIR .. "src/mame/machine/fmt_icmem.h",
MAME_DIR .. "src/mame/drivers/fm7.cpp",
MAME_DIR .. "src/mame/includes/fm7.h",
MAME_DIR .. "src/mame/video/fm7.cpp",

View File

@ -334,7 +334,7 @@ static void InitDasm8201(void)
Op[i].type = type;
/* 2 byte code ? */
while (isspace((uint8_t)*p)) p++;
while (isspace(u8(*p))) p++;
if( (*p) )
Op[i].type |= 0x10;
/* number of param */

View File

@ -184,7 +184,7 @@ const device_type ALPHA8301L = &device_creator<alpha8301_cpu_device>;
#define FN(x) &alpha8201_cpu_device::x
alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: cpu_device(mconfig, ALPHA8201L, "ALPHA-8201L", tag, owner, clock, "alpha8201l", __FILE__)
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
, m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0)
@ -193,7 +193,7 @@ alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, const
}
alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source)
alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source)
: cpu_device(mconfig, type, name, tag, owner, clock, shortname, source)
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
, m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 0)
@ -201,7 +201,7 @@ alpha8201_cpu_device::alpha8201_cpu_device(const machine_config &mconfig, device
{
}
alpha8301_cpu_device::alpha8301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
alpha8301_cpu_device::alpha8301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: alpha8201_cpu_device(mconfig, ALPHA8301L, "ALPHA-8301L", tag, owner, clock, "alpha8301l", __FILE__)
{
m_opmap = opcode_8301;
@ -217,49 +217,49 @@ unsigned alpha8201_cpu_device::M_RDMEM_OPCODE()
return retval;
}
void alpha8201_cpu_device::M_ADD(uint8_t dat)
void alpha8201_cpu_device::M_ADD(u8 dat)
{
uint16_t temp = m_A + dat;
u16 temp = m_A + dat;
m_A = temp & 0xff;
m_zf = (m_A==0);
m_cf = temp>>8;
}
void alpha8201_cpu_device::M_ADDB(uint8_t dat)
void alpha8201_cpu_device::M_ADDB(u8 dat)
{
uint16_t temp = m_B + dat;
u16 temp = m_B + dat;
m_B = temp & 0xff;
m_zf = (m_B==0);
m_cf = temp>>8;
}
void alpha8201_cpu_device::M_SUB(uint8_t dat)
void alpha8201_cpu_device::M_SUB(u8 dat)
{
m_cf = (m_A>=dat); // m_cf is No Borrow
m_A -= dat;
m_zf = (m_A==0);
}
void alpha8201_cpu_device::M_AND(uint8_t dat)
void alpha8201_cpu_device::M_AND(u8 dat)
{
m_A &= dat;
m_zf = (m_A==0);
}
void alpha8201_cpu_device::M_OR(uint8_t dat)
void alpha8201_cpu_device::M_OR(u8 dat)
{
m_A |= dat;
m_zf = (m_A==0);
}
void alpha8201_cpu_device::M_XOR(uint8_t dat)
void alpha8201_cpu_device::M_XOR(u8 dat)
{
m_A ^= dat;
m_zf = (m_A==0);
m_cf = 0;
}
void alpha8201_cpu_device::M_JMP(uint8_t dat)
void alpha8201_cpu_device::M_JMP(u8 dat)
{
m_pc.b.l = dat;
/* update pc page */
@ -279,8 +279,8 @@ void alpha8201_cpu_device::M_UNDEFINED()
void alpha8201_cpu_device::M_UNDEFINED2()
{
uint8_t op = M_RDOP(m_pc.w.l-1);
uint8_t imm = M_RDMEM_OPCODE();
u8 op = M_RDOP(m_pc.w.l-1);
u8 imm = M_RDMEM_OPCODE();
logerror("alpha8201: PC = %03x, Unimplemented opcode = %02x,%02x\n", m_pc.w.l-2, op,imm);
#if SHOW_MESSAGE_CONSOLE
osd_printf_debug("alpha8201: PC = %03x, Unimplemented opcode = %02x,%02x\n", m_pc.w.l-2, op,imm);
@ -293,7 +293,7 @@ void alpha8201_cpu_device::M_UNDEFINED2()
void alpha8201_cpu_device::stop()
{
uint8_t pcptr = M_RDMEM(0x001) & 0x1f;
u8 pcptr = M_RDMEM(0x001) & 0x1f;
M_WRMEM(pcptr,(M_RDMEM(pcptr)&0xf)+0x08); /* mark entry point ODD to HALT */
m_mb |= 0x08; /* mark internal HALT state */
}
@ -600,7 +600,7 @@ void alpha8201_cpu_device::device_reset()
void alpha8201_cpu_device::execute_run()
{
unsigned opcode;
uint8_t pcptr;
u8 pcptr;
if(m_halt)
{
@ -688,7 +688,7 @@ void alpha8201_cpu_device::execute_set_input(int inputnum, int state)
}
offs_t alpha8201_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
offs_t alpha8201_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options)
{
extern CPU_DISASSEMBLE( alpha8201 );
return CPU_DISASSEMBLE_NAME(alpha8201)(this, stream, pc, oprom, opram, options);

View File

@ -20,11 +20,11 @@ cpu/alph8201/ will be removed when the alpha 8304 has been dumped.
* *
\**************************************************************************/
#pragma once
#ifndef __ALPH8201_H__
#define __ALPH8201_H__
#pragma once
enum
{
ALPHA8201_PC = STATE_GENPC,
@ -50,8 +50,8 @@ class alpha8201_cpu_device : public cpu_device
{
public:
// construction/destruction
alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
alpha8201_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
alpha8201_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, u32 clock, const char *shortname, const char *source);
protected:
// device-level overrides
@ -59,9 +59,9 @@ protected:
virtual void device_reset() override;
// device_execute_interface overrides
virtual uint32_t execute_min_cycles() const override { return 1; }
virtual uint32_t execute_max_cycles() const override { return 16; }
virtual uint32_t execute_input_lines() const override { return 1; }
virtual u32 execute_min_cycles() const override { return 1; }
virtual u32 execute_max_cycles() const override { return 16; }
virtual u32 execute_input_lines() const override { return 1; }
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;
@ -74,25 +74,25 @@ protected:
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
// device_disasm_interface overrides
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
virtual u32 disasm_min_opcode_bytes() const override { return 1; }
virtual u32 disasm_max_opcode_bytes() const override { return 4; }
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override;
uint8_t M_RDMEM(uint16_t A) { return m_program->read_byte(A); }
void M_WRMEM(uint16_t A,uint8_t V) { m_program->write_byte(A, V); }
uint8_t M_RDOP(uint16_t A) { return m_direct->read_byte(A); }
uint8_t M_RDOP_ARG(uint16_t A) { return m_direct->read_byte(A); }
uint8_t RD_REG(uint8_t x) { return m_RAM[(m_regPtr<<3)+(x)]; }
void WR_REG(uint8_t x, uint8_t d) { m_RAM[(m_regPtr<<3)+(x)]=(d); }
u8 M_RDMEM(u16 A) { return m_program->read_byte(A); }
void M_WRMEM(u16 A, u8 V) { m_program->write_byte(A, V); }
u8 M_RDOP(u16 A) { return m_direct->read_byte(A); }
u8 M_RDOP_ARG(u16 A) { return m_direct->read_byte(A); }
u8 RD_REG(u8 x) { return m_RAM[(m_regPtr<<3)+(x)]; }
void WR_REG(u8 x, u8 d) { m_RAM[(m_regPtr<<3)+(x)]=(d); }
unsigned M_RDMEM_OPCODE();
void M_ADD(uint8_t dat);
void M_ADDB(uint8_t dat);
void M_SUB(uint8_t dat);
void M_AND(uint8_t dat);
void M_OR(uint8_t dat);
void M_XOR(uint8_t dat);
void M_JMP(uint8_t dat);
void M_ADD(u8 dat);
void M_ADDB(u8 dat);
void M_SUB(u8 dat);
void M_AND(u8 dat);
void M_OR(u8 dat);
void M_XOR(u8 dat);
void M_JMP(u8 dat);
void M_UNDEFINED();
void M_UNDEFINED2();
@ -102,10 +102,10 @@ protected:
void nop() { }
void rora() { m_cf = m_A &1; m_A = (m_A>>1) | (m_A<<7); }
void rola() { m_cf = (m_A>>7)&1; m_A = (m_A<<1) | (m_A>>7); }
void inc_b() { M_ADDB(0x02); }
void dec_b() { M_ADDB(0xfe); }
void inc_a() { M_ADD(0x01); }
void dec_a() { M_ADD(0xff); }
void inc_b() { M_ADDB(0x02); }
void dec_b() { M_ADDB(0xfe); }
void inc_a() { M_ADD(0x01); }
void dec_a() { M_ADD(0xff); }
void cpl() { m_A ^= 0xff; };
void ld_a_ix0_0() { m_A = M_RDMEM(m_ix0.w.l+0); }
@ -290,26 +290,26 @@ protected:
void ld_lp2_n() { m_lp2 = M_RDMEM_OPCODE(); }
void ld_b_n() { m_B = M_RDMEM_OPCODE(); }
void djnz_lp0() { uint8_t i=M_RDMEM_OPCODE(); m_lp0--; if (m_lp0 != 0) M_JMP(i); }
void djnz_lp1() { uint8_t i=M_RDMEM_OPCODE(); m_lp1--; if (m_lp1 != 0) M_JMP(i); }
void djnz_lp2() { uint8_t i=M_RDMEM_OPCODE(); m_lp2--; if (m_lp2 != 0) M_JMP(i); }
void jnz() { uint8_t i=M_RDMEM_OPCODE(); if (!m_zf) M_JMP(i); }
void jnc() { uint8_t i=M_RDMEM_OPCODE(); if (!m_cf) M_JMP(i);}
void jz() { uint8_t i=M_RDMEM_OPCODE(); if ( m_zf) M_JMP(i); }
void jc() { uint8_t i=M_RDMEM_OPCODE(); if ( m_cf) M_JMP(i);}
void jmp() { M_JMP(M_RDMEM_OPCODE() ); }
void djnz_lp0() { u8 i=M_RDMEM_OPCODE(); m_lp0--; if (m_lp0 != 0) M_JMP(i); }
void djnz_lp1() { u8 i=M_RDMEM_OPCODE(); m_lp1--; if (m_lp1 != 0) M_JMP(i); }
void djnz_lp2() { u8 i=M_RDMEM_OPCODE(); m_lp2--; if (m_lp2 != 0) M_JMP(i); }
void jnz() { u8 i=M_RDMEM_OPCODE(); if (!m_zf) M_JMP(i); }
void jnc() { u8 i=M_RDMEM_OPCODE(); if (!m_cf) M_JMP(i);}
void jz() { u8 i=M_RDMEM_OPCODE(); if ( m_zf) M_JMP(i); }
void jc() { u8 i=M_RDMEM_OPCODE(); if ( m_cf) M_JMP(i);}
void jmp() { M_JMP(M_RDMEM_OPCODE() ); }
void stop();
/* ALPHA 8301 : added instruction */
void exg_a_ix0() { uint8_t t=m_A; m_A = m_ix0.b.l; m_ix0.b.l = t; }
void exg_a_ix1() { uint8_t t=m_A; m_A = m_ix1.b.l; m_ix1.b.l = t; }
void exg_a_ix2() { uint8_t t=m_A; m_A = m_ix2.b.l; m_ix2.b.l = t; }
void exg_a_lp0() { uint8_t t=m_A; m_A = m_lp0; m_lp0 = t; }
void exg_a_lp1() { uint8_t t=m_A; m_A = m_lp1; m_lp1 = t; }
void exg_a_lp2() { uint8_t t=m_A; m_A = m_lp2; m_lp2 = t; }
void exg_a_b() { uint8_t t=m_A; m_A = m_B; m_B = t; }
void exg_a_rb() { uint8_t t=m_A; m_A = m_regPtr; m_regPtr = t; }
void exg_a_ix0() { u8 t=m_A; m_A = m_ix0.b.l; m_ix0.b.l = t; }
void exg_a_ix1() { u8 t=m_A; m_A = m_ix1.b.l; m_ix1.b.l = t; }
void exg_a_ix2() { u8 t=m_A; m_A = m_ix2.b.l; m_ix2.b.l = t; }
void exg_a_lp0() { u8 t=m_A; m_A = m_lp0; m_lp0 = t; }
void exg_a_lp1() { u8 t=m_A; m_A = m_lp1; m_lp1 = t; }
void exg_a_lp2() { u8 t=m_A; m_A = m_lp2; m_lp2 = t; }
void exg_a_b() { u8 t=m_A; m_A = m_B; m_B = t; }
void exg_a_rb() { u8 t=m_A; m_A = m_regPtr; m_regPtr = t; }
void ld_ix0_a() { m_ix0.b.l = m_A; }
void ld_ix1_a() { m_ix1.b.l = m_A; }
@ -320,8 +320,8 @@ protected:
void ld_b_a() { m_B = m_A; }
void ld_rb_a() { m_regPtr = m_A; }
void exg_ix0_ix1() { uint8_t t=m_ix1.b.l; m_ix1.b.l = m_ix0.b.l; m_ix0.b.l = t; }
void exg_ix0_ix2() { uint8_t t=m_ix2.b.l; m_ix2.b.l = m_ix0.b.l; m_ix0.b.l = t; }
void exg_ix0_ix1() { u8 t=m_ix1.b.l; m_ix1.b.l = m_ix0.b.l; m_ix0.b.l = t; }
void exg_ix0_ix2() { u8 t=m_ix2.b.l; m_ix2.b.l = m_ix0.b.l; m_ix0.b.l = t; }
void op_d4() { m_A = M_RDMEM( ((m_RAM[(7<<3)+7] & 3) << 8) | M_RDMEM_OPCODE() ); }
void op_d5() { M_WRMEM( ((m_RAM[(7<<3)+7] & 3) << 8) | M_RDMEM_OPCODE(), m_A ); }
@ -337,16 +337,16 @@ protected:
void op_rep_ld_b_ix0() { do { m_RAM[(m_B>>1)&0x3f] = M_RDMEM(m_ix0.w.l); m_ix0.b.l++; m_B+=2; m_lp0--; } while (m_lp0 != 0); }
void ld_rxb_a() { m_RAM[(m_B>>1)&0x3f] = m_A; }
void ld_a_rxb() { m_A = m_RAM[(m_B>>1)&0x3f]; }
void cmp_a_rxb() { uint8_t i=m_RAM[(m_B>>1)&0x3f]; m_zf = (m_A==i); m_cf = (m_A>=i); }
void cmp_a_rxb() { u8 i=m_RAM[(m_B>>1)&0x3f]; m_zf = (m_A==i); m_cf = (m_A>=i); }
void xor_a_rxb() { M_XOR(m_RAM[(m_B>>1)&0x3f] ); }
void add_a_cf() { if (m_cf) inc_a(); }
void sub_a_cf() { if (m_cf) dec_a(); }
void tst_a() { m_zf = (m_A==0); }
void clr_a() { m_A = 0; m_zf = (m_A==0); }
void cmp_a_n() { uint8_t i=M_RDMEM_OPCODE(); m_zf = (m_A==i); m_cf = (m_A>=i); }
void tst_a() { m_zf = (m_A==0); }
void clr_a() { m_A = 0; m_zf = (m_A==0); }
void cmp_a_n() { u8 i=M_RDMEM_OPCODE(); m_zf = (m_A==i); m_cf = (m_A>=i); }
void xor_a_n() { M_XOR(M_RDMEM_OPCODE() ); }
void call() { uint8_t i=M_RDMEM_OPCODE(); m_retptr.w.l = m_pc.w.l; M_JMP(i); };
void call() { u8 i=M_RDMEM_OPCODE(); m_retptr.w.l = m_pc.w.l; M_JMP(i); };
void ld_a_ix0_a() { m_A = M_RDMEM(m_ix0.w.l+m_A); }
void ret() { m_mb = m_retptr.b.h; M_JMP( m_retptr.b.l ); };
void save_zc() { m_savez = m_zf; m_savec = m_cf; };
@ -366,27 +366,27 @@ protected:
address_space_config m_program_config;
address_space_config m_io_config;
uint8_t m_RAM[8*8]; /* internal GP register 8 * 8bank */
u8 m_RAM[8*8]; /* internal GP register 8 * 8bank */
unsigned m_PREVPC;
PAIR m_retptr; /* for 8301, return address of CALL */
PAIR m_pc; /* 2bit+8bit program counter */
uint8_t m_regPtr; /* RB register base */
uint8_t m_mb; /* MB memory bank reg. latch after Branch */
uint8_t m_cf; /* C flag */
uint8_t m_zf; /* Z flag */
uint8_t m_savec; /* for 8301, save flags */
uint8_t m_savez; /* for 8301, save flags */
//
PAIR m_ix0; /* 8bit memory read index reg. */
PAIR m_ix1; /* 8bitmemory read index reg. */
PAIR m_ix2; /* 8bitmemory write index reg. */
uint8_t m_lp0; /* 8bit loop reg. */
uint8_t m_lp1; /* 8bit loop reg. */
uint8_t m_lp2; /* 8bit loop reg. */
uint8_t m_A; /* 8bit accumulator */
uint8_t m_B; /* 8bit register */
//
uint8_t m_halt; /* halt input line */
u8 m_regPtr; /* RB register base */
u8 m_mb; /* MB memory bank reg. latch after Branch */
u8 m_cf; /* C flag */
u8 m_zf; /* Z flag */
u8 m_savec; /* for 8301, save flags */
u8 m_savez; /* for 8301, save flags */
PAIR m_ix0; /* 8bit memory read index reg. */
PAIR m_ix1; /* 8bitmemory read index reg. */
PAIR m_ix2; /* 8bitmemory write index reg. */
u8 m_lp0; /* 8bit loop reg. */
u8 m_lp1; /* 8bit loop reg. */
u8 m_lp2; /* 8bit loop reg. */
u8 m_A; /* 8bit accumulator */
u8 m_B; /* 8bit register */
u8 m_halt; /* halt input line */
address_space *m_program;
direct_read_data *m_direct;
@ -396,9 +396,9 @@ protected:
const s_opcode *m_opmap;
// Used for import/export only
uint8_t m_sp;
uint8_t m_R[8];
uint8_t m_flags;
u8 m_sp;
u8 m_R[8];
u8 m_flags;
};
@ -406,7 +406,7 @@ class alpha8301_cpu_device : public alpha8201_cpu_device
{
public:
// construction/destruction
alpha8301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
alpha8301_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};

View File

@ -202,7 +202,7 @@ protected:
}
};
// artificator internal class
// artificater internal class
class artifacter
{
public:

View File

@ -41,12 +41,23 @@ public:
m_vram(*this, "vram")
{ }
uint32_t m_test_x,m_test_y,m_start_offs;
uint8_t m_type;
u32 m_test_x,m_test_y,m_start_offs;
u8 m_type;
u8 irl0pend, irl0en;
u8 irl1pend, irl1en;
u8 irl2pend, irl2en; // UARTs ?
u8 irl3pend0, irl3en0;
u8 irl3pend1, irl3en1;
void testIrq();
DECLARE_READ8_MEMBER(irqpend_r);
DECLARE_WRITE8_MEMBER(irqen_w);
DECLARE_READ8_MEMBER(test_r);
DECLARE_WRITE64_MEMBER(eeprom_w);
DECLARE_READ64_MEMBER(hwver_r);
virtual void video_start() override;
virtual void machine_reset() override;
uint32_t screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<ns16550_device> m_uart0;
@ -60,6 +71,10 @@ public:
void aristmk6_state::video_start()
{
}
void aristmk6_state::machine_reset()
{
irl0pend = irl0en = irl1pend = irl1en = irl2pend = irl2en = irl3pend0 = irl3en0 = irl3pend1 = irl3en1 = 0;
}
uint32_t aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
@ -67,6 +82,11 @@ uint32_t aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rg
int x,y,count;
const uint8_t *blit_ram = memregion("maincpu")->base();
if (machine().input().code_pressed(KEYCODE_U)) {
irl2pend |= 2;
testIrq();
}
if(machine().input().code_pressed(KEYCODE_Z))
m_test_x++;
@ -168,6 +188,68 @@ uint32_t aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rg
return 0;
}
void aristmk6_state::testIrq()
{
m_maincpu->set_input_line(SH4_IRL0, (irl0pend & irl0en) ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(SH4_IRL1, (irl1pend & irl1en) ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(SH4_IRL2, (irl2pend & irl2en) ? ASSERT_LINE : CLEAR_LINE);
m_maincpu->set_input_line(SH4_IRL3, ((irl3pend0 & irl3en0) || (irl3pend1 & irl3en1)) ? ASSERT_LINE : CLEAR_LINE);
}
READ8_MEMBER(aristmk6_state::irqpend_r)
{
switch (offset)
{
case 0x00e8 - 0x00e8:
return irl0pend;
case 0x00f0 - 0x00e8:
return irl1pend;
case 0x00f8 - 0x00e8:
return irl2pend;
case 0x0100 - 0x00e8:
return irl3pend0;
case 0x0101 - 0x00e8:
return irl3pend1;
default:
logerror("Unhandled read %08x\n", 0x120000e8 + offset);
return 0;
}
}
WRITE8_MEMBER(aristmk6_state::irqen_w)
{
switch (offset)
{
case 0x0108 - 0x0108:
irl0en = data;
irl0pend &= ~data;
testIrq();
break;
case 0x0110 - 0x0108:
irl1en = data;
irl1pend &= ~data;
testIrq();
break;
case 0x0118 - 0x0108:
irl2en = data;
irl2pend &= ~data;
testIrq();
break;
case 0x0120 - 0x0108:
irl3en0 = data;
irl3pend0 &= ~data;
testIrq();
break;
case 0x0121 - 0x0108:
irl3en1 = data;
irl3pend1 &= ~data;
testIrq();
break;
default:
logerror("Unhandled write %08x %02x\n", 0x12000108 + offset, data);
}
}
READ8_MEMBER(aristmk6_state::test_r)
{
static int flip;
@ -216,6 +298,8 @@ static ADDRESS_MAP_START( aristmk6_map, AS_PROGRAM, 64, aristmk6_state )
AM_RANGE(0x12000078, 0x1200007f) AM_WRITENOP // watchdog ??
AM_RANGE(0x12000080, 0x12000087) AM_WRITENOP // 0-1-2 written here repeatedly, diag LED or smth ?
AM_RANGE(0x120000E0, 0x120000E7) AM_READ(hwver_r)
AM_RANGE(0x120000E8, 0x12000107) AM_READ8(irqpend_r, 0xffffffffffffffffU)
AM_RANGE(0x12000108, 0x12000127) AM_WRITE8(irqen_w, 0xffffffffffffffffU)
AM_RANGE(0x12400010, 0x12400017) AM_DEVREADWRITE8("uart1", ns16550_device, ins8250_r, ins8250_w, 0xffffffffffffffffU)
AM_RANGE(0x12400018, 0x1240001f) AM_DEVREADWRITE8("uart0", ns16550_device, ins8250_r, ins8250_w, 0xffffffffffffffffU)
AM_RANGE(0x13800000, 0x13800007) AM_READ8(test_r, 0xffffffffffffffffU)

View File

@ -181,6 +181,7 @@ Notes:
#include "bus/scsi/scsihd.h"
#include "softlist.h"
// CD controller IRQ types
#define TOWNS_CD_IRQ_MPU 1
#define TOWNS_CD_IRQ_DMA 2
@ -2143,8 +2144,8 @@ static ADDRESS_MAP_START(towns_mem, AS_PROGRAM, 32, towns_state)
// AM_RANGE(0x00100000, 0x005fffff) AM_RAM // some extra RAM
AM_RANGE(0x80000000, 0x8007ffff) AM_READWRITE8(towns_gfx_high_r,towns_gfx_high_w,0xffffffff) AM_MIRROR(0x180000) // VRAM
AM_RANGE(0x81000000, 0x8101ffff) AM_READWRITE8(towns_spriteram_r,towns_spriteram_w,0xffffffff) // Sprite RAM
// 0xc0000000 - 0xc0ffffff // IC Memory Card (static, first 16MB only)
// 0xc1000000 - 0xc1ffffff // IC Memory Card (banked, can show any of 4 banks), JEIDA v4 only (UX and later)
AM_RANGE(0xc0000000, 0xc0ffffff) AM_DEVREADWRITE8("icmemcard", fmt_icmem_device, static_mem_read, static_mem_write, 0xffffffff)
AM_RANGE(0xc1000000, 0xc1ffffff) AM_DEVREADWRITE8("icmemcard", fmt_icmem_device, mem_read, mem_write, 0xffffffff)
AM_RANGE(0xc2000000, 0xc207ffff) AM_ROM AM_REGION("user",0x000000) // OS ROM
AM_RANGE(0xc2080000, 0xc20fffff) AM_ROM AM_REGION("user",0x100000) // DIC ROM
AM_RANGE(0xc2100000, 0xc213ffff) AM_ROM AM_REGION("user",0x180000) // FONT ROM
@ -2172,7 +2173,7 @@ static ADDRESS_MAP_START(marty_mem, AS_PROGRAM, 16, towns_state)
AM_RANGE(0x00a00000, 0x00a7ffff) AM_READWRITE8(towns_gfx_high_r,towns_gfx_high_w,0xffff) AM_MIRROR(0x180000) // VRAM
AM_RANGE(0x00b00000, 0x00b7ffff) AM_ROM AM_REGION("user",0x180000) // FONT
AM_RANGE(0x00c00000, 0x00c1ffff) AM_READWRITE8(towns_spriteram_r,towns_spriteram_w,0xffff) // Sprite RAM
AM_RANGE(0x00d00000, 0x00dfffff) AM_RAM // IC Memory Card (is this usable on the Marty?)
AM_RANGE(0x00d00000, 0x00dfffff) AM_DEVREADWRITE8("icmemcard", fmt_icmem_device, mem_read, mem_write, 0xffff)
AM_RANGE(0x00e80000, 0x00efffff) AM_ROM AM_REGION("user",0x100000) // DIC ROM
AM_RANGE(0x00f00000, 0x00f7ffff) AM_ROM AM_REGION("user",0x180000) // FONT
AM_RANGE(0x00f80000, 0x00f8ffff) AM_DEVREADWRITE8("pcm", rf5c68_device, rf5c68_mem_r, rf5c68_mem_w, 0xffff) // WAVE RAM
@ -2195,7 +2196,7 @@ static ADDRESS_MAP_START(ux_mem, AS_PROGRAM, 16, towns_state)
AM_RANGE(0x00a00000, 0x00a7ffff) AM_READWRITE8(towns_gfx_high_r,towns_gfx_high_w,0xffff) AM_MIRROR(0x180000) // VRAM
AM_RANGE(0x00b00000, 0x00b7ffff) AM_ROM AM_REGION("user",0x180000) // FONT
AM_RANGE(0x00c00000, 0x00c1ffff) AM_READWRITE8(towns_spriteram_r,towns_spriteram_w,0xffff) // Sprite RAM
AM_RANGE(0x00d00000, 0x00dfffff) AM_RAM // IC Memory Card
AM_RANGE(0x00d00000, 0x00dfffff) AM_DEVREADWRITE8("icmemcard", fmt_icmem_device, mem_read, mem_write, 0xffff)
AM_RANGE(0x00e00000, 0x00e7ffff) AM_ROM AM_REGION("user",0x000000) // OS
AM_RANGE(0x00e80000, 0x00efffff) AM_ROM AM_REGION("user",0x100000) // DIC ROM
AM_RANGE(0x00f00000, 0x00f7ffff) AM_ROM AM_REGION("user",0x180000) // FONT
@ -2229,6 +2230,9 @@ static ADDRESS_MAP_START( towns_io , AS_IO, 32, towns_state)
AM_RANGE(0x0440,0x045f) AM_READWRITE8(towns_video_440_r, towns_video_440_w, 0xffffffff)
// System port
AM_RANGE(0x0480,0x0483) AM_READWRITE8(towns_sys480_r,towns_sys480_w,0x000000ff) // R/W (0x480)
// IC Memory Card
AM_RANGE(0x0488,0x048b) AM_DEVREAD8("icmemcard",fmt_icmem_device,status_r,0x00ff0000)
AM_RANGE(0x0490,0x0493) AM_DEVREADWRITE8("icmemcard",fmt_icmem_device,bank_r,bank_w,0x0000ffff)
// CD-ROM
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff00ff)
// Joystick / Mouse ports
@ -2281,6 +2285,9 @@ static ADDRESS_MAP_START( towns16_io , AS_IO, 16, towns_state) // for the 386SX
AM_RANGE(0x0440,0x045f) AM_READWRITE8(towns_video_440_r, towns_video_440_w, 0xffff)
// System port
AM_RANGE(0x0480,0x0481) AM_READWRITE8(towns_sys480_r,towns_sys480_w,0x00ff) // R/W (0x480)
// IC Memory Card
AM_RANGE(0x048a,0x048b) AM_DEVREAD8("icmemcard",fmt_icmem_device,status_r,0x00ff)
AM_RANGE(0x0490,0x0491) AM_DEVREADWRITE8("icmemcard",fmt_icmem_device,bank_r,bank_w,0xffff)
// CD-ROM
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff)
// Joystick / Mouse ports
@ -2322,7 +2329,7 @@ static INPUT_PORTS_START( towns )
PORT_CONFSETTING(0x20, "Mouse")
PORT_CONFSETTING(0x40, "6-button joystick")
// Keyboard
// Keyboard
PORT_START( "key1" ) // scancodes 0x00-0x1f
PORT_BIT(0x00000001,IP_ACTIVE_HIGH,IPT_UNUSED)
PORT_BIT(0x00000002,IP_ACTIVE_HIGH,IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(27)
@ -2768,6 +2775,8 @@ static MACHINE_CONFIG_FRAGMENT( towns_base )
//MCFG_VIDEO_START_OVERRIDE(towns_state,towns)
MCFG_FMT_ICMEMCARD_ADD("icmemcard")
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("6M")

View File

@ -356,10 +356,16 @@ ROM_END
ROM_START( isbc2861 )
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
ROM_LOAD16_BYTE( "174894-001.bin", 0x0000, 0x4000, CRC(79e4f7af) SHA1(911a4595d35e6e82b1149e75bb027927cd1c1658))
ROM_LOAD16_BYTE( "174894-002.bin", 0x0001, 0x4000, CRC(66747d21) SHA1(4094b1f10a8bc7db8d6dd48d7128e14e875776c7))
ROM_LOAD16_BYTE( "174894-003.bin", 0x8000, 0x4000, CRC(c98c7f17) SHA1(6e9a14aedd630824dccc5eb6052867e73b1d7db6))
ROM_LOAD16_BYTE( "174894-004.bin", 0x8001, 0x4000, CRC(61bc1dc9) SHA1(feed5a5f0bb4630c8f6fa0d5cca30654a80b4ee5))
ROM_SYSTEM_BIOS( 0, "v11", "iSDM Monitor V1.1" )
ROMX_LOAD( "174894-001.bin", 0x0000, 0x4000, CRC(79e4f7af) SHA1(911a4595d35e6e82b1149e75bb027927cd1c1658), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "174894-002.bin", 0x0001, 0x4000, CRC(66747d21) SHA1(4094b1f10a8bc7db8d6dd48d7128e14e875776c7), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "174894-003.bin", 0x8000, 0x4000, CRC(c98c7f17) SHA1(6e9a14aedd630824dccc5eb6052867e73b1d7db6), ROM_SKIP(1) | ROM_BIOS(1))
ROMX_LOAD( "174894-004.bin", 0x8001, 0x4000, CRC(61bc1dc9) SHA1(feed5a5f0bb4630c8f6fa0d5cca30654a80b4ee5), ROM_SKIP(1) | ROM_BIOS(1))
ROM_SYSTEM_BIOS( 1, "v10", "iSDM Monitor V1.0" )
ROMX_LOAD( "rmx286-_in_socket_u41_on_isbc_286-10.bin.u41", 0x0000, 0x4000, CRC(00996834) SHA1(a17a0f8909be642d89199660b24574b71a9d0c13), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "rmx286-_in_socket_u76_on_isbc_286-10.bin.u76", 0x0001, 0x4000, CRC(90c9c7e8) SHA1(b5f961ab236976713266fe7a378e8750825fd5dc), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "rmx286-_in_socket_u40_on_isbc_286-10.bin.u40", 0x8000, 0x4000, CRC(35716c9b) SHA1(5b717b4c2f6c59ec140635df7448294a22123a16), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD( "rmx286-_in_socket_u75_on_isbc_286-10.bin.u75", 0x8001, 0x4000, CRC(68c3eb50) SHA1(3eeef2676e4fb187adb8ab50645f4bd172426c15), ROM_SKIP(1) | ROM_BIOS(2))
ROM_END
ROM_START( rpc86 )
@ -375,4 +381,4 @@ ROM_END
COMP( 19??, rpc86, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "RPC 86",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1978, isbc86, 0, 0, isbc86, isbc, driver_device, 0, "Intel", "iSBC 86/12A",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 19??, isbc286, 0, 0, isbc286, isbc, driver_device, 0, "Intel", "iSBC 286",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10", MACHINE_NO_SOUND)

View File

@ -900,7 +900,7 @@ Game modes explained:
NOTE: Speakers should be connected serially to Speaker (+) and Speaker (-).
You must avoid connecting speakers parallely or connecting speakers
You must avoid connecting speakers parallelly or connecting speakers
to Speaker (+) and GND, to keep the amplifier from being damaged or
from malfunctioning.

View File

@ -2695,6 +2695,17 @@ ROM_START( tekken3 )
ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) )
ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) )
// Namco Cyber Lead cabinet JVS I/O and LED display controller
ROM_REGION(0x40000, "cabinet_io", 0)
// JVS I/O board (namco ltd.;I/O CYBER LEAD;Ver1.03;JPN,LED-0100)
// labels: CL1 I/OB, I/O LED (I/O) PCB
// ICs: Namco C77 H8/???? MCU, Atmel AT29C020 256k x8 FlashROM, NEC N341256 32k x8 SRAM, 14.7MHz Xtal, Altera EPM7064 labeled I/OLEDM1
ROM_LOAD("cl1-iob.ic5", 0x0000, 0x40000, CRC(abb90360) SHA1(d938b1e1ae596d0ab1007352f61b0b800363c762) )
// LED display controller, connected to above I/O
// labels: CL1 LEDA, I/O LED (LED) PCB
// ICs: same as above plus EPSON SED1351F LCD controller, 12MHz Xtal
ROM_LOAD("cl1-leda.ic5", 0x0000, 0x40000, CRC(43602a58) SHA1(64156ded8c43dbbe84b5d6ae13a068c8b18e8aed) )
ROM_END
ROM_START( tekken3ae )

View File

@ -692,11 +692,13 @@ private:
// FULL RANGE video levels for 100-B model, taken from page 46 of PDF
const uint8_t video_levels[16] = { 255, 217, 201,186, 171, 156, 140, 125, 110, 97, 79, 66, 54, 31, 18, 0 };
uint8_t m_PORT50;
};
// GDC RESET MACRO - used in "machine_reset" & GDC_EXTRA_REGISTER_w !
#define GDC_RESET_MACRO \
m_PORT50 = 0; \ \
m_GDC_INDIRECT_REGISTER = 0; \
m_GDC_MODE_REGISTER = 0; \
m_GDC_WRITE_MASK = 0; \
@ -2234,7 +2236,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
m_floppy = con->get_device();
if (m_floppy)
selected_drive = drive;
printf("%i <- SELECTED DRIVE...\n", m_unit);
// printf("%i <- SELECTED DRIVE...\n", m_unit);
}
if (selected_drive == INVALID_DRIVE)
@ -2766,7 +2768,7 @@ WRITE16_MEMBER(rainbow_state::vram_w)
}
if(!(m_GDC_MODE_REGISTER & GDC_MODE_VECTOR)) // 0 : (NOT VECTOR MODE) Text Mode and Write Mask Batch
out = (out & m_GDC_WRITE_MASK) | (mem & ~m_GDC_WRITE_MASK); // // M_MASK (1st use)
out = (out & ~m_GDC_WRITE_MASK) | (mem & m_GDC_WRITE_MASK); // // M_MASK (1st use)
else
out = (out & ~data) | (mem & data); // VECTOR MODE !
@ -2789,17 +2791,21 @@ READ8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_r)
uint8_t out = 0;
switch(offset)
{
case 0:
out = m_PORT50;
break;
case 1:
if(m_GDC_INDIRECT_REGISTER & GDC_SELECT_SCROLL_MAP ) // 0x80
{
// Documentation says it is always incremented, no matter if read or write:
out = m_GDC_SCROLL_BUFFER_PRELOAD[m_GDC_scroll_index++]; // // * READ * SCROLL_MAP ( 256 x 8 )
m_GDC_scroll_index &= 0xFF; // 0...255 (CPU accesses 256 bytes)
break;
}
else
printf("\n * UNEXPECTED CASE: READ REGISTER 50..55 with INDIRECT_REGISTER $%02x and OFFSET $%02x *", m_GDC_INDIRECT_REGISTER, offset);
if(m_GDC_INDIRECT_REGISTER & GDC_SELECT_SCROLL_MAP ) // 0x80
{
// Documentation says it is always incremented (read and write):
out = m_GDC_SCROLL_BUFFER_PRELOAD[m_GDC_scroll_index++]; // // * READ * SCROLL_MAP ( 256 x 8 )
m_GDC_scroll_index &= 0xFF; // 0...255 (CPU accesses 256 bytes)
break;
}
else
printf("\n * UNEXPECTED CASE: READ REGISTER 50..55 with INDIRECT_REGISTER $%02x and OFFSET $%02x *", m_GDC_INDIRECT_REGISTER, offset);
break;
default:
printf("\n * UNHANDLED CASE: READ REGISTER 50..55 with INDIRECT_REGISTER $%02x and OFFSET $%02x *", m_GDC_INDIRECT_REGISTER, offset);
@ -2826,10 +2832,15 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
switch(offset)
{
case 0: // Mode Register must be reloaded following any write to port 50 (software reset).
// Graphics option software reset. Any write to this port also resynchronizes the
// read/modify/write memory cycles of the Graphics Option to those of the GDC.
GDC_RESET_MACRO
case 0: // Mode register must be reloaded following any write to port 50 (software reset).
// FIXME: "Any write to this port also resynchronizes the
// read/modify/write memory cycles of the Graphics Option to those of the GDC." (?)
if( data & 1 ) // PDF QV069 suggests 1 -> 0 -> 1; most programs just set bit 0.
{
GDC_RESET_MACRO // Graphics option software reset (separate from GDC reset...)
printf("(PC=%x)\n", machine().device("maincpu")->safe_pc());
}
m_PORT50 = data;
break;
case 1: // 51h - DATA loaded into register previously written to 53h.
@ -2993,13 +3004,13 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
break;
// --------- WRITE MASK (2 x 8 = 16 bits) USED IN WORD MODE ONLY !
// NOTE: there is NO specific order for the WRITE_MASK (according to txt/code samples in PDF)!
// !! NEW: LOW... HI JUXTAPOSITION...!!
// There is no specific order for the WRITE_MASK (according to txt/code samples in DEC's PDF).
// NOTE: LOW <-> HI JUXTAPOSITION!
case 4: // 54h Write Mask LOW
m_GDC_WRITE_MASK = ( BITSWAP8(~data, 0, 1, 2, 3, 4, 5, 6, 7) << 8 ) | ( m_GDC_WRITE_MASK & 0x00FF );
m_GDC_WRITE_MASK = ( BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7) << 8 ) | ( m_GDC_WRITE_MASK & 0x00FF );
break;
case 5: // 55h Write Mask HIGH
m_GDC_WRITE_MASK = ( m_GDC_WRITE_MASK & 0xFF00 ) | BITSWAP8(~data, 0, 1, 2, 3, 4, 5, 6, 7);
m_GDC_WRITE_MASK = ( m_GDC_WRITE_MASK & 0xFF00 ) | BITSWAP8(data, 0, 1, 2, 3, 4, 5, 6, 7);
break;
}
}
@ -3060,7 +3071,7 @@ MCFG_VT_VIDEO_RAM_CALLBACK(READ8(rainbow_state, read_video_ram_r))
MCFG_VT_VIDEO_CLEAR_VIDEO_INTERRUPT_CALLBACK(WRITELINE(rainbow_state, clear_video_interrupt))
// *************************** COLOR GRAPHICS (OPTION) **************************************
MCFG_DEVICE_ADD("upd7220", UPD7220, XTAL_32MHz / 4) // WAR: 31188000 / 4 TO BE VERIFIED. Duell schematics shows 31.188 (?) Mhz (/ 4 = 7.797 Mhz)
MCFG_DEVICE_ADD("upd7220", UPD7220, 31188000 / 4) // Duell schematics shows a 31.188 Mhz clock (confirmed by RFKA; not in XTAL)
MCFG_UPD7220_VSYNC_CALLBACK(WRITELINE(rainbow_state, GDC_vblank_irq)) // "The vsync callback line needs to be below the 7220 DEVICE_ADD line."
MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_map)

View File

@ -2,13 +2,15 @@
// copyright-holders:Robbbert
/************************************************************************************************************
Telcon Zorba
Telcon Industries/Modular Micros/Gemini Electronics Zorba
http://www.zorba.z80.de
2013-08-25 Skeleton
2015-02-20 Boots from floppy, is now usable.
This was one of the last CP/M-based systems, already out of date when it was released.
Because it doesn't use the standard Z80 peripherals, it uses a homebrew interrupt controller to make use
of the Z80's IM2.
of the Z80's IM2.
The keyboard is an intelligent serial device like the Kaypro's keyboard. They even have the same plug,
and might be swappable. Need a schematic.
@ -17,6 +19,23 @@ Instead of using a daisy chain, the IM2 vectors are calculated by a prom (u77).
contents make no sense at all (mostly FF), so the vectors for IRQ0 and IRQ2 are hard-coded. Other IRQ
vectors are not used as yet.
Three companies are known to have sold the Zorba over its lifetime: Telcon Industries, Modular Micros
(a subsidiary of Modular Computers (ModComp)), and Gemini Electronics. 7-inch and 9-inch models were
available from Telcon and Modular Micros, while Gemini exclusively sold the 9-inch version. The ROM dumps
currently used in this emulation originate from a Modular Micros Zorba.
The two versions of the Zorba were sold by Modular Micros were:
- Zorba 7: 7" CRT, 2 410K floppies, 22 lbs, $1595
- Zorba 2000: 9" CRT, 2 820K floppies, 10M HD optional, 25 lbs, ~$2000
The 7-inch version has the screen on the left, the floppy drives on the right, and a Zorba logo on the
far right; on the 9-inch version this arrangement is reversed and the logo is removed.
The startup screen varies across each company:
- Telcon: "TELCON ZORBA" graphical logo
- Modular Micros: "ZORBA" graphical logo with "MODULAR MICROS, INC." below in normal text
- Gemini: "GEMINI ZORBA" graphical logo
Status:
- Boots up, and the keyboard works
@ -27,6 +46,8 @@ ToDo:
- Fix the display
- Connect the PIT to the UARTs
- Replace the ascii keyboard with the real one, if possible
- Dump Telcon and Gemini BIOSes
- Emulate the Co-Power-88 expansion (allows PC-DOS, CP/M-86, etc. to be used)
- Probably lots of other things
@ -44,6 +65,7 @@ ToDo:
#include "sound/beep.h"
#include "machine/keyboard.h"
#include "machine/wd_fdc.h"
#include "softlist.h"
class zorba_state : public driver_device
@ -410,6 +432,8 @@ static MACHINE_CONFIG_START( zorba, zorba_state )
/* Keyboard */
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
MCFG_GENERIC_KEYBOARD_CB(WRITE8(zorba_state, kbd_put))
MCFG_SOFTWARE_LIST_ADD("flop_list", "zorba")
MACHINE_CONFIG_END
ROM_START( zorba )
@ -428,4 +452,8 @@ ROM_START( zorba )
ROM_LOAD( "74ls288.u77", 0x0040, 0x0020, CRC(946e03b0) SHA1(24240bdd7bdf507a5b51628fb36ad1266fc53a28) ) // suspected bad dump
ROM_END
COMP( 1982, zorba, 0, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba", MACHINE_NOT_WORKING )
COMP( 1984?, zorba, 0, 0, zorba, zorba, zorba_state, zorba, "Modular Micros", "Zorba (Modular Micros)", MACHINE_NOT_WORKING )
// Undumped versions (see startup screen notes at top of file)
// COMP( 1983, zorbat, zorba, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba (Telcon Industries)", MACHINE_NOT_WORKING )
// COMP( 1984, zorbag, zorba, 0, zorba, zorba, zorba_state, zorba, "Gemini Electronics", "Zorba (Gemini Electronics)", MACHINE_NOT_WORKING )

View File

@ -20,6 +20,9 @@
#include "machine/ram.h"
#include "machine/nvram.h"
#include "machine/fm_scsi.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
#include "machine/fmt_icmem.h"
#define IRQ_LOG 0 // set to 1 to log IRQ line activity
@ -92,6 +95,7 @@ class towns_state : public driver_device
m_fdc(*this, "fdc"),
m_flop0(*this, "fdc:0"),
m_flop1(*this, "fdc:1"),
m_icmemcard(*this, "icmemcard"),
m_nvram(*this, "nvram"),
m_nvram16(*this, "nvram16"),
m_ctrltype(*this, "ctrltype"),
@ -124,6 +128,7 @@ class towns_state : public driver_device
required_device<mb8877_t> m_fdc;
required_device<floppy_connector> m_flop0;
required_device<floppy_connector> m_flop1;
required_device<fmt_icmem_device> m_icmemcard;
ram_device* m_messram;
cdrom_image_device* m_cdrom;
cdda_device* m_cdda;

View File

@ -189,6 +189,7 @@ private:
AUDIO_DMA *ai_fifo_get_top();
void ai_fifo_push(uint32_t address, uint32_t length);
void ai_fifo_pop();
bool ai_delayed_carry;
dmadac_sound_device *ai_dac[2];
uint32_t ai_dram_addr;

View File

@ -0,0 +1,184 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*********************************************************************
fmt_icmem.cpp
FM Towns IC Memory Card
PCMCIA SRAM Memory Cards, up to 64MB supported
*********************************************************************/
#include "emu.h"
#include "emuopts.h"
#include "fmt_icmem.h"
// device type definition
const device_type FMT_ICMEM = &device_creator<fmt_icmem_device>;
//-------------------------------------------------
// fmt_icmem_device - constructor
//-------------------------------------------------
fmt_icmem_device::fmt_icmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, FMT_ICMEM, "FM Towns IC Memory Card", tag, owner, clock, "fmt_icmem", __FILE__),
device_image_interface(mconfig, *this),
m_writeprotect(*this,"icmem"),
m_change(false),
m_attr_select(false),
m_detect(false),
m_bank(0)
{
}
static INPUT_PORTS_START( fmt_icmem )
PORT_START("icmem")
PORT_CONFNAME(0x01, 0x00, "IC Memory Card Write Protect")
PORT_CONFSETTING(0x00, DEF_STR( Off ))
PORT_CONFSETTING(0x01, DEF_STR( On ))
INPUT_PORTS_END
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void fmt_icmem_device::device_config_complete()
{
// set brief and instance name
update_names();
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
void fmt_icmem_device::device_start()
{
m_memcard_ram = std::make_unique<uint8_t[]>(0x1000000);
m_bank = 0;
m_detect = false;
m_change = false;
save_item(NAME(m_change));
save_item(NAME(m_detect));
save_item(NAME(m_bank));
}
ioport_constructor fmt_icmem_device::device_input_ports() const
{
return INPUT_PORTS_NAME(fmt_icmem);
}
image_init_result fmt_icmem_device::call_load()
{
memset(m_memcard_ram.get(), 0xff, 0x1000000);
fseek(0, SEEK_SET);
size_t ret = fread(m_memcard_ram.get(), 0x1000000);
if(ret != length())
return image_init_result::FAIL;
m_change = true;
m_detect = true;
return image_init_result::PASS;
}
void fmt_icmem_device::call_unload()
{
fseek(0, SEEK_SET);
if(!m_writeprotect->read())
fwrite(m_memcard_ram.get(), 0x1000000);
m_change = true;
m_detect = false;
}
image_init_result fmt_icmem_device::call_create(int format_type, util::option_resolution *format_options)
{
memset(m_memcard_ram.get(), 0xff, 0x1000000);
size_t ret = fwrite(m_memcard_ram.get(), 0x1000000);
if(ret != 0x1000000)
return image_init_result::FAIL;
m_change = true;
m_detect = true;
return image_init_result::PASS;
}
READ8_MEMBER(fmt_icmem_device::static_mem_read)
{
return m_memcard_ram[offset];
}
WRITE8_MEMBER(fmt_icmem_device::static_mem_write)
{
m_memcard_ram[offset] = data;
}
READ8_MEMBER(fmt_icmem_device::mem_read)
{
return m_memcard_ram[(m_bank*0x100000) + offset];
}
WRITE8_MEMBER(fmt_icmem_device::mem_write)
{
m_memcard_ram[(m_bank*0x100000) + offset] = data;
}
// Memory Card status:
// bit 0 - 0 = Write Enable, 1 = Write Protect
// bit 1,2 - Card Detect - 00 = Card Inserted, 11 = No card inserted, 10 or 01 = Card error?
// bit 3,4,5 - not memory card related (EEPROM and backup battery level)
// bit 6 - unknown
// bit 7 - 1 = card changed, flips back to 0 when read
READ8_MEMBER(fmt_icmem_device::status_r)
{
uint8_t ret = 0x00;
ret |= (m_writeprotect->read() & 0x01);
if(is_readonly()) // if image is read-only, then set write protect.
ret |= 0x01;
if(!m_detect)
ret |= 0x06;
if(m_change)
ret |= 0x80;
m_change = false;
return ret;
}
// Memory Card bank select (0x490)
// bit 0-5: bank select (bits 0-3 not used in non-386SX systems?)
// Attribute/Common memory select (0x491)
// bit 0: 0 = common memory, 1 = attribute memory (TODO)
// bit 7: 0 indicates that card is JEIDA v4 compliant
READ8_MEMBER(fmt_icmem_device::bank_r)
{
switch(offset)
{
case 0:
return m_bank & 0x0f;
case 1:
return m_attr_select ? 1 : 0;
}
return 0xff;
}
WRITE8_MEMBER(fmt_icmem_device::bank_w)
{
switch(offset)
{
case 0:
m_bank = data & 0x0f;
break;
case 1:
m_attr_select = data & 0x01;
break;
}
}

View File

@ -0,0 +1,77 @@
// license:BSD-3-Clause
// copyright-holders:Barry Rodewald
/*********************************************************************
fmt_icmem.h
FM Towns IC Memory Card
*********************************************************************/
#pragma once
#ifndef __FMT_ICMEM_H__
#define __FMT_ICMEM_H__
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_FMT_ICMEMCARD_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, FMT_ICMEM, 0)
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
class fmt_icmem_device : public device_t,
public device_image_interface
{
public:
// construction/destruction
fmt_icmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual iodevice_t image_type() const override { return IO_MEMCARD; }
virtual bool is_readable() const override { return true; }
virtual bool is_writeable() const override { return true; }
virtual bool is_creatable() const override { return true; }
virtual bool must_be_loaded() const override { return false; }
virtual bool is_reset_on_load() const override { return false; }
virtual const char *file_extensions() const override { return "icm"; }
virtual image_init_result call_load() override;
virtual void call_unload() override;
virtual image_init_result call_create(int format_type, util::option_resolution *format_options) override;
// device-level overrides
virtual void device_start() override;
virtual void device_config_complete() override;
DECLARE_READ8_MEMBER(static_mem_read);
DECLARE_WRITE8_MEMBER(static_mem_write);
DECLARE_READ8_MEMBER(mem_read);
DECLARE_WRITE8_MEMBER(mem_write);
DECLARE_READ8_MEMBER(status_r);
DECLARE_READ8_MEMBER(bank_r);
DECLARE_WRITE8_MEMBER(bank_w);
protected:
virtual ioport_constructor device_input_ports() const override;
private:
required_ioport m_writeprotect;
std::unique_ptr<uint8_t[]> m_memcard_ram;
bool m_change;
bool m_attr_select;
uint8_t m_detect;
uint8_t m_bank;
};
// device type definition
extern const device_type FMT_ICMEM;
#endif /* __FMT_ICMEM_H__ */

View File

@ -170,6 +170,7 @@ void n64_periphs::device_reset()
ai_dacrate = 0;
ai_bitrate = 0;
ai_status = 0;
ai_delayed_carry = false;
pi_dma_timer->adjust(attotime::never);
pi_rd_len = 0;
@ -1255,6 +1256,9 @@ void n64_periphs::ai_dma()
//
//fwrite(&ram[current->address/2],current->length,1,audio_dump);
if (ai_delayed_carry)
current->address += 0x2000;
ram = &ram[current->address/2];
//osd_printf_debug("DACDMA: %x for %x bytes\n", current->address, current->length);
@ -1266,6 +1270,11 @@ void n64_periphs::ai_dma()
// adjust the timer
period = attotime::from_hz(DACRATE_NTSC) * (ai_dacrate + 1) * (current->length / 4);
ai_timer->adjust(period);
if (((current->address + current->length) & 0x1FFF) == 0)
ai_delayed_carry = true;
else
ai_delayed_carry = false;
}
TIMER_CALLBACK_MEMBER(n64_periphs::ai_timer_callback)
@ -1286,6 +1295,7 @@ void n64_periphs::ai_timer_tick()
else
{
ai_status &= ~0x40000000;
ai_delayed_carry = false;
}
}

View File

@ -177,7 +177,7 @@ enum
* +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ *
* *
* SPRn 1=collision with sprite #n *
* BKGD 1=collision with set background bit *
* BKGD 1=collision with set background bit *
* BRDR 1=collision with screen border *
* *
****************************************************************************

View File

@ -852,7 +852,7 @@ try_again:
m_adapter, D3DDEVTYPE_HAL, device_hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device);
if (FAILED(result))
{
// if we got a "DEVICELOST" error, it may be transistory; count it and only fail if
// if we got a "DEVICELOST" error, it may be transitory; count it and only fail if
// we exceed a threshold
if (result == D3DERR_DEVICELOST)
{