diff --git a/.gitattributes b/.gitattributes index 04571e8dfec..92a586299b5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,6 +21,9 @@ hash/abc1600.xml svneol=native#text/xml hash/abc80.xml svneol=native#text/xml hash/abc800.xml svneol=native#text/xml hash/abc806.xml svneol=native#text/xml +hash/adam_cart.xml svneol=native#text/xml +hash/adam_cass.xml svneol=native#text/xml +hash/adam_flop.xml svneol=native#text/xml hash/advision.xml svneol=native#text/xml hash/alice32.xml svneol=native#text/xml hash/alice90.xml svneol=native#text/xml diff --git a/hash/adam_cart.xml b/hash/adam_cart.xml new file mode 100644 index 00000000000..58cf7150084 --- /dev/null +++ b/hash/adam_cart.xml @@ -0,0 +1,55 @@ + + + + + + + + ADAM Resident Debugger (Prototype Rev20) + 198? + Coleco? + + + + + + + + + + + + ADAM Diagnostics + 1982 + Coleco + + + + + + + + + ADAM Tape Util Rev. 22 + 1982 + Coleco + + + + + + + + diff --git a/hash/adam_cass.xml b/hash/adam_cass.xml new file mode 100644 index 00000000000..e17ae007d7e --- /dev/null +++ b/hash/adam_cass.xml @@ -0,0 +1,221 @@ + + + + + + Adam Link II Communications Package + 1983 + Coleco + + + + + + + + + + Addictus (v1.01) + 1989 + Reedy Software + + + + + + + + + + Best of Electronic Arts: Pinball Construction Set & The Hard Hat Mack + 19?? + K-Byte + + + + + + + + + + Buck Rogers: Planet of Doom + 1983 + Sega + + + + + + + + + + CopyCart+ (v1.1) + 19?? + <unknown> + + + + + + + + + + Donkey Kong Jr (Rev 14) + 1983 + Nintendo + + + + + + + + + + Evolution + 1983 + Sydney Development + + + + + + + + + + Expertype: Smart Writer Typing Tuition Program + 19?? + <unknown> + + + + + + + + + + Flash Facts: Trivia + 1984 + Coleco + + + + + + + + + + Flash Facts: Vocabulator + 1984 + Coleco + + + + + + + + + + Smart Filer + 1984 + Coleco + + + + + + + + + + Smart Letters and Forms + 1984 + Coleco + + + + + + + + + + SmartLOGO + 198 + Logo Computer Systems + + + + + + + + + + Software for the Coleco Adam + 19?? + <unknown> + + + + + + + + + + Subroc + 1983 + Sega + + + + + + + + + + Trolls Tale + 19?? + <unknown> + + + + + + + + + + NIAD SmartBasic Utils UNDV #2 + 1983 + Lazer Microsystems + + + + + + + + + + Mini Review N-Z + 19?? + <unknown> + + + + + + + + + diff --git a/hash/adam_flop.xml b/hash/adam_flop.xml new file mode 100644 index 00000000000..2b30d04005d --- /dev/null +++ b/hash/adam_flop.xml @@ -0,0 +1,1085 @@ + + + + + + Best of B.C. Featuring B.C's Quest For Tires and B.C. II: Grog's Revenge + 1985 + Sydney Development + + + + + + + + + + The Best of Electronic Arts + 19?? + Electronic Arts + + + + + + + + + + Cartsoft #01 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #04 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #05 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #07 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #08 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #14 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #16 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Cartsoft #19 + 198? + U.K. ADAM Subscribers + + + + + + + + + + Megadisk #1 + 19?? + Coleco & LMI + + + + + + + + + + NIAD Public Domain Volume 36 + 1989 + NIAD + + + + + + + + + + Adam Calc + 1984 + Lazer MicroSystems + + + + + + + + + + Adam Link II Patches + 1984 + Coleco + + + + + + + + + + Adam Link II Telecommunicator + 1984 + Coleco + + + + + + + + + + ADAM Utilities (v1.50) + 1984 + Coleco + + + + + + + + + + ADAMCALC Orphanware Patch + 1987 + Thomas E. Clary + + + + + + + + + + Boot Pix Deluxe + 1988 + Metro Orlando Adam User's Group + + + + + + + + + + Catalog Program + 198? + Coleco + + + + + + + + + + Copycart+ 01 + 1985 + MMSG + + + + + + + + + + Copycart+ 02 + 1985 + MMSG + + + + + + + + + + Copycart+ 02 (Alt) + 1985 + MMSG + + + + + + + + + + Copycart+ 03 + 1985 + MMSG + + + + + + + + + + Copycart+ 04 + 1985 + MMSG + + + + + + + + + + Copycart+ 05 + 1985 + MMSG + + + + + + + + + + Copycart+ 06 + 1985 + MMSG + + + + + + + + + + EOS CPM Format Utilites + 19?? + <unknown> + + + + + + + + + + GJMG: Copy Utilities + 1987 + GJMG Enterprises + + + + + + + + + + GJMG: Quickopy (v1.0) + 1987 + GJMG Enterprises + + + + + + + + + + GJMG: Quickopy (v1.1) + 1987 + GJMG Enterprises + + + + + + + + + + Market Monitor + 1986 + Coleco + + + + + + + + + + Multicart Backup + 19?? + <unknown> + + + + + + + + + + Orphanware Fastpatch (v2.0) + 1987 + Orhan + + + + + + + + + + PowerPAINT + 1987 + Digital Express + + + + + + + + + + Simple Painter & Simple FX + 1990 + THE softWORKS FACTORY + + + + + + + + + + Smart Filer + 1984 + Coleco + + + + + + + + + + SmartBasic (v1.0) + 1983 + Coleco & LMI + + + + + + + + + + SmartBasic v1.2 + 1983 + Coleco & LMI + + + + + + + + + + SmartLOGO + 1984 + LOGO Computer Systems + + + + + + + + + + SmartPrint Plus + 1992 + M.A.L. & Swift + + + + + + + + + + Swift Disk + 19?? + <unknown> + + + + + + + + + + Wordstar (v3.3) + 1983 + MicroPro International Corporation + + + + + + + + + + Richard Scarry's Best Electronic Word Book Ever! + 1984 + Coleco + + + + + + + + + + 2010: The Ultimate Text Adventure + 1985 + MGM & United Artists Entertainment + + + + + + + + + + Adam Links Golf + 1986 + Superior Software + + + + + + + + + + Addictus + 1989 + Reedy Software + + + + + + + + + + Buck Rogers: Planet of Zoom + 1983 + Sega + + + + + + + + + + Cabbage Patch Kids: Adventures in the Park (Alt) + 1984 + Coleco + + + + + + + + + + Cabbage Patch Kids: Adventures in the Park + 1984 + Coleco + + + + + + + + + + Campaign '84 + 1983 + Sunrise Software + + + + + + + + + + Chess Champ + 1988 + Digital Express + + + + + + + + + + The Dam Busters + 1984 + Sydney Development + + + + + + + + + + Diablo + 1984 + Image Microcorp & Extended Software + + + + + + + + + + Donkey Kong Jr (Rev 13) + 1983 + Coleco & Nintendo + + + + + + + + + + Dragon's Lair + 1983 + Magicom + + + + + + + + + + Evolution + 1983 + Sydney Development + + + + + + + + + + Family Feud: Questions Pack + 1986 + The Family Company + + + + + + + + + + Family Feud: Questions Pack (Alt) + 1986 + The Family Company + + + + + + + + + + Family Feud: Writer + 1986 + Walters Software + + + + + + + + + + Jeopardy (Proto) + 19?? + <unknown> + + + + + + + + + + Jeopardy (Proto) (Alt) + 19?? + <unknown> + + + + + + + + + + Modem Chess + 1993 + Bonafide Software + + + + + + + + + + Phrase Craze + 1988 + Reedy Software + + + + + + + + + + Quatris + 1989 + Steven B. Perkins + + + + + + + + + + Super Cosmo Fighter + 1997 + Marcel de Kogel + + + + + + + + + + Super Subroc + 1984 + Sega & Coleco + + + + + + + + + + Super Zaxxon + 1984 + Sega & Coleco + + + + + + + + + + Temple of Apshai + 1985 + Epyx + + + + + + + + + + CP/M 2.2 (v1.50) + 1984 + Digital Research & Coleco + + + + + + + + + + CP/M 2.2 (v1.50) (Alt) + 1984 + Digital Research & Coleco + + + + + + + + + + TDOS CPM 2.2 System + 19?? + <unknown> + + + + + + + + + + TDOS (v4.5) + 19?? + <unknown> + + + + + + + + + + + + + + + + TDOS (v4.58) + 19?? + <unknown> + + + + + + + + + + ANN XMAS 2001 + 2001 + ADAM News Network + + + + + + + + + + ANN XMAS 2008 + 2008 + ADAM News Network + + + + + + + + + + ANN XMAS 2009 + 2009 + ADAM News Network + + + + + + + + + + ANN XMAS 2010 + 2010 + ADAM News Network + + + + + + + + + + + + + + + + ANN XMAS 2011 + 2011 + ADAM News Network + + + + + + + + + + + + + + + + ANN XMAS 2002 + 2002 + ADAM News Network + + + + + + + + + + ANN XMAS 2003 + 2003 + ADAM News Network + + + + + + + + + + ANN XMAS 2000 + 2000 + ADAM News Network + + + + + + + + + + ANN XMAS 2005 + 2005 + ADAM News Network + + + + + + + + + + ANN XMAS 2004 + 2004 + ADAM News Network + + + + + + + + + + ANN XMAS 2006 + 2006 + ADAM News Network + + + + + + + + + + + + + + + + ANN XMAS 2007 + 2007 + ADAM News Network + + + + + + + + + + Zork I: The Great Underground Empire + 1983 + Infocom + + + + + + + + + + Zork II: The Wizard of Frobozz + 1983 + Infocom + + + + + + + + + + Zork III: The Dungeon Master + 1983 + Infocom + + + + + + + + + diff --git a/hash/coleco.xml b/hash/coleco.xml index 5d8011c8aec..a4b83d8910c 100644 --- a/hash/coleco.xml +++ b/hash/coleco.xml @@ -2438,33 +2438,6 @@ - - ADAM Resident Debugger (Prototype Rev20) - 198? - Coleco? - - - - - - - - - - - The Berenstain Bears (Prototype) diff --git a/src/mess/drivers/adam.c b/src/mess/drivers/adam.c index 3026f2127e8..786d7661973 100644 --- a/src/mess/drivers/adam.c +++ b/src/mess/drivers/adam.c @@ -161,6 +161,131 @@ E0-FF (W) = Sound Chip (SN76489A) E0-FF (R) = Read Controller data, A1=0 -> read controller 1, A1=1 -> read controller 2 +*/ + +/* + Detailed Coleco ADAM Computer I/O Address Map + +Port # Device Input Output +__________________________________________________________________________________________ + +00 Powermate SASI Hard Drive Input Data Output Data +01 Powermate SASI Hard Drive Status Register Command Register +01 MIB2 RESET line * Not Used on MIB2 * Bit 3 = 1 for MIB2 RESET +01 Powermate IDE Hard Drive Error Register * Not Used on IDE HD * +02 Powermate IDE Hard Drive Sector Count Register Sector Count Register +03 Powermate IDE Hard Drive Sector Number Register Sector Number Register +04 Powermate IDE Hard Drive Cylinder Low Register Cylinder Low Register +05 Powermate IDE Hard Drive Cylinder High Register Cylinder High Register +06 Powermate IDE Hard Drive SDH Register SDH Register +07 Powermate IDE Hard Drive Status Register Command Register +08 Bonafide Sys MIDI Interface +09 Bonafide Sys MIDI Interface +0A Bonafide Sys MIDI Interface +0B Bonafide Sys MIDI Interface +0C Bonafide Sys MIDI Interface +0D Bonafide Sys MIDI Interface +0E Bonafide Sys MIDI Interface +0F Bonafide Sys MIDI Interface +10 Powermate Serial ports Mode Register A Mode Register A +11 Powermate Serial ports Status Register A Clock Select Reg A +12 Powermate Serial ports * DO NOT USE * Command Register A +13 Powermate Serial ports RX Holding Register A TX Holding Reg A +14 Powermate Serial ports Input Port Change Reg Aux Control Register +15 Powermate Serial ports Interrupt Status Reg Interrupt Mask Reg +16 Powermate Serial ports Read Counter Upper Set C/T Upper Register +17 Powermate Serial ports Read Counter Lower Set C/T Lower Register +18 Powermate Serial ports Mode Register B Mode Register B +19 Powermate Serial ports Status Register B Clock Select Reg B +1A Powermate Serial ports * DO NOT USE * Command Register B +1B Powermate Serial ports RX Holding Register B TX Holding Register B +1C Powermate Serial ports * Reserved (note 5) * MIB3 Serial Port RESET +1D Powermate Serial ports Read Input Port Bits Output Port Config Reg +1E Coleco AutoDialer ?? ?? +1E Powermate Serial ports Start Counter Cmd Port Set Output Port Bits +1F Powermate Serial ports Stop Counter Cmd Port Reset Output Port Bits +20-3F AdamNet Reset Input MAY be available Output is NOT available +40 Parallel Printer interface Printer status Output Data +41 May be unused (see note 1) Input may NOT be avail Output MAY be available +42 Expansion Memory * Not Used * Bank Number +43 May be unused (see note 1) Input may NOT be avail Output MAY be available +44-47 Eve/Orphanware Serial Port +48-4B Eve Speech Synth/Clock Card +4C-4F Orphanware Serial Port 2 (Standard Eve 80 column terminal ports) +4F Coleco Steering controller (Listed in Hackers guide as Expansion conn #2) +50-53 Super Game Module +54-57 Orphanware Serial Port 3 (Standard Orphanware 80 column terminal ports) +58 Powermate IDE Hard Disk Input Data Lower 8 bits Output Data Lower 8 bits +59 Powermate IDE Hard Disk Input Data Upper 8 bits Output Data Upper 8 bits +5A Powermate IDE Hard Disk Alternate Status Reg Fixed Disk Control Reg +5B Powermate IDE Hard Disk Digital Input Register ** Not Used by IDE HD ** +5C-5F Orphanware Serial Port 4 +5E Adamlink Modem Input Data Output Data +5F Adamlink Modem Status Control +60-7F Memory Bank Switch Port Input MAY be available Output is NOT available +80-8F *** Unused *** (see note 2) STA (?) +90-9F Orphanware Hard Drive STA (?) +A0-BF Video Display Processor +C0 Strobe Reset STB (?) +C1-DF *** Unused *** (see note 2) STB (?) +EO-FF Sound Chip (Out only) +FC Joystick #1 (In only) +FE Joystick #2 (In only) + + +Notes: + +1) Port 41 or port 43 is used by the Eve 80 column unit as a keyboard input port. +2) Not useable from expansion card slots (can't read or write data to or from ports) - + may be available on side port. +3) Powermate IDE hard disk drive will not interfere with Powermate serial ports. +4) Powermate serial ports will probably interfere with autodialer. +5) Reserved ports in Powermate serial port map: Input ports 12 and 1A - screw up serial + ports if used; Input port 1C doesn't bother anything but the 2681 drives the bus; +6) Orphanware serial port number 4 probably interferes with the ADAMlink modem. + 7) According to my analysis of circuit U6 in the ADAM computer, all of upper I/O address + space is decoded (by an LS138). However, not all outputs appear to be used. The + circuit description follows. Please correct any misassumptions I've made. Note that + if my analysis is correct, then the Orphanware hard disk should be interfering with + the signal STA\ (which is associated with the joysticks in some way). + + + + U6 + 74LS138 A6 A5 WR\ + |--------------| + WR\ -----|A Y0|o---- 0 0 0 80-9F Write (STA\) + | | + A5 -----|B Y1|o---- 0 0 1 80-9F Read (Not Used) + | | + A6 -----|C Y2|o---- 0 1 0 A0-BF Write (VDP CSW\) + | | + A7 -----|G1 Y3|o---- 0 1 1 A0-BF Read (VDP CSR\) + | | +IORQ\ ----o|G2A Y4|o---- 1 0 0 C0-DF Write (STB\) + | | +WAIT\ ----o|G2B Y5|o---- 1 0 1 C0-DF Read (Not Used) + | | + | Y6|o---- 1 1 0 E0-FF Write (Sound CE\) + | | + | Y7|o---- 1 1 1 E0-FF Read (Joystick Enables) + |--------------| + +Conventions: + +1) The "o" symbol next to an input or an output implies that the pin requires an active + low signal. +2) The "\" symbol following a signal mnemonic indicates that the signal is active low. + + +Rev. 3 +8/30/92 +Mark Gordon +*/ + +/* + + TODO: http://drushel.cwru.edu/atm/atm.html http://rich.dirocco.org/Coleco/adam/ADAM.htm @@ -1351,8 +1476,18 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( fdc6801_mem, AS_PROGRAM, 8, adam_state ) AM_RANGE(0x0000, 0x001f) AM_READWRITE_LEGACY(m6801_io_r, m6801_io_w) - AM_RANGE(0x0080, 0x00ff) AM_RAM - AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION(M6801_FDC_TAG, 0) + AM_RANGE(0x0080, 0x00ff) AM_RAM + AM_RANGE(0x0400, 0x07ff) AM_RAM AM_WRITEONLY AM_SHARE("fdc_ram") + AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xff) AM_DEVREAD_LEGACY(WD2793_TAG, wd17xx_status_r) + AM_RANGE(0x1400, 0x17ff) AM_RAM AM_READONLY AM_SHARE("fdc_ram") + AM_RANGE(0x1800, 0x1800) AM_MIRROR(0xff) AM_DEVWRITE_LEGACY(WD2793_TAG, wd17xx_command_w) + AM_RANGE(0x2800, 0x2800) AM_MIRROR(0xff) AM_DEVREAD_LEGACY(WD2793_TAG, wd17xx_track_r) + AM_RANGE(0x3800, 0x3800) AM_MIRROR(0xff) AM_DEVWRITE_LEGACY(WD2793_TAG, wd17xx_track_w) + AM_RANGE(0x4800, 0x4800) AM_MIRROR(0xff) AM_DEVREAD_LEGACY(WD2793_TAG, wd17xx_sector_r) + AM_RANGE(0x5800, 0x5800) AM_MIRROR(0xff) AM_DEVWRITE_LEGACY(WD2793_TAG, wd17xx_sector_w) + AM_RANGE(0x6800, 0x6800) AM_MIRROR(0xff) AM_DEVREAD_LEGACY(WD2793_TAG, wd17xx_data_r) + AM_RANGE(0x7800, 0x7800) AM_MIRROR(0xff) AM_DEVWRITE_LEGACY(WD2793_TAG, wd17xx_data_w) + AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x7000) AM_ROM AM_REGION(M6801_FDC_TAG, 0) ADDRESS_MAP_END @@ -1530,7 +1665,7 @@ static const cassette_interface adam_cassette_interface = coleco_adam_cassette_formats, &adam_cassette_options, (cassette_state)(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED), - NULL, + "adam_cass", NULL }; @@ -1557,7 +1692,7 @@ static const floppy_interface adam_floppy_interface = DEVCB_NULL, FLOPPY_STANDARD_5_25_SSDD, LEGACY_FLOPPY_OPTIONS_NAME(adam), - NULL, + "floppy_5_25", NULL }; @@ -1738,6 +1873,7 @@ static MACHINE_CONFIG_START( adam, adam_state ) MCFG_CARTSLOT_ADD("cart") MCFG_CARTSLOT_EXTENSION_LIST("rom,col,bin") MCFG_CARTSLOT_NOT_MANDATORY + MCFG_CARTSLOT_INTERFACE("coleco_cart") // ROM expansion MCFG_CARTSLOT_ADD("xrom") @@ -1748,6 +1884,12 @@ static MACHINE_CONFIG_START( adam, adam_state ) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("64K") MCFG_RAM_EXTRA_OPTIONS("128K") + + // software lists + MCFG_SOFTWARE_LIST_ADD("colec_cart_list", "coleco") + MCFG_SOFTWARE_LIST_ADD("adam_cart_list", "adam_cart") + MCFG_SOFTWARE_LIST_ADD("cass_list", "adam_cass") + MCFG_SOFTWARE_LIST_ADD("flop_list", "adam_flop") MACHINE_CONFIG_END @@ -1790,8 +1932,8 @@ ROM_START( adam ) ROM_REGION( 0x800, M6801_PRN_TAG, 0 ) ROM_LOAD( "printer.u2", 0x000, 0x800, CRC(e8db783b) SHA1(32b40679749ad0317c2c9ee9ca619fad6d850ce7) ) - ROM_REGION( 0x800, M6801_FDC_TAG, 0 ) - ROM_LOAD( "floppy disk drive", 0x000, 0x800, NO_DUMP ) + ROM_REGION( 0x1000, M6801_FDC_TAG, 0 ) + ROM_LOAD( "floppy disk drive", 0x0000, 0x1000, NO_DUMP ) ROM_REGION( 0x800, M6801_SPI_TAG, 0 ) ROM_LOAD( "spi.bin", 0x000, 0x800, CRC(4ba30352) SHA1(99fe5aebd505a208bea6beec5d7322b15426e9c1) ) diff --git a/src/mess/includes/adam.h b/src/mess/includes/adam.h index 386faee59b7..046c19b0bdf 100644 --- a/src/mess/includes/adam.h +++ b/src/mess/includes/adam.h @@ -30,7 +30,8 @@ public: m_rxd(1), m_reset(0), m_dma(1), - m_bwr(1) + m_bwr(1), + m_fdc_ram(*this, "fdc_ram") { for (int i = 0; i < 6; i++) m_txd[i] = 1; @@ -38,11 +39,11 @@ public: required_device m_maincpu; required_device m_netcpu; - required_device m_fdc; + required_device m_fdc; required_device m_ram; required_device m_ddp0; required_device m_ddp1; - required_device m_floppy0; + required_device m_floppy0; virtual void machine_start(); virtual void machine_reset(); @@ -128,6 +129,9 @@ public: int m_track; TIMER_DEVICE_CALLBACK_MEMBER(paddle_tick); DECLARE_WRITE_LINE_MEMBER(adam_vdp_interrupt); + + // floppy state + required_shared_ptr m_fdc_ram; }; #endif