mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
a1698491fe
@ -651,7 +651,7 @@ Published by Others (T-yyy*** serial codes, for yyy depending on the publisher)
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="cookpico">
|
<software name="cookpico">
|
||||||
<description>Cooking Pico (Jpn)</description>
|
<description>Cooking Pico (Jpn)</description>
|
||||||
<year>1999</year>
|
<year>1999</year>
|
||||||
<publisher>Sega Toys</publisher>
|
<publisher>Sega Toys</publisher>
|
||||||
|
@ -17,18 +17,18 @@
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="doraedbl">
|
<software name="doraedbl">
|
||||||
<description>Doraemon Nobita no Dou Butsu Land</description>
|
<description>Doraemon Nobita no Dou Butsu Land</description>
|
||||||
<year>1996</year>
|
<year>1996</year>
|
||||||
<publisher>Sega</publisher>
|
<publisher>Sega</publisher>
|
||||||
<part name="cart" interface="sawatte_cart">
|
<part name="cart" interface="sawatte_cart">
|
||||||
<feature name="pcb" value="171-7323A" />
|
<feature name="pcb" value="171-7323A" />
|
||||||
<feature name="ic1" value="MPR-19040" />
|
<feature name="ic1" value="MPR-19040" />
|
||||||
<dataarea name="rom" size="524288">
|
<dataarea name="rom" size="524288">
|
||||||
<rom name="mpr-19040.ic1" size="524288" crc="0c9bae2f" sha1="bc5030fab99e8f4b1bcc8ed77c1cc07d8407df93" offset="0" />
|
<rom name="mpr-19040.ic1" size="524288" crc="0c9bae2f" sha1="bc5030fab99e8f4b1bcc8ed77c1cc07d8407df93" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="mickkuda">
|
<software name="mickkuda">
|
||||||
<description>Mickey no Kudamonoya-san</description>
|
<description>Mickey no Kudamonoya-san</description>
|
||||||
@ -90,20 +90,20 @@
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="soreike">
|
<software name="soreike">
|
||||||
<description>Soreike! Anpanman Onamae Na~ni</description>
|
<description>Soreike! Anpanman Onamae Na~ni</description>
|
||||||
<year>1996</year>
|
<year>1996</year>
|
||||||
<publisher>Sega</publisher>
|
<publisher>Sega</publisher>
|
||||||
<part name="cart" interface="sawatte_cart">
|
<part name="cart" interface="sawatte_cart">
|
||||||
<feature name="pcb" value="171-7323A" />
|
<feature name="pcb" value="171-7323A" />
|
||||||
<feature name="ic1" value="MPR-19041" />
|
<feature name="ic1" value="MPR-19041" />
|
||||||
<dataarea name="rom" size="524288">
|
<dataarea name="rom" size="524288">
|
||||||
<rom name="mpr-19041.ic1" size="524288" crc="ec924165" sha1="b25a5637c8cc1f2f6224595853d540195be86ec9" offset="0" />
|
<rom name="mpr-19041.ic1" size="524288" crc="ec924165" sha1="b25a5637c8cc1f2f6224595853d540195be86ec9" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="micknatk">
|
<software name="micknatk">
|
||||||
<description>Tokyo Disneyland - Mickey no Nakayoshi Tankentai</description>
|
<description>Tokyo Disneyland - Mickey no Nakayoshi Tankentai</description>
|
||||||
<year>1998</year>
|
<year>1998</year>
|
||||||
<publisher>Sega?</publisher>
|
<publisher>Sega?</publisher>
|
||||||
@ -148,17 +148,17 @@
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="uht">
|
<software name="uht">
|
||||||
<description>Ultra Hero Touch</description>
|
<description>Ultra Hero Touch</description>
|
||||||
<year>1997</year>
|
<year>1997</year>
|
||||||
<publisher>Bandai</publisher>
|
<publisher>Bandai</publisher>
|
||||||
<part name="cart" interface="sawatte_cart">
|
<part name="cart" interface="sawatte_cart">
|
||||||
<feature name="pcb" value="171-7323A" />
|
<feature name="pcb" value="171-7323A" />
|
||||||
<feature name="ic1" value="MPR-19828-T" />
|
<feature name="ic1" value="MPR-19828-T" />
|
||||||
<dataarea name="rom" size="524288">
|
<dataarea name="rom" size="524288">
|
||||||
<rom name="mpr-19828-t.ic1" size="524288" crc="57988dc7" sha1="438a35b2a46ec82b5e31478d9e244928f98891ab" offset="0" />
|
<rom name="mpr-19828-t.ic1" size="524288" crc="57988dc7" sha1="438a35b2a46ec82b5e31478d9e244928f98891ab" offset="0" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
</softwarelist>
|
</softwarelist>
|
||||||
|
@ -7595,7 +7595,7 @@
|
|||||||
<year>1990</year>
|
<year>1990</year>
|
||||||
<publisher>Seo Jin</publisher>
|
<publisher>Seo Jin</publisher>
|
||||||
<part name="cart" interface="sms_cart">
|
<part name="cart" interface="sms_cart">
|
||||||
<feature name="slot" value="seojin" />
|
<feature name="slot" value="seojin" />
|
||||||
<dataarea name="rom" size="0x080000">
|
<dataarea name="rom" size="0x080000">
|
||||||
<rom name="SG11004A 79ST0086END 9045" size="0x080000" crc="cdbfe86e" sha1="83d6f261471dca20f8d2e33b9807d670e9b4eb9c" offset="000000" />
|
<rom name="SG11004A 79ST0086END 9045" size="0x080000" crc="cdbfe86e" sha1="83d6f261471dca20f8d2e33b9807d670e9b4eb9c" offset="000000" />
|
||||||
</dataarea>
|
</dataarea>
|
||||||
|
869
hash/zorba.xml
Normal file
869
hash/zorba.xml
Normal 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><unknown></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><unknown></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>
|
@ -1894,6 +1894,8 @@ files {
|
|||||||
MAME_DIR .. "src/mame/video/fmtowns.cpp",
|
MAME_DIR .. "src/mame/video/fmtowns.cpp",
|
||||||
MAME_DIR .. "src/mame/machine/fm_scsi.cpp",
|
MAME_DIR .. "src/mame/machine/fm_scsi.cpp",
|
||||||
MAME_DIR .. "src/mame/machine/fm_scsi.h",
|
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/drivers/fm7.cpp",
|
||||||
MAME_DIR .. "src/mame/includes/fm7.h",
|
MAME_DIR .. "src/mame/includes/fm7.h",
|
||||||
MAME_DIR .. "src/mame/video/fm7.cpp",
|
MAME_DIR .. "src/mame/video/fm7.cpp",
|
||||||
|
@ -334,7 +334,7 @@ static void InitDasm8201(void)
|
|||||||
Op[i].type = type;
|
Op[i].type = type;
|
||||||
|
|
||||||
/* 2 byte code ? */
|
/* 2 byte code ? */
|
||||||
while (isspace((uint8_t)*p)) p++;
|
while (isspace(u8(*p))) p++;
|
||||||
if( (*p) )
|
if( (*p) )
|
||||||
Op[i].type |= 0x10;
|
Op[i].type |= 0x10;
|
||||||
/* number of param */
|
/* number of param */
|
||||||
|
@ -184,7 +184,7 @@ const device_type ALPHA8301L = &device_creator<alpha8301_cpu_device>;
|
|||||||
#define FN(x) &alpha8201_cpu_device::x
|
#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__)
|
: cpu_device(mconfig, ALPHA8201L, "ALPHA-8201L", tag, owner, clock, "alpha8201l", __FILE__)
|
||||||
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
|
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
|
||||||
, m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 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)
|
: cpu_device(mconfig, type, name, tag, owner, clock, shortname, source)
|
||||||
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
|
, m_program_config("program", ENDIANNESS_LITTLE, 8, 10, 0)
|
||||||
, m_io_config("io", ENDIANNESS_LITTLE, 8, 6, 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__)
|
: alpha8201_cpu_device(mconfig, ALPHA8301L, "ALPHA-8301L", tag, owner, clock, "alpha8301l", __FILE__)
|
||||||
{
|
{
|
||||||
m_opmap = opcode_8301;
|
m_opmap = opcode_8301;
|
||||||
@ -217,49 +217,49 @@ unsigned alpha8201_cpu_device::M_RDMEM_OPCODE()
|
|||||||
return retval;
|
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_A = temp & 0xff;
|
||||||
m_zf = (m_A==0);
|
m_zf = (m_A==0);
|
||||||
m_cf = temp>>8;
|
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_B = temp & 0xff;
|
||||||
m_zf = (m_B==0);
|
m_zf = (m_B==0);
|
||||||
m_cf = temp>>8;
|
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_cf = (m_A>=dat); // m_cf is No Borrow
|
||||||
m_A -= dat;
|
m_A -= dat;
|
||||||
m_zf = (m_A==0);
|
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_A &= dat;
|
||||||
m_zf = (m_A==0);
|
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_A |= dat;
|
||||||
m_zf = (m_A==0);
|
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_A ^= dat;
|
||||||
m_zf = (m_A==0);
|
m_zf = (m_A==0);
|
||||||
m_cf = 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;
|
m_pc.b.l = dat;
|
||||||
/* update pc page */
|
/* update pc page */
|
||||||
@ -279,8 +279,8 @@ void alpha8201_cpu_device::M_UNDEFINED()
|
|||||||
|
|
||||||
void alpha8201_cpu_device::M_UNDEFINED2()
|
void alpha8201_cpu_device::M_UNDEFINED2()
|
||||||
{
|
{
|
||||||
uint8_t op = M_RDOP(m_pc.w.l-1);
|
u8 op = M_RDOP(m_pc.w.l-1);
|
||||||
uint8_t imm = M_RDMEM_OPCODE();
|
u8 imm = M_RDMEM_OPCODE();
|
||||||
logerror("alpha8201: PC = %03x, Unimplemented opcode = %02x,%02x\n", m_pc.w.l-2, op,imm);
|
logerror("alpha8201: PC = %03x, Unimplemented opcode = %02x,%02x\n", m_pc.w.l-2, op,imm);
|
||||||
#if SHOW_MESSAGE_CONSOLE
|
#if SHOW_MESSAGE_CONSOLE
|
||||||
osd_printf_debug("alpha8201: PC = %03x, Unimplemented opcode = %02x,%02x\n", m_pc.w.l-2, op,imm);
|
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()
|
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_WRMEM(pcptr,(M_RDMEM(pcptr)&0xf)+0x08); /* mark entry point ODD to HALT */
|
||||||
m_mb |= 0x08; /* mark internal HALT state */
|
m_mb |= 0x08; /* mark internal HALT state */
|
||||||
}
|
}
|
||||||
@ -600,7 +600,7 @@ void alpha8201_cpu_device::device_reset()
|
|||||||
void alpha8201_cpu_device::execute_run()
|
void alpha8201_cpu_device::execute_run()
|
||||||
{
|
{
|
||||||
unsigned opcode;
|
unsigned opcode;
|
||||||
uint8_t pcptr;
|
u8 pcptr;
|
||||||
|
|
||||||
if(m_halt)
|
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 );
|
extern CPU_DISASSEMBLE( alpha8201 );
|
||||||
return CPU_DISASSEMBLE_NAME(alpha8201)(this, stream, pc, oprom, opram, options);
|
return CPU_DISASSEMBLE_NAME(alpha8201)(this, stream, pc, oprom, opram, options);
|
||||||
|
@ -20,11 +20,11 @@ cpu/alph8201/ will be removed when the alpha 8304 has been dumped.
|
|||||||
* *
|
* *
|
||||||
\**************************************************************************/
|
\**************************************************************************/
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#ifndef __ALPH8201_H__
|
#ifndef __ALPH8201_H__
|
||||||
#define __ALPH8201_H__
|
#define __ALPH8201_H__
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
ALPHA8201_PC = STATE_GENPC,
|
ALPHA8201_PC = STATE_GENPC,
|
||||||
@ -50,8 +50,8 @@ class alpha8201_cpu_device : public cpu_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// 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, 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, uint32_t clock, const char *shortname, const char *source);
|
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:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
@ -59,9 +59,9 @@ protected:
|
|||||||
virtual void device_reset() override;
|
virtual void device_reset() override;
|
||||||
|
|
||||||
// device_execute_interface overrides
|
// device_execute_interface overrides
|
||||||
virtual uint32_t execute_min_cycles() const override { return 1; }
|
virtual u32 execute_min_cycles() const override { return 1; }
|
||||||
virtual uint32_t execute_max_cycles() const override { return 16; }
|
virtual u32 execute_max_cycles() const override { return 16; }
|
||||||
virtual uint32_t execute_input_lines() const override { return 1; }
|
virtual u32 execute_input_lines() const override { return 1; }
|
||||||
virtual void execute_run() override;
|
virtual void execute_run() override;
|
||||||
virtual void execute_set_input(int inputnum, int state) 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;
|
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
|
||||||
|
|
||||||
// device_disasm_interface overrides
|
// device_disasm_interface overrides
|
||||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
|
virtual u32 disasm_min_opcode_bytes() const override { return 1; }
|
||||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
virtual u32 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 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); }
|
u8 M_RDMEM(u16 A) { return m_program->read_byte(A); }
|
||||||
void M_WRMEM(uint16_t A,uint8_t V) { m_program->write_byte(A, V); }
|
void M_WRMEM(u16 A, u8 V) { m_program->write_byte(A, V); }
|
||||||
uint8_t M_RDOP(uint16_t A) { return m_direct->read_byte(A); }
|
u8 M_RDOP(u16 A) { return m_direct->read_byte(A); }
|
||||||
uint8_t M_RDOP_ARG(uint16_t A) { return m_direct->read_byte(A); }
|
u8 M_RDOP_ARG(u16 A) { return m_direct->read_byte(A); }
|
||||||
uint8_t RD_REG(uint8_t x) { return m_RAM[(m_regPtr<<3)+(x)]; }
|
u8 RD_REG(u8 x) { return m_RAM[(m_regPtr<<3)+(x)]; }
|
||||||
void WR_REG(uint8_t x, uint8_t d) { m_RAM[(m_regPtr<<3)+(x)]=(d); }
|
void WR_REG(u8 x, u8 d) { m_RAM[(m_regPtr<<3)+(x)]=(d); }
|
||||||
|
|
||||||
unsigned M_RDMEM_OPCODE();
|
unsigned M_RDMEM_OPCODE();
|
||||||
void M_ADD(uint8_t dat);
|
void M_ADD(u8 dat);
|
||||||
void M_ADDB(uint8_t dat);
|
void M_ADDB(u8 dat);
|
||||||
void M_SUB(uint8_t dat);
|
void M_SUB(u8 dat);
|
||||||
void M_AND(uint8_t dat);
|
void M_AND(u8 dat);
|
||||||
void M_OR(uint8_t dat);
|
void M_OR(u8 dat);
|
||||||
void M_XOR(uint8_t dat);
|
void M_XOR(u8 dat);
|
||||||
void M_JMP(uint8_t dat);
|
void M_JMP(u8 dat);
|
||||||
void M_UNDEFINED();
|
void M_UNDEFINED();
|
||||||
void M_UNDEFINED2();
|
void M_UNDEFINED2();
|
||||||
|
|
||||||
@ -102,10 +102,10 @@ protected:
|
|||||||
void nop() { }
|
void nop() { }
|
||||||
void rora() { m_cf = m_A &1; m_A = (m_A>>1) | (m_A<<7); }
|
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 rola() { m_cf = (m_A>>7)&1; m_A = (m_A<<1) | (m_A>>7); }
|
||||||
void inc_b() { M_ADDB(0x02); }
|
void inc_b() { M_ADDB(0x02); }
|
||||||
void dec_b() { M_ADDB(0xfe); }
|
void dec_b() { M_ADDB(0xfe); }
|
||||||
void inc_a() { M_ADD(0x01); }
|
void inc_a() { M_ADD(0x01); }
|
||||||
void dec_a() { M_ADD(0xff); }
|
void dec_a() { M_ADD(0xff); }
|
||||||
void cpl() { m_A ^= 0xff; };
|
void cpl() { m_A ^= 0xff; };
|
||||||
|
|
||||||
void ld_a_ix0_0() { m_A = M_RDMEM(m_ix0.w.l+0); }
|
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_lp2_n() { m_lp2 = M_RDMEM_OPCODE(); }
|
||||||
void ld_b_n() { m_B = 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_lp0() { u8 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_lp1() { u8 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 djnz_lp2() { u8 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 jnz() { u8 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 jnc() { u8 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 jz() { u8 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 jc() { u8 i=M_RDMEM_OPCODE(); if ( m_cf) M_JMP(i);}
|
||||||
void jmp() { M_JMP(M_RDMEM_OPCODE() ); }
|
void jmp() { M_JMP(M_RDMEM_OPCODE() ); }
|
||||||
|
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
/* ALPHA 8301 : added instruction */
|
/* 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_ix0() { u8 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_ix1() { u8 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_ix2() { u8 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_lp0() { u8 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_lp1() { u8 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_lp2() { u8 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_b() { u8 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_rb() { u8 t=m_A; m_A = m_regPtr; m_regPtr = t; }
|
||||||
|
|
||||||
void ld_ix0_a() { m_ix0.b.l = m_A; }
|
void ld_ix0_a() { m_ix0.b.l = m_A; }
|
||||||
void ld_ix1_a() { m_ix1.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_b_a() { m_B = m_A; }
|
||||||
void ld_rb_a() { m_regPtr = 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_ix1() { u8 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_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_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 ); }
|
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 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_rxb_a() { m_RAM[(m_B>>1)&0x3f] = m_A; }
|
||||||
void ld_a_rxb() { m_A = m_RAM[(m_B>>1)&0x3f]; }
|
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 xor_a_rxb() { M_XOR(m_RAM[(m_B>>1)&0x3f] ); }
|
||||||
|
|
||||||
void add_a_cf() { if (m_cf) inc_a(); }
|
void add_a_cf() { if (m_cf) inc_a(); }
|
||||||
void sub_a_cf() { if (m_cf) dec_a(); }
|
void sub_a_cf() { if (m_cf) dec_a(); }
|
||||||
void tst_a() { m_zf = (m_A==0); }
|
void tst_a() { m_zf = (m_A==0); }
|
||||||
void clr_a() { m_A = 0; 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 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 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 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 ret() { m_mb = m_retptr.b.h; M_JMP( m_retptr.b.l ); };
|
||||||
void save_zc() { m_savez = m_zf; m_savec = m_cf; };
|
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_program_config;
|
||||||
address_space_config m_io_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;
|
unsigned m_PREVPC;
|
||||||
PAIR m_retptr; /* for 8301, return address of CALL */
|
PAIR m_retptr; /* for 8301, return address of CALL */
|
||||||
PAIR m_pc; /* 2bit+8bit program counter */
|
PAIR m_pc; /* 2bit+8bit program counter */
|
||||||
uint8_t m_regPtr; /* RB register base */
|
u8 m_regPtr; /* RB register base */
|
||||||
uint8_t m_mb; /* MB memory bank reg. latch after Branch */
|
u8 m_mb; /* MB memory bank reg. latch after Branch */
|
||||||
uint8_t m_cf; /* C flag */
|
u8 m_cf; /* C flag */
|
||||||
uint8_t m_zf; /* Z flag */
|
u8 m_zf; /* Z flag */
|
||||||
uint8_t m_savec; /* for 8301, save flags */
|
u8 m_savec; /* for 8301, save flags */
|
||||||
uint8_t m_savez; /* for 8301, save flags */
|
u8 m_savez; /* for 8301, save flags */
|
||||||
//
|
|
||||||
PAIR m_ix0; /* 8bit memory read index reg. */
|
PAIR m_ix0; /* 8bit memory read index reg. */
|
||||||
PAIR m_ix1; /* 8bitmemory read index reg. */
|
PAIR m_ix1; /* 8bitmemory read index reg. */
|
||||||
PAIR m_ix2; /* 8bitmemory write index reg. */
|
PAIR m_ix2; /* 8bitmemory write index reg. */
|
||||||
uint8_t m_lp0; /* 8bit loop reg. */
|
u8 m_lp0; /* 8bit loop reg. */
|
||||||
uint8_t m_lp1; /* 8bit loop reg. */
|
u8 m_lp1; /* 8bit loop reg. */
|
||||||
uint8_t m_lp2; /* 8bit loop reg. */
|
u8 m_lp2; /* 8bit loop reg. */
|
||||||
uint8_t m_A; /* 8bit accumulator */
|
u8 m_A; /* 8bit accumulator */
|
||||||
uint8_t m_B; /* 8bit register */
|
u8 m_B; /* 8bit register */
|
||||||
//
|
|
||||||
uint8_t m_halt; /* halt input line */
|
u8 m_halt; /* halt input line */
|
||||||
|
|
||||||
address_space *m_program;
|
address_space *m_program;
|
||||||
direct_read_data *m_direct;
|
direct_read_data *m_direct;
|
||||||
@ -396,9 +396,9 @@ protected:
|
|||||||
const s_opcode *m_opmap;
|
const s_opcode *m_opmap;
|
||||||
|
|
||||||
// Used for import/export only
|
// Used for import/export only
|
||||||
uint8_t m_sp;
|
u8 m_sp;
|
||||||
uint8_t m_R[8];
|
u8 m_R[8];
|
||||||
uint8_t m_flags;
|
u8 m_flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -406,7 +406,7 @@ class alpha8301_cpu_device : public alpha8201_cpu_device
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// 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);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -202,7 +202,7 @@ protected:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// artificator internal class
|
// artificater internal class
|
||||||
class artifacter
|
class artifacter
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -41,12 +41,23 @@ public:
|
|||||||
m_vram(*this, "vram")
|
m_vram(*this, "vram")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
uint32_t m_test_x,m_test_y,m_start_offs;
|
u32 m_test_x,m_test_y,m_start_offs;
|
||||||
uint8_t m_type;
|
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_READ8_MEMBER(test_r);
|
||||||
DECLARE_WRITE64_MEMBER(eeprom_w);
|
DECLARE_WRITE64_MEMBER(eeprom_w);
|
||||||
DECLARE_READ64_MEMBER(hwver_r);
|
DECLARE_READ64_MEMBER(hwver_r);
|
||||||
virtual void video_start() override;
|
virtual void video_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
uint32_t screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
uint32_t screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<ns16550_device> m_uart0;
|
required_device<ns16550_device> m_uart0;
|
||||||
@ -60,6 +71,10 @@ public:
|
|||||||
void aristmk6_state::video_start()
|
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)
|
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;
|
int x,y,count;
|
||||||
const uint8_t *blit_ram = memregion("maincpu")->base();
|
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))
|
if(machine().input().code_pressed(KEYCODE_Z))
|
||||||
m_test_x++;
|
m_test_x++;
|
||||||
|
|
||||||
@ -168,6 +188,68 @@ uint32_t aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rg
|
|||||||
return 0;
|
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)
|
READ8_MEMBER(aristmk6_state::test_r)
|
||||||
{
|
{
|
||||||
static int flip;
|
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(0x12000078, 0x1200007f) AM_WRITENOP // watchdog ??
|
||||||
AM_RANGE(0x12000080, 0x12000087) AM_WRITENOP // 0-1-2 written here repeatedly, diag LED or smth ?
|
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(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(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(0x12400018, 0x1240001f) AM_DEVREADWRITE8("uart0", ns16550_device, ins8250_r, ins8250_w, 0xffffffffffffffffU)
|
||||||
AM_RANGE(0x13800000, 0x13800007) AM_READ8(test_r, 0xffffffffffffffffU)
|
AM_RANGE(0x13800000, 0x13800007) AM_READ8(test_r, 0xffffffffffffffffU)
|
||||||
|
@ -181,6 +181,7 @@ Notes:
|
|||||||
#include "bus/scsi/scsihd.h"
|
#include "bus/scsi/scsihd.h"
|
||||||
#include "softlist.h"
|
#include "softlist.h"
|
||||||
|
|
||||||
|
|
||||||
// CD controller IRQ types
|
// CD controller IRQ types
|
||||||
#define TOWNS_CD_IRQ_MPU 1
|
#define TOWNS_CD_IRQ_MPU 1
|
||||||
#define TOWNS_CD_IRQ_DMA 2
|
#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(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(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
|
AM_RANGE(0x81000000, 0x8101ffff) AM_READWRITE8(towns_spriteram_r,towns_spriteram_w,0xffffffff) // Sprite RAM
|
||||||
// 0xc0000000 - 0xc0ffffff // IC Memory Card (static, first 16MB only)
|
AM_RANGE(0xc0000000, 0xc0ffffff) AM_DEVREADWRITE8("icmemcard", fmt_icmem_device, static_mem_read, static_mem_write, 0xffffffff)
|
||||||
// 0xc1000000 - 0xc1ffffff // IC Memory Card (banked, can show any of 4 banks), JEIDA v4 only (UX and later)
|
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(0xc2000000, 0xc207ffff) AM_ROM AM_REGION("user",0x000000) // OS ROM
|
||||||
AM_RANGE(0xc2080000, 0xc20fffff) AM_ROM AM_REGION("user",0x100000) // DIC 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
|
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(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(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(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(0x00e80000, 0x00efffff) AM_ROM AM_REGION("user",0x100000) // DIC ROM
|
||||||
AM_RANGE(0x00f00000, 0x00f7ffff) AM_ROM AM_REGION("user",0x180000) // FONT
|
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
|
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(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(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(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(0x00e00000, 0x00e7ffff) AM_ROM AM_REGION("user",0x000000) // OS
|
||||||
AM_RANGE(0x00e80000, 0x00efffff) AM_ROM AM_REGION("user",0x100000) // DIC ROM
|
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(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)
|
AM_RANGE(0x0440,0x045f) AM_READWRITE8(towns_video_440_r, towns_video_440_w, 0xffffffff)
|
||||||
// System port
|
// System port
|
||||||
AM_RANGE(0x0480,0x0483) AM_READWRITE8(towns_sys480_r,towns_sys480_w,0x000000ff) // R/W (0x480)
|
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
|
// CD-ROM
|
||||||
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff00ff)
|
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff00ff)
|
||||||
// Joystick / Mouse ports
|
// 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)
|
AM_RANGE(0x0440,0x045f) AM_READWRITE8(towns_video_440_r, towns_video_440_w, 0xffff)
|
||||||
// System port
|
// System port
|
||||||
AM_RANGE(0x0480,0x0481) AM_READWRITE8(towns_sys480_r,towns_sys480_w,0x00ff) // R/W (0x480)
|
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
|
// CD-ROM
|
||||||
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff)
|
AM_RANGE(0x04c0,0x04cf) AM_READWRITE8(towns_cdrom_r,towns_cdrom_w,0x00ff)
|
||||||
// Joystick / Mouse ports
|
// Joystick / Mouse ports
|
||||||
@ -2322,7 +2329,7 @@ static INPUT_PORTS_START( towns )
|
|||||||
PORT_CONFSETTING(0x20, "Mouse")
|
PORT_CONFSETTING(0x20, "Mouse")
|
||||||
PORT_CONFSETTING(0x40, "6-button joystick")
|
PORT_CONFSETTING(0x40, "6-button joystick")
|
||||||
|
|
||||||
// Keyboard
|
// Keyboard
|
||||||
PORT_START( "key1" ) // scancodes 0x00-0x1f
|
PORT_START( "key1" ) // scancodes 0x00-0x1f
|
||||||
PORT_BIT(0x00000001,IP_ACTIVE_HIGH,IPT_UNUSED)
|
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)
|
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_VIDEO_START_OVERRIDE(towns_state,towns)
|
||||||
|
|
||||||
|
MCFG_FMT_ICMEMCARD_ADD("icmemcard")
|
||||||
|
|
||||||
/* internal ram */
|
/* internal ram */
|
||||||
MCFG_RAM_ADD(RAM_TAG)
|
MCFG_RAM_ADD(RAM_TAG)
|
||||||
MCFG_RAM_DEFAULT_SIZE("6M")
|
MCFG_RAM_DEFAULT_SIZE("6M")
|
||||||
|
@ -356,10 +356,16 @@ ROM_END
|
|||||||
|
|
||||||
ROM_START( isbc2861 )
|
ROM_START( isbc2861 )
|
||||||
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
|
ROM_REGION( 0x10000, "user1", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD16_BYTE( "174894-001.bin", 0x0000, 0x4000, CRC(79e4f7af) SHA1(911a4595d35e6e82b1149e75bb027927cd1c1658))
|
ROM_SYSTEM_BIOS( 0, "v11", "iSDM Monitor V1.1" )
|
||||||
ROM_LOAD16_BYTE( "174894-002.bin", 0x0001, 0x4000, CRC(66747d21) SHA1(4094b1f10a8bc7db8d6dd48d7128e14e875776c7))
|
ROMX_LOAD( "174894-001.bin", 0x0000, 0x4000, CRC(79e4f7af) SHA1(911a4595d35e6e82b1149e75bb027927cd1c1658), ROM_SKIP(1) | ROM_BIOS(1))
|
||||||
ROM_LOAD16_BYTE( "174894-003.bin", 0x8000, 0x4000, CRC(c98c7f17) SHA1(6e9a14aedd630824dccc5eb6052867e73b1d7db6))
|
ROMX_LOAD( "174894-002.bin", 0x0001, 0x4000, CRC(66747d21) SHA1(4094b1f10a8bc7db8d6dd48d7128e14e875776c7), ROM_SKIP(1) | ROM_BIOS(1))
|
||||||
ROM_LOAD16_BYTE( "174894-004.bin", 0x8001, 0x4000, CRC(61bc1dc9) SHA1(feed5a5f0bb4630c8f6fa0d5cca30654a80b4ee5))
|
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_END
|
||||||
|
|
||||||
ROM_START( rpc86 )
|
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( 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( 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( 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)
|
||||||
|
@ -900,7 +900,7 @@ Game modes explained:
|
|||||||
|
|
||||||
|
|
||||||
NOTE: Speakers should be connected serially to Speaker (+) and Speaker (-).
|
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
|
to Speaker (+) and GND, to keep the amplifier from being damaged or
|
||||||
from malfunctioning.
|
from malfunctioning.
|
||||||
|
|
||||||
|
@ -2695,6 +2695,17 @@ ROM_START( tekken3 )
|
|||||||
ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
|
ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
|
||||||
ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) )
|
ROM_LOAD( "tet1wave0.5", 0x0000000, 0x400000, CRC(77ba7975) SHA1(fe9434dcf0fb232c85efaaae1b4b13d36099620a) )
|
||||||
ROM_LOAD( "tet1wave1.4", 0x0400000, 0x400000, CRC(ffeba79f) SHA1(941412bbe9d0305d9a23c224c1bb774c4321f6df) )
|
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_END
|
||||||
|
|
||||||
ROM_START( tekken3ae )
|
ROM_START( tekken3ae )
|
||||||
|
@ -692,11 +692,13 @@ private:
|
|||||||
|
|
||||||
// FULL RANGE video levels for 100-B model, taken from page 46 of PDF
|
// 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 };
|
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 !
|
// GDC RESET MACRO - used in "machine_reset" & GDC_EXTRA_REGISTER_w !
|
||||||
#define GDC_RESET_MACRO \
|
#define GDC_RESET_MACRO \
|
||||||
|
m_PORT50 = 0; \ \
|
||||||
m_GDC_INDIRECT_REGISTER = 0; \
|
m_GDC_INDIRECT_REGISTER = 0; \
|
||||||
m_GDC_MODE_REGISTER = 0; \
|
m_GDC_MODE_REGISTER = 0; \
|
||||||
m_GDC_WRITE_MASK = 0; \
|
m_GDC_WRITE_MASK = 0; \
|
||||||
@ -2234,7 +2236,7 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
|
|||||||
m_floppy = con->get_device();
|
m_floppy = con->get_device();
|
||||||
if (m_floppy)
|
if (m_floppy)
|
||||||
selected_drive = drive;
|
selected_drive = drive;
|
||||||
printf("%i <- SELECTED DRIVE...\n", m_unit);
|
// printf("%i <- SELECTED DRIVE...\n", m_unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selected_drive == INVALID_DRIVE)
|
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
|
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
|
else
|
||||||
out = (out & ~data) | (mem & data); // VECTOR MODE !
|
out = (out & ~data) | (mem & data); // VECTOR MODE !
|
||||||
|
|
||||||
@ -2789,17 +2791,21 @@ READ8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_r)
|
|||||||
uint8_t out = 0;
|
uint8_t out = 0;
|
||||||
switch(offset)
|
switch(offset)
|
||||||
{
|
{
|
||||||
|
case 0:
|
||||||
|
out = m_PORT50;
|
||||||
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if(m_GDC_INDIRECT_REGISTER & GDC_SELECT_SCROLL_MAP ) // 0x80
|
if(m_GDC_INDIRECT_REGISTER & GDC_SELECT_SCROLL_MAP ) // 0x80
|
||||||
{
|
{
|
||||||
// Documentation says it is always incremented, no matter if read or write:
|
// 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 )
|
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)
|
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;
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("\n * UNEXPECTED CASE: READ REGISTER 50..55 with INDIRECT_REGISTER $%02x and OFFSET $%02x *", m_GDC_INDIRECT_REGISTER, offset);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("\n * UNHANDLED CASE: READ REGISTER 50..55 with INDIRECT_REGISTER $%02x and OFFSET $%02x *", m_GDC_INDIRECT_REGISTER, offset);
|
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)
|
switch(offset)
|
||||||
{
|
{
|
||||||
case 0: // Mode Register must be reloaded following any write to port 50 (software reset).
|
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
|
// FIXME: "Any write to this port also resynchronizes the
|
||||||
// read/modify/write memory cycles of the Graphics Option to those of the GDC.
|
// read/modify/write memory cycles of the Graphics Option to those of the GDC." (?)
|
||||||
GDC_RESET_MACRO
|
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;
|
break;
|
||||||
|
|
||||||
case 1: // 51h - DATA loaded into register previously written to 53h.
|
case 1: // 51h - DATA loaded into register previously written to 53h.
|
||||||
@ -2993,13 +3004,13 @@ WRITE8_MEMBER(rainbow_state::GDC_EXTRA_REGISTER_w)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// --------- WRITE MASK (2 x 8 = 16 bits) USED IN WORD MODE ONLY !
|
// --------- 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)!
|
// There is no specific order for the WRITE_MASK (according to txt/code samples in DEC's PDF).
|
||||||
// !! NEW: LOW... HI JUXTAPOSITION...!!
|
// NOTE: LOW <-> HI JUXTAPOSITION!
|
||||||
case 4: // 54h Write Mask LOW
|
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;
|
break;
|
||||||
case 5: // 55h Write Mask HIGH
|
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;
|
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))
|
MCFG_VT_VIDEO_CLEAR_VIDEO_INTERRUPT_CALLBACK(WRITELINE(rainbow_state, clear_video_interrupt))
|
||||||
|
|
||||||
// *************************** COLOR GRAPHICS (OPTION) **************************************
|
// *************************** 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_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)
|
MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_map)
|
||||||
|
@ -2,13 +2,15 @@
|
|||||||
// copyright-holders:Robbbert
|
// copyright-holders:Robbbert
|
||||||
/************************************************************************************************************
|
/************************************************************************************************************
|
||||||
|
|
||||||
Telcon Zorba
|
Telcon Industries/Modular Micros/Gemini Electronics Zorba
|
||||||
|
http://www.zorba.z80.de
|
||||||
|
|
||||||
2013-08-25 Skeleton
|
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.
|
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
|
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,
|
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.
|
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
|
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.
|
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:
|
Status:
|
||||||
- Boots up, and the keyboard works
|
- Boots up, and the keyboard works
|
||||||
|
|
||||||
@ -27,6 +46,8 @@ ToDo:
|
|||||||
- Fix the display
|
- Fix the display
|
||||||
- Connect the PIT to the UARTs
|
- Connect the PIT to the UARTs
|
||||||
- Replace the ascii keyboard with the real one, if possible
|
- 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
|
- Probably lots of other things
|
||||||
|
|
||||||
|
|
||||||
@ -44,6 +65,7 @@ ToDo:
|
|||||||
#include "sound/beep.h"
|
#include "sound/beep.h"
|
||||||
#include "machine/keyboard.h"
|
#include "machine/keyboard.h"
|
||||||
#include "machine/wd_fdc.h"
|
#include "machine/wd_fdc.h"
|
||||||
|
#include "softlist.h"
|
||||||
|
|
||||||
|
|
||||||
class zorba_state : public driver_device
|
class zorba_state : public driver_device
|
||||||
@ -410,6 +432,8 @@ static MACHINE_CONFIG_START( zorba, zorba_state )
|
|||||||
/* Keyboard */
|
/* Keyboard */
|
||||||
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
|
||||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(zorba_state, kbd_put))
|
MCFG_GENERIC_KEYBOARD_CB(WRITE8(zorba_state, kbd_put))
|
||||||
|
|
||||||
|
MCFG_SOFTWARE_LIST_ADD("flop_list", "zorba")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
ROM_START( zorba )
|
ROM_START( zorba )
|
||||||
@ -428,4 +452,8 @@ ROM_START( zorba )
|
|||||||
ROM_LOAD( "74ls288.u77", 0x0040, 0x0020, CRC(946e03b0) SHA1(24240bdd7bdf507a5b51628fb36ad1266fc53a28) ) // suspected bad dump
|
ROM_LOAD( "74ls288.u77", 0x0040, 0x0020, CRC(946e03b0) SHA1(24240bdd7bdf507a5b51628fb36ad1266fc53a28) ) // suspected bad dump
|
||||||
ROM_END
|
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 )
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
#include "machine/fm_scsi.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
|
#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_fdc(*this, "fdc"),
|
||||||
m_flop0(*this, "fdc:0"),
|
m_flop0(*this, "fdc:0"),
|
||||||
m_flop1(*this, "fdc:1"),
|
m_flop1(*this, "fdc:1"),
|
||||||
|
m_icmemcard(*this, "icmemcard"),
|
||||||
m_nvram(*this, "nvram"),
|
m_nvram(*this, "nvram"),
|
||||||
m_nvram16(*this, "nvram16"),
|
m_nvram16(*this, "nvram16"),
|
||||||
m_ctrltype(*this, "ctrltype"),
|
m_ctrltype(*this, "ctrltype"),
|
||||||
@ -124,6 +128,7 @@ class towns_state : public driver_device
|
|||||||
required_device<mb8877_t> m_fdc;
|
required_device<mb8877_t> m_fdc;
|
||||||
required_device<floppy_connector> m_flop0;
|
required_device<floppy_connector> m_flop0;
|
||||||
required_device<floppy_connector> m_flop1;
|
required_device<floppy_connector> m_flop1;
|
||||||
|
required_device<fmt_icmem_device> m_icmemcard;
|
||||||
ram_device* m_messram;
|
ram_device* m_messram;
|
||||||
cdrom_image_device* m_cdrom;
|
cdrom_image_device* m_cdrom;
|
||||||
cdda_device* m_cdda;
|
cdda_device* m_cdda;
|
||||||
|
@ -189,6 +189,7 @@ private:
|
|||||||
AUDIO_DMA *ai_fifo_get_top();
|
AUDIO_DMA *ai_fifo_get_top();
|
||||||
void ai_fifo_push(uint32_t address, uint32_t length);
|
void ai_fifo_push(uint32_t address, uint32_t length);
|
||||||
void ai_fifo_pop();
|
void ai_fifo_pop();
|
||||||
|
bool ai_delayed_carry;
|
||||||
|
|
||||||
dmadac_sound_device *ai_dac[2];
|
dmadac_sound_device *ai_dac[2];
|
||||||
uint32_t ai_dram_addr;
|
uint32_t ai_dram_addr;
|
||||||
|
184
src/mame/machine/fmt_icmem.cpp
Normal file
184
src/mame/machine/fmt_icmem.cpp
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
77
src/mame/machine/fmt_icmem.h
Normal file
77
src/mame/machine/fmt_icmem.h
Normal 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__ */
|
@ -170,6 +170,7 @@ void n64_periphs::device_reset()
|
|||||||
ai_dacrate = 0;
|
ai_dacrate = 0;
|
||||||
ai_bitrate = 0;
|
ai_bitrate = 0;
|
||||||
ai_status = 0;
|
ai_status = 0;
|
||||||
|
ai_delayed_carry = false;
|
||||||
|
|
||||||
pi_dma_timer->adjust(attotime::never);
|
pi_dma_timer->adjust(attotime::never);
|
||||||
pi_rd_len = 0;
|
pi_rd_len = 0;
|
||||||
@ -1255,6 +1256,9 @@ void n64_periphs::ai_dma()
|
|||||||
//
|
//
|
||||||
//fwrite(&ram[current->address/2],current->length,1,audio_dump);
|
//fwrite(&ram[current->address/2],current->length,1,audio_dump);
|
||||||
|
|
||||||
|
if (ai_delayed_carry)
|
||||||
|
current->address += 0x2000;
|
||||||
|
|
||||||
ram = &ram[current->address/2];
|
ram = &ram[current->address/2];
|
||||||
|
|
||||||
//osd_printf_debug("DACDMA: %x for %x bytes\n", current->address, current->length);
|
//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
|
// adjust the timer
|
||||||
period = attotime::from_hz(DACRATE_NTSC) * (ai_dacrate + 1) * (current->length / 4);
|
period = attotime::from_hz(DACRATE_NTSC) * (ai_dacrate + 1) * (current->length / 4);
|
||||||
ai_timer->adjust(period);
|
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)
|
TIMER_CALLBACK_MEMBER(n64_periphs::ai_timer_callback)
|
||||||
@ -1286,6 +1295,7 @@ void n64_periphs::ai_timer_tick()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ai_status &= ~0x40000000;
|
ai_status &= ~0x40000000;
|
||||||
|
ai_delayed_carry = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ enum
|
|||||||
* +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ *
|
* +-+-+-+-+-+-+----+----+----+----+----+----+----+----+----+----+ *
|
||||||
* *
|
* *
|
||||||
* SPRn 1=collision with sprite #n *
|
* 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 *
|
* BRDR 1=collision with screen border *
|
||||||
* *
|
* *
|
||||||
****************************************************************************
|
****************************************************************************
|
||||||
|
@ -852,7 +852,7 @@ try_again:
|
|||||||
m_adapter, D3DDEVTYPE_HAL, device_hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device);
|
m_adapter, D3DDEVTYPE_HAL, device_hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device);
|
||||||
if (FAILED(result))
|
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
|
// we exceed a threshold
|
||||||
if (result == D3DERR_DEVICELOST)
|
if (result == D3DERR_DEVICELOST)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user