mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
guab: Updated driver to use the standard wd floppy controller.
This also means that it now uses the software list system instead of loading the floppy disk image into a memory region. To run the driver use: "mame guab -flop guab3" now. You may also just start the driver, then choose a floppy disk image from the builtin file manager.
This commit is contained in:
parent
58ad8c28fe
commit
08c7ed6ffb
127
hash/guab.xml
Normal file
127
hash/guab.xml
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
|
|
||||||
|
<softwarelist name="guab" description="JPM Give us a Break floppy disks">
|
||||||
|
|
||||||
|
<software name="guab3">
|
||||||
|
<description>Give us a Break (3rd edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab3.dsk" size="737280" crc="ecb41e06" sha1="2900a95046b38312c6035ea394b04b62c1d29f42" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab3a">
|
||||||
|
<description>Give us a Break (3rd edition alt?)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab7c.dsk" size="737280" crc="f5f10f87" sha1="80e540339efbfe59b656d6cd4f466a17df84c123" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab4">
|
||||||
|
<description>Give us a Break (4th edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab8d.dsk" size="737280" crc="b87c55ce" sha1="20debbefae194276b0813518634cf52bed093e73" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab6">
|
||||||
|
<description>Give us a Break (6th edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guabf6.dsk" size="737280" crc="08804c28" sha1="608d89d598b7acb133814540dba98cea29c6cad6" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab6a">
|
||||||
|
<description>Give us a Break (6th edition alt?)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab9f.dsk" size="737280" crc="85329fe9" sha1="f5ca1956c37b786fa0a4f8f0607a0a2b19d3fbb0" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab7">
|
||||||
|
<description>Give us a Break (7th edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab9g.dsk" size="737280" crc="6b8c36f9" sha1="1d9f4d943f2962603bbe39e5b58befe15954a6d6" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab21">
|
||||||
|
<description>Give us a Break (21st edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab21.dsk" size="737280" crc="558ee009" sha1="d2a02662216e10f80a215044f1929df7255b6136" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="guab43">
|
||||||
|
<description>Give us a Break (43rd edition)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="guab43.dsk" size="737280" crc="1fd8f614" sha1="656ce33c93a9d0e81ec7fcdd8f4e4b2f9ad1e485" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="crisscrs">
|
||||||
|
<description>Criss Cross (Sweden)</description>
|
||||||
|
<year>1986</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="crisscrs.dsk" size="737280" status="nodump" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="tenup">
|
||||||
|
<description>Ten Up (compendium 17)</description>
|
||||||
|
<year>1988</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="10up17.dsk" size="737280" crc="7bc328df" sha1="5f8e40d8ffc370fb19be9e386befa5fcd1f35a75" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="tenup3">
|
||||||
|
<description>Ten Up (compendium 3)</description>
|
||||||
|
<year>1988</year>
|
||||||
|
<publisher>JPM</publisher>
|
||||||
|
<part name="flop1" interface="floppy_3_5">
|
||||||
|
<dataarea name="flop" size="737280">
|
||||||
|
<rom name="10up3.dsk" size="737280" crc="2767f017" sha1="1c6551b089c3e3df48e0c03bd502b91fd88f0e94" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
</softwarelist>
|
@ -258,6 +258,8 @@ project "formats"
|
|||||||
MAME_DIR .. "src/lib/formats/g64_dsk.h",
|
MAME_DIR .. "src/lib/formats/g64_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/gtp_cas.c",
|
MAME_DIR .. "src/lib/formats/gtp_cas.c",
|
||||||
MAME_DIR .. "src/lib/formats/gtp_cas.h",
|
MAME_DIR .. "src/lib/formats/gtp_cas.h",
|
||||||
|
MAME_DIR .. "src/lib/formats/guab_dsk.c",
|
||||||
|
MAME_DIR .. "src/lib/formats/guab_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/hect_dsk.c",
|
MAME_DIR .. "src/lib/formats/hect_dsk.c",
|
||||||
MAME_DIR .. "src/lib/formats/hect_dsk.h",
|
MAME_DIR .. "src/lib/formats/hect_dsk.h",
|
||||||
MAME_DIR .. "src/lib/formats/hect_tap.c",
|
MAME_DIR .. "src/lib/formats/hect_tap.c",
|
||||||
|
42
src/lib/formats/guab_dsk.c
Normal file
42
src/lib/formats/guab_dsk.c
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// license:GPL-2.0+
|
||||||
|
// copyright-holders:Dirk Best
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
JPM Give us a Break
|
||||||
|
|
||||||
|
Disk image format
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "guab_dsk.h"
|
||||||
|
|
||||||
|
guab_format::guab_format() : wd177x_format(formats)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *guab_format::name() const
|
||||||
|
{
|
||||||
|
return "guab";
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *guab_format::description() const
|
||||||
|
{
|
||||||
|
return "JPM Give us a Break disk image";
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *guab_format::extensions() const
|
||||||
|
{
|
||||||
|
return "dsk";
|
||||||
|
}
|
||||||
|
|
||||||
|
// gap sizes unverified
|
||||||
|
const guab_format::format guab_format::formats[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
floppy_image::FF_35, floppy_image::DSDD, floppy_image::MFM,
|
||||||
|
2000, 18, 80, 2, 256, {}, 0, {}, 80, 22, 24
|
||||||
|
},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
const floppy_format_type FLOPPY_GUAB_FORMAT = &floppy_image_format_creator<guab_format>;
|
33
src/lib/formats/guab_dsk.h
Normal file
33
src/lib/formats/guab_dsk.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// license:GPL-2.0+
|
||||||
|
// copyright-holders:Dirk Best
|
||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
JPM Give us a Break
|
||||||
|
|
||||||
|
Disk image format
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef __GUAB_DSK_H__
|
||||||
|
#define __GUAB_DSK_H__
|
||||||
|
|
||||||
|
#include "wd177x_dsk.h"
|
||||||
|
|
||||||
|
class guab_format : public wd177x_format
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
guab_format();
|
||||||
|
|
||||||
|
virtual const char *name() const;
|
||||||
|
virtual const char *description() const;
|
||||||
|
virtual const char *extensions() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static const format formats[];
|
||||||
|
};
|
||||||
|
|
||||||
|
extern const floppy_format_type FLOPPY_GUAB_FORMAT;
|
||||||
|
|
||||||
|
#endif // __GUAB_DSK_H__
|
@ -13465,16 +13465,8 @@ j2sset
|
|||||||
|
|
||||||
// JPM Give us a Break hardware
|
// JPM Give us a Break hardware
|
||||||
guab // (c) 1986
|
guab // (c) 1986
|
||||||
guab3a // (c) 1986
|
|
||||||
guab4 // (c) 1986
|
|
||||||
guab6 // (c) 1986
|
|
||||||
guab6a // (c) 1986
|
|
||||||
guab7 // (c) 1986
|
|
||||||
guab21 // (c) 1986
|
|
||||||
guab43 // (c) 1986
|
|
||||||
crisscrs // (c) 1986
|
crisscrs // (c) 1986
|
||||||
tenup // (c) 1988
|
tenup // (c) 1988
|
||||||
tenup3 // (c) 1988
|
|
||||||
|
|
||||||
|
|
||||||
// JPM System 5
|
// JPM System 5
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
count gets updated in the code. Each game requires a unique
|
count gets updated in the code. Each game requires a unique
|
||||||
security PAL - maybe this is related? I'm poking the coin values
|
security PAL - maybe this is related? I'm poking the coin values
|
||||||
directly into RAM for now.
|
directly into RAM for now.
|
||||||
|
* Verify WD FDC type
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -30,6 +31,8 @@
|
|||||||
#include "machine/6840ptm.h"
|
#include "machine/6840ptm.h"
|
||||||
#include "video/tms34061.h"
|
#include "video/tms34061.h"
|
||||||
#include "sound/sn76496.h"
|
#include "sound/sn76496.h"
|
||||||
|
#include "machine/wd_fdc.h"
|
||||||
|
#include "formats/guab_dsk.h"
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
/*************************************
|
||||||
@ -38,9 +41,6 @@
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
#define LOG_FDC_COMMANDS 0
|
|
||||||
#define FDC_LOG(x) do { if (LOG_FDC_COMMANDS) osd_printf_debug x; } while(0)
|
|
||||||
|
|
||||||
|
|
||||||
enum int_levels
|
enum int_levels
|
||||||
{
|
{
|
||||||
@ -61,19 +61,6 @@ struct ef9369
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct wd1770
|
|
||||||
{
|
|
||||||
UINT32 status;
|
|
||||||
UINT8 cmd;
|
|
||||||
UINT8 data;
|
|
||||||
|
|
||||||
UINT32 side;
|
|
||||||
INT32 track;
|
|
||||||
INT32 sector;
|
|
||||||
UINT32 sptr;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class guab_state : public driver_device
|
class guab_state : public driver_device
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -82,32 +69,37 @@ public:
|
|||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_tms34061(*this, "tms34061"),
|
m_tms34061(*this, "tms34061"),
|
||||||
m_sn(*this, "snsnd"),
|
m_sn(*this, "snsnd"),
|
||||||
|
m_fdc(*this, "fdc"),
|
||||||
|
m_floppy(*this, "fdc:0"),
|
||||||
m_palette(*this, "palette") { }
|
m_palette(*this, "palette") { }
|
||||||
|
|
||||||
/* devices */
|
|
||||||
required_device<cpu_device> m_maincpu;
|
|
||||||
required_device<tms34061_device> m_tms34061;
|
|
||||||
required_device<sn76489_device> m_sn;
|
|
||||||
required_device<palette_device> m_palette;
|
|
||||||
|
|
||||||
struct ef9369 m_pal;
|
|
||||||
emu_timer *m_fdc_timer;
|
|
||||||
struct wd1770 m_fdc;
|
|
||||||
DECLARE_WRITE_LINE_MEMBER(generate_tms34061_interrupt);
|
DECLARE_WRITE_LINE_MEMBER(generate_tms34061_interrupt);
|
||||||
DECLARE_WRITE16_MEMBER(guab_tms34061_w);
|
DECLARE_WRITE16_MEMBER(guab_tms34061_w);
|
||||||
DECLARE_READ16_MEMBER(guab_tms34061_r);
|
DECLARE_READ16_MEMBER(guab_tms34061_r);
|
||||||
DECLARE_WRITE16_MEMBER(ef9369_w);
|
DECLARE_WRITE16_MEMBER(ef9369_w);
|
||||||
DECLARE_READ16_MEMBER(ef9369_r);
|
DECLARE_READ16_MEMBER(ef9369_r);
|
||||||
DECLARE_WRITE16_MEMBER(wd1770_w);
|
DECLARE_READ16_MEMBER(wd1773_r);
|
||||||
DECLARE_READ16_MEMBER(wd1770_r);
|
DECLARE_WRITE16_MEMBER(wd1773_w);
|
||||||
DECLARE_READ16_MEMBER(io_r);
|
DECLARE_READ16_MEMBER(io_r);
|
||||||
DECLARE_WRITE16_MEMBER(io_w);
|
DECLARE_WRITE16_MEMBER(io_w);
|
||||||
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
|
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
|
||||||
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
|
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
|
||||||
virtual void machine_start();
|
|
||||||
virtual void machine_reset();
|
|
||||||
UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
TIMER_CALLBACK_MEMBER(fdc_data_callback);
|
|
||||||
|
DECLARE_FLOPPY_FORMATS(floppy_formats);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void machine_start();
|
||||||
|
|
||||||
|
private:
|
||||||
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<tms34061_device> m_tms34061;
|
||||||
|
required_device<sn76489_device> m_sn;
|
||||||
|
required_device<wd1773_t> m_fdc;
|
||||||
|
required_device<floppy_connector> m_floppy;
|
||||||
|
required_device<palette_device> m_palette;
|
||||||
|
|
||||||
|
struct ef9369 m_pal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -275,285 +267,6 @@ UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitma
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************
|
|
||||||
*
|
|
||||||
* WD1770 floppy disk controller
|
|
||||||
* (just enough to get by...)
|
|
||||||
*
|
|
||||||
*************************************/
|
|
||||||
|
|
||||||
#define USEC_DELAY 40
|
|
||||||
#define DISK_SIDES 2
|
|
||||||
#define DISK_TRACKS 80
|
|
||||||
#define DISK_SECTORS 18
|
|
||||||
|
|
||||||
#define DISK_SECTOR_SIZE 256
|
|
||||||
#define DISK_TRACK_SIZE (DISK_SECTOR_SIZE * DISK_SECTORS)
|
|
||||||
#define DISK_SIDE_SIZE (DISK_TRACK_SIZE * DISK_TRACKS)
|
|
||||||
|
|
||||||
enum wd1770_status
|
|
||||||
{
|
|
||||||
BUSY = 1 << 0,
|
|
||||||
DATA_REQUEST = 1 << 1,
|
|
||||||
INDEX = 1 << 1,
|
|
||||||
LOST_DATA = 1 << 2,
|
|
||||||
TRACK_00 = 1 << 2,
|
|
||||||
CRC_ERROR = 1 << 3,
|
|
||||||
RECORD_NOT_FOUND = 1 << 4,
|
|
||||||
RECORD_TYPE = 1 << 5,
|
|
||||||
SPIN_UP = 1 << 5,
|
|
||||||
WRITE_PROTECT = 1 << 6,
|
|
||||||
MOTOR_ON = 1 << 7
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
TIMER_CALLBACK_MEMBER(guab_state::fdc_data_callback)
|
|
||||||
{
|
|
||||||
struct wd1770 &fdc = m_fdc;
|
|
||||||
UINT8* disk = (UINT8*)memregion("user1")->base();
|
|
||||||
int more_data = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Disk dumps are organised as:
|
|
||||||
|
|
||||||
Side 0, Track 0: Sectors 0 - 17
|
|
||||||
Side 1, Track 0: Sectors 0 - 17
|
|
||||||
Side 0, Track 1: Sectors 0 - 17
|
|
||||||
Side 1, Track 1: Sectors 0 - 17
|
|
||||||
etc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
int idx = 2 * fdc.track * (DISK_TRACK_SIZE) + (fdc.side ? DISK_TRACK_SIZE : 0)+
|
|
||||||
fdc.sector * (DISK_SECTOR_SIZE) +
|
|
||||||
fdc.sptr;
|
|
||||||
|
|
||||||
/* Write or read? */
|
|
||||||
if (fdc.cmd & 0x20)
|
|
||||||
disk[idx] = fdc.data;
|
|
||||||
else
|
|
||||||
fdc.data = disk[idx];
|
|
||||||
|
|
||||||
fdc.sptr++;
|
|
||||||
|
|
||||||
if (fdc.sptr < DISK_SECTOR_SIZE)
|
|
||||||
{
|
|
||||||
more_data = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fdc.sptr = 0;
|
|
||||||
|
|
||||||
/* Multi-sector read */
|
|
||||||
if (fdc.cmd & 0x10)
|
|
||||||
{
|
|
||||||
++fdc.sector;
|
|
||||||
|
|
||||||
/* Keep going */
|
|
||||||
if (fdc.sector < DISK_SECTORS)
|
|
||||||
more_data = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (more_data)
|
|
||||||
{
|
|
||||||
m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Hack!*/
|
|
||||||
fdc.cmd = 0;
|
|
||||||
fdc.status &= ~BUSY;
|
|
||||||
}
|
|
||||||
|
|
||||||
fdc.status |= DATA_REQUEST;
|
|
||||||
m_maincpu->set_input_line(INT_FLOPPYCTRL, ASSERT_LINE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
WRITE16_MEMBER(guab_state::wd1770_w)
|
|
||||||
{
|
|
||||||
struct wd1770 &fdc = m_fdc;
|
|
||||||
data &= 0xff;
|
|
||||||
|
|
||||||
switch (offset)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
UINT8 cmd = (data >> 4) & 0xf;
|
|
||||||
|
|
||||||
FDC_LOG(("Command: %x:: ", data));
|
|
||||||
|
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
/**** Type I ****/
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
FDC_LOG(("Restore\n"));
|
|
||||||
fdc.track = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
FDC_LOG(("Seek to track %d\n", fdc.data));
|
|
||||||
fdc.track = fdc.data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Step */
|
|
||||||
case 2:
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
FDC_LOG(("Step (not implemented)\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 4: case 5:
|
|
||||||
{
|
|
||||||
if (++fdc.track >= DISK_TRACKS)
|
|
||||||
fdc.track = DISK_TRACKS - 1;
|
|
||||||
|
|
||||||
FDC_LOG(("Step-in to track %d\n", fdc.track));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 6: case 7:
|
|
||||||
{
|
|
||||||
if (--fdc.track > 0)
|
|
||||||
fdc.track = 0;
|
|
||||||
|
|
||||||
FDC_LOG(("Step-out to track %d\n", fdc.track));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**** Type II ****/
|
|
||||||
case 8:
|
|
||||||
case 9:
|
|
||||||
{
|
|
||||||
fdc.cmd = data;
|
|
||||||
fdc.status |= BUSY;
|
|
||||||
|
|
||||||
if (data & 0x10)
|
|
||||||
FDC_LOG(("Multi "));
|
|
||||||
|
|
||||||
FDC_LOG(("Sector read: H%d T%d S%d\n", fdc.side,
|
|
||||||
fdc.track,
|
|
||||||
fdc.sector));
|
|
||||||
|
|
||||||
/* Set the data read timer */
|
|
||||||
m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 10:
|
|
||||||
case 11:
|
|
||||||
{
|
|
||||||
fdc.cmd = data;
|
|
||||||
fdc.status |= BUSY;
|
|
||||||
|
|
||||||
if (data & 0x10)
|
|
||||||
FDC_LOG(("Multi "));
|
|
||||||
|
|
||||||
FDC_LOG(("Sector write: H%d T%d S%d\n", fdc.side,
|
|
||||||
fdc.track,
|
|
||||||
fdc.sector));
|
|
||||||
|
|
||||||
/* Trigger a DRQ interrupt on the CPU */
|
|
||||||
m_maincpu->set_input_line(INT_FLOPPYCTRL, ASSERT_LINE);
|
|
||||||
fdc.status |= DATA_REQUEST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**** Type III ****/
|
|
||||||
case 12: /* Read address */
|
|
||||||
case 14: /* Read track */
|
|
||||||
case 15: /* Write track */
|
|
||||||
{
|
|
||||||
FDC_LOG(("Unsupported TYPE III operation\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**** Type IV ****/
|
|
||||||
case 13:
|
|
||||||
{
|
|
||||||
/* Stop any operation in progress */
|
|
||||||
m_fdc_timer->reset();
|
|
||||||
fdc.status &= ~BUSY;
|
|
||||||
FDC_LOG(("Force Interrupt\n"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
FDC_LOG(("Set track: %d\n", data));
|
|
||||||
fdc.track = data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
FDC_LOG(("Set sector: %d\n", data));
|
|
||||||
fdc.sector = data;
|
|
||||||
fdc.sptr = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
fdc.data = data;
|
|
||||||
|
|
||||||
/* Clear the DRQ */
|
|
||||||
m_maincpu->set_input_line(INT_FLOPPYCTRL, CLEAR_LINE);
|
|
||||||
|
|
||||||
/* Queue an event to write the data if write command was specified */
|
|
||||||
if (fdc.cmd & 0x20)
|
|
||||||
m_fdc_timer->adjust(attotime::from_usec(USEC_DELAY));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
READ16_MEMBER(guab_state::wd1770_r)
|
|
||||||
{
|
|
||||||
struct wd1770 &fdc = m_fdc;
|
|
||||||
UINT16 retval = 0;
|
|
||||||
|
|
||||||
switch (offset)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
retval = fdc.status;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
retval = fdc.track;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
retval = fdc.sector;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
retval = fdc.data;
|
|
||||||
|
|
||||||
/* Clear the DRQ */
|
|
||||||
m_maincpu->set_input_line(INT_FLOPPYCTRL, CLEAR_LINE);
|
|
||||||
fdc.status &= ~DATA_REQUEST;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************
|
/****************************************
|
||||||
*
|
*
|
||||||
* Hardware inputs (coins, buttons etc)
|
* Hardware inputs (coins, buttons etc)
|
||||||
@ -604,9 +317,18 @@ INPUT_CHANGED_MEMBER(guab_state::coin_inserted)
|
|||||||
*
|
*
|
||||||
****************************************/
|
****************************************/
|
||||||
|
|
||||||
|
READ16_MEMBER( guab_state::wd1773_r )
|
||||||
|
{
|
||||||
|
return m_fdc->read(space, offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE16_MEMBER( guab_state::wd1773_w )
|
||||||
|
{
|
||||||
|
m_fdc->write(space, offset, data & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
WRITE16_MEMBER(guab_state::io_w)
|
WRITE16_MEMBER(guab_state::io_w)
|
||||||
{
|
{
|
||||||
struct wd1770 &fdc = m_fdc;
|
|
||||||
switch (offset)
|
switch (offset)
|
||||||
{
|
{
|
||||||
case 0x10:
|
case 0x10:
|
||||||
@ -647,7 +369,10 @@ WRITE16_MEMBER(guab_state::io_w)
|
|||||||
case 0x31:
|
case 0x31:
|
||||||
{
|
{
|
||||||
/* Only JPM knows about the other bits... */
|
/* Only JPM knows about the other bits... */
|
||||||
fdc.side = (data >> 3) & 1;
|
m_floppy->get_device()->ss_w(BIT(data, 3));
|
||||||
|
|
||||||
|
// one of those bits will probably control the motor, we just let it run all the time for now
|
||||||
|
m_floppy->get_device()->mon_w(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 0x32:
|
case 0x32:
|
||||||
@ -681,7 +406,7 @@ static ADDRESS_MAP_START( guab_map, AS_PROGRAM, 16, guab_state )
|
|||||||
AM_RANGE(0x0c0080, 0x0c0083) AM_NOP /* ACIA 1 */
|
AM_RANGE(0x0c0080, 0x0c0083) AM_NOP /* ACIA 1 */
|
||||||
AM_RANGE(0x0c00a0, 0x0c00a3) AM_NOP /* ACIA 2 */
|
AM_RANGE(0x0c00a0, 0x0c00a3) AM_NOP /* ACIA 2 */
|
||||||
AM_RANGE(0x0c00c0, 0x0c00cf) AM_DEVREADWRITE8("6840ptm", ptm6840_device, read, write, 0xff)
|
AM_RANGE(0x0c00c0, 0x0c00cf) AM_DEVREADWRITE8("6840ptm", ptm6840_device, read, write, 0xff)
|
||||||
AM_RANGE(0x0c00e0, 0x0c00e7) AM_READWRITE(wd1770_r, wd1770_w)
|
AM_RANGE(0x0c00e0, 0x0c00e7) AM_READWRITE(wd1773_r, wd1773_w)
|
||||||
AM_RANGE(0x080000, 0x080fff) AM_RAM
|
AM_RANGE(0x080000, 0x080fff) AM_RAM
|
||||||
AM_RANGE(0x100000, 0x100003) AM_READWRITE(ef9369_r, ef9369_w)
|
AM_RANGE(0x100000, 0x100003) AM_READWRITE(ef9369_r, ef9369_w)
|
||||||
AM_RANGE(0x800000, 0xb0ffff) AM_READWRITE(guab_tms34061_r, guab_tms34061_w)
|
AM_RANGE(0x800000, 0xb0ffff) AM_READWRITE(guab_tms34061_r, guab_tms34061_w)
|
||||||
@ -770,20 +495,22 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
void guab_state::machine_start()
|
void guab_state::machine_start()
|
||||||
{
|
{
|
||||||
m_fdc_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(guab_state::fdc_data_callback),this));
|
m_fdc->set_floppy(m_floppy->get_device());
|
||||||
}
|
}
|
||||||
|
|
||||||
void guab_state::machine_reset()
|
FLOPPY_FORMATS_MEMBER( guab_state::floppy_formats )
|
||||||
{
|
FLOPPY_GUAB_FORMAT
|
||||||
memset(&m_fdc, 0, sizeof(m_fdc));
|
FLOPPY_FORMATS_END
|
||||||
}
|
|
||||||
|
static SLOT_INTERFACE_START( guab_floppies )
|
||||||
|
SLOT_INTERFACE("dd", FLOPPY_35_DD)
|
||||||
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( guab, guab_state )
|
static MACHINE_CONFIG_START( guab, guab_state )
|
||||||
/* TODO: Verify clock */
|
/* TODO: Verify clock */
|
||||||
MCFG_CPU_ADD("maincpu", M68000, 8000000)
|
MCFG_CPU_ADD("maincpu", M68000, 8000000)
|
||||||
MCFG_CPU_PROGRAM_MAP(guab_map)
|
MCFG_CPU_PROGRAM_MAP(guab_map)
|
||||||
|
|
||||||
|
|
||||||
/* TODO: Use real video timings */
|
/* TODO: Use real video timings */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
MCFG_SCREEN_REFRESH_RATE(60)
|
MCFG_SCREEN_REFRESH_RATE(60)
|
||||||
@ -811,6 +538,15 @@ static MACHINE_CONFIG_START( guab, guab_state )
|
|||||||
MCFG_PTM6840_INTERNAL_CLOCK(1000000)
|
MCFG_PTM6840_INTERNAL_CLOCK(1000000)
|
||||||
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
|
MCFG_PTM6840_EXTERNAL_CLOCKS(0, 0, 0)
|
||||||
MCFG_PTM6840_IRQ_CB(WRITELINE(guab_state, ptm_irq))
|
MCFG_PTM6840_IRQ_CB(WRITELINE(guab_state, ptm_irq))
|
||||||
|
|
||||||
|
// floppy
|
||||||
|
MCFG_WD1773_ADD("fdc", 8000000)
|
||||||
|
MCFG_WD_FDC_DRQ_CALLBACK(INPUTLINE("maincpu", INT_FLOPPYCTRL))
|
||||||
|
|
||||||
|
MCFG_FLOPPY_DRIVE_ADD("fdc:0", guab_floppies, "dd", guab_state::floppy_formats)
|
||||||
|
MCFG_SLOT_FIXED(true)
|
||||||
|
|
||||||
|
MCFG_SOFTWARE_LIST_ADD("floppy_list", "guab")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
@ -826,95 +562,12 @@ ROM_START( guab )
|
|||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab3.dsk", 0x00000, 0xb4000, CRC(ecb41e06) SHA1(2900a95046b38312c6035ea394b04b62c1d29f42) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab3a )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab7c.dsk", 0x00000, 0xb4000, CRC(f5f10f87) SHA1(80e540339efbfe59b656d6cd4f466a17df84c123) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab4 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab8d.dsk", 0x00000, 0xb4000, CRC(b87c55ce) SHA1(20debbefae194276b0813518634cf52bed093e73) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab6 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guabf6.dsk", 0x00000, 0xb4000, CRC(08804c28) SHA1(608d89d598b7acb133814540dba98cea29c6cad6) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab6a )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab9f.dsk", 0x00000, 0xb4000, CRC(85329fe9) SHA1(f5ca1956c37b786fa0a4f8f0607a0a2b19d3fbb0) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab7 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab9g.dsk", 0x00000, 0xb4000, CRC(6b8c36f9) SHA1(1d9f4d943f2962603bbe39e5b58befe15954a6d6) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab21 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab21.dsk", 0x00000, 0xb4000, CRC(558ee009) SHA1(d2a02662216e10f80a215044f1929df7255b6136) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( guab43 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "guab1a1.rom", 0x00000, 0x8000, CRC(f23a9d7d) SHA1(f933e131bdcf21cfa6001c8e20fd11d94c7a9450) )
|
|
||||||
ROM_LOAD16_BYTE( "guab1b1.rom", 0x00001, 0x8000, CRC(af3b5492) SHA1(6fd7f29e6ed2fadccc9246f1ebd049c3f9aeff13) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2a1.rom", 0x10000, 0x8000, CRC(ae7a162c) SHA1(d69721818b8e4daba776a678b62bc7f44f371a3f) )
|
|
||||||
ROM_LOAD16_BYTE( "guab2b1.rom", 0x10001, 0x8000, CRC(29aa26a0) SHA1(8d425ad845ccfcd8995dbf6adc1ca17989a5d3ea) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "guab43.dsk", 0x00000, 0xb3f00, CRC(96167357) SHA1(9d5f66e05ed1086be9699c4149071038f6986e0c) )
|
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( crisscrs )
|
ROM_START( crisscrs )
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||||
ROM_LOAD16_BYTE( "crisscross_swe_2a1.ic49", 0x00000, 0x8000, CRC(a7ca8828) SHA1(a28482bb2bc1248a9b5c0b57904c382246a632cc) )
|
ROM_LOAD16_BYTE( "crisscross_swe_2a1.ic49", 0x00000, 0x8000, CRC(a7ca8828) SHA1(a28482bb2bc1248a9b5c0b57904c382246a632cc) )
|
||||||
ROM_LOAD16_BYTE( "crisscross_swe_2b1.ic48", 0x00001, 0x8000, CRC(7e280cae) SHA1(18c76459e39549ddba5f0cd7921013ef4f816826) )
|
ROM_LOAD16_BYTE( "crisscross_swe_2b1.ic48", 0x00001, 0x8000, CRC(7e280cae) SHA1(18c76459e39549ddba5f0cd7921013ef4f816826) )
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "crisscrs.dsk", 0x00000, 0xb4000, NO_DUMP )
|
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
ROM_START( tenup )
|
ROM_START( tenup )
|
||||||
@ -923,20 +576,6 @@ ROM_START( tenup )
|
|||||||
ROM_LOAD16_BYTE( "tu-12.bin", 0x00001, 0x8000, CRC(1c7f32b1) SHA1(2b14e2206695ae53909ae838a5c036248d9ab940) )
|
ROM_LOAD16_BYTE( "tu-12.bin", 0x00001, 0x8000, CRC(1c7f32b1) SHA1(2b14e2206695ae53909ae838a5c036248d9ab940) )
|
||||||
ROM_LOAD16_BYTE( "tu-13.bin", 0x10000, 0x8000, CRC(d19e2bf7) SHA1(76a9cbd4f604ad39eb0e319a9a6d5a6739b0ed8c) )
|
ROM_LOAD16_BYTE( "tu-13.bin", 0x10000, 0x8000, CRC(d19e2bf7) SHA1(76a9cbd4f604ad39eb0e319a9a6d5a6739b0ed8c) )
|
||||||
ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) )
|
ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) )
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "10up17.dsk", 0x00000, 0xb4000, CRC(7bc328df) SHA1(5f8e40d8ffc370fb19be9e386befa5fcd1f35a75) )
|
|
||||||
ROM_END
|
|
||||||
|
|
||||||
ROM_START( tenup3 )
|
|
||||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
|
||||||
ROM_LOAD16_BYTE( "tu-11.bin", 0x00000, 0x8000, CRC(01843086) SHA1(106a226900e8cf929f89edf801c627f02e4afce3) )
|
|
||||||
ROM_LOAD16_BYTE( "tu-12.bin", 0x00001, 0x8000, CRC(1c7f32b1) SHA1(2b14e2206695ae53909ae838a5c036248d9ab940) )
|
|
||||||
ROM_LOAD16_BYTE( "tu-13.bin", 0x10000, 0x8000, CRC(d19e2bf7) SHA1(76a9cbd4f604ad39eb0e319a9a6d5a6739b0ed8c) )
|
|
||||||
ROM_LOAD16_BYTE( "tu-14.bin", 0x10001, 0x8000, CRC(fd8a0c3c) SHA1(f87289ce6f0d2bc9b7d3a0b6deff38ba3aadf391) )
|
|
||||||
|
|
||||||
ROM_REGION( 0xb4000, "user1", 0 )
|
|
||||||
ROM_LOAD( "10up3.dsk", 0x00000, 0xb4000, CRC(2767f017) SHA1(1c6551b089c3e3df48e0c03bd502b91fd88f0e94) )
|
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
|
||||||
@ -946,14 +585,6 @@ ROM_END
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
GAME( 1986, guab, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (3rd edition)", 0 )
|
GAME( 1986, guab, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break", 0 )
|
||||||
GAME( 1986, guab3a, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (3rd edition alt?)", 0 )
|
|
||||||
GAME( 1986, guab4, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (4th edition)", 0 )
|
|
||||||
GAME( 1986, guab6, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (6th edition)", 0 )
|
|
||||||
GAME( 1986, guab6a, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (6th edition alt?)", 0 )
|
|
||||||
GAME( 1986, guab7, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (7th edition)", 0 )
|
|
||||||
GAME( 1986, guab21, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (21st edition)", 0 )
|
|
||||||
GAME( 1986, guab43, guab, guab, guab, driver_device, 0, ROT0, "JPM", "Give us a Break (43rd edition)", 0 )
|
|
||||||
GAME( 1986, crisscrs, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Criss Cross (Sweden)", GAME_NOT_WORKING )
|
GAME( 1986, crisscrs, 0, guab, guab, driver_device, 0, ROT0, "JPM", "Criss Cross (Sweden)", GAME_NOT_WORKING )
|
||||||
GAME( 1988, tenup, 0, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up (compendium 17)", 0 )
|
GAME( 1988, tenup, 0, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up", 0 )
|
||||||
GAME( 1988, tenup3, tenup, guab, tenup, driver_device, 0, ROT0, "JPM", "Ten Up (compendium 3)", 0 )
|
|
||||||
|
Loading…
Reference in New Issue
Block a user