mirror of
https://github.com/holub/mame
synced 2025-06-08 13:53:52 +03:00
gimix: added software list, fixed regression with booting Gimix Flex 3.6, added 8 inch floppy drive support.
This commit is contained in:
parent
fd4b755e04
commit
f74bc6fd94
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -117,6 +117,7 @@ hash/gamepock.xml svneol=native#text/xml
|
|||||||
hash/gba.xml svneol=native#text/xml
|
hash/gba.xml svneol=native#text/xml
|
||||||
hash/gbcolor.xml svneol=native#text/xml
|
hash/gbcolor.xml svneol=native#text/xml
|
||||||
hash/genius.xml svneol=native#text/xml
|
hash/genius.xml svneol=native#text/xml
|
||||||
|
hash/gimix.xml svneol=native#text/xml
|
||||||
hash/gl2000.xml svneol=native#text/xml
|
hash/gl2000.xml svneol=native#text/xml
|
||||||
hash/gl6000sl.xml svneol=native#text/xml
|
hash/gl6000sl.xml svneol=native#text/xml
|
||||||
hash/glcolor.xml svneol=native#text/xml
|
hash/glcolor.xml svneol=native#text/xml
|
||||||
|
51
hash/gimix.xml
Normal file
51
hash/gimix.xml
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||||
|
<softwarelist name="gimix" description="Gimix 6809 System disks">
|
||||||
|
|
||||||
|
<software name="flex33">
|
||||||
|
<description>GMX Flex-09 3.3</description>
|
||||||
|
<year>1981</year>
|
||||||
|
<publisher>Technical System Consultants / Gimix Inc.</publisher>
|
||||||
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size="1265664">
|
||||||
|
<rom name="gfx33dma.dsk" size="102400" crc="5548dd85" sha1="0e0a94908478cbcf1d9ab7430189bdf43e12355b" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<!-- 8 inch disk - to boot, you'll need to set DIP switch S2-9 on the DMA FDC board (5.25/8 inch drive select) to 8 inch.
|
||||||
|
You'll also need to set the first drive to be 8 inch also, (-fdc:0 8dd) -->
|
||||||
|
<software name="flex36">
|
||||||
|
<description>GMX Flex-09 3.6</description>
|
||||||
|
<year>1981</year>
|
||||||
|
<publisher>Technical System Consultants / Gimix Inc.</publisher>
|
||||||
|
<part name="flop1" interface="floppy_8">
|
||||||
|
<dataarea name="flop" size="1265664">
|
||||||
|
<rom name="gflx_36.dsk" size="161280" crc="6cdd4198" sha1="307b635a3abb487c1295d8ef75afeecec9e61c39" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="flex43">
|
||||||
|
<description>GMX Flex-09 4.3</description>
|
||||||
|
<year>1981</year>
|
||||||
|
<publisher>Technical System Consultants / Gimix Inc.</publisher>
|
||||||
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size="1265664">
|
||||||
|
<rom name="flex_v4.3.imd" size="103190" crc="2685ca76" sha1="b297f8e774cf4253a2d2259cb1959c74911ceda3" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
<software name="os9l1_12">
|
||||||
|
<description>OS-9 GMX I</description>
|
||||||
|
<year>1981</year>
|
||||||
|
<publisher>Microware Systems Corp. / Gimix Inc.</publisher>
|
||||||
|
<part name="flop1" interface="floppy_5_25">
|
||||||
|
<dataarea name="flop" size="1265664">
|
||||||
|
<rom name="os9_v1.2.imd" size="116070" crc="aa3791b9" sha1="29036b5a6d1e63801b7b9fe9b99f5a4b536f9f3d" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
|
||||||
|
</softwarelist>
|
@ -42,7 +42,7 @@ bool flex_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
|
|||||||
{
|
{
|
||||||
int spt = info.last_sec;
|
int spt = info.last_sec;
|
||||||
int bps = 256;
|
int bps = 256;
|
||||||
int cell_count = 50000;
|
int cell_count = (form_factor == floppy_image::FF_525) ? 50000 : 100000;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
int head_num = 1;
|
int head_num = 1;
|
||||||
int total_tracks = info.last_trk+1;
|
int total_tracks = info.last_trk+1;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
* flex_dsk.h
|
* flex_dsk.h
|
||||||
*
|
*
|
||||||
* Created on: 24/06/2014
|
* Created on: 24/06/2014
|
||||||
* Author: bsr
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FLEX_DSK_H_
|
#ifndef FLEX_DSK_H_
|
||||||
|
@ -93,6 +93,7 @@ public:
|
|||||||
, m_rombank1(*this, "rombank1")
|
, m_rombank1(*this, "rombank1")
|
||||||
, m_rombank2(*this, "rombank2")
|
, m_rombank2(*this, "rombank2")
|
||||||
, m_fixedrombank(*this, "fixedrombank")
|
, m_fixedrombank(*this, "fixedrombank")
|
||||||
|
, m_dma_dip(*this, "dma_s2")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||||
@ -168,6 +169,7 @@ private:
|
|||||||
required_memory_bank m_rombank2;
|
required_memory_bank m_rombank2;
|
||||||
required_memory_bank m_fixedrombank;
|
required_memory_bank m_fixedrombank;
|
||||||
|
|
||||||
|
required_ioport m_dma_dip;
|
||||||
};
|
};
|
||||||
|
|
||||||
static ADDRESS_MAP_START( gimix_banked_mem, AS_PROGRAM, 8, gimix_state)
|
static ADDRESS_MAP_START( gimix_banked_mem, AS_PROGRAM, 8, gimix_state)
|
||||||
@ -215,6 +217,11 @@ static ADDRESS_MAP_START( gimix_io, AS_IO, 8, gimix_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( gimix )
|
static INPUT_PORTS_START( gimix )
|
||||||
|
PORT_START("dma_s2")
|
||||||
|
PORT_DIPNAME(0x00000100,0x00000000,"5.25\" / 8\" floppy drive 0") PORT_DIPLOCATION("S2:9")
|
||||||
|
PORT_DIPSETTING(0x00000000,"5.25\"")
|
||||||
|
PORT_DIPSETTING(0x00000100,"8\"")
|
||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
READ8_MEMBER( gimix_state::keyin_r )
|
READ8_MEMBER( gimix_state::keyin_r )
|
||||||
@ -284,6 +291,10 @@ READ8_MEMBER(gimix_state::dma_r)
|
|||||||
switch(offset)
|
switch(offset)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
|
if(m_dma_dip->read() & 0x00000100)
|
||||||
|
m_dma_status |= 0x01; // 8"
|
||||||
|
else
|
||||||
|
m_dma_status &= ~0x01; // 5.25"
|
||||||
return m_dma_status;
|
return m_dma_status;
|
||||||
case 1:
|
case 1:
|
||||||
return m_dma_ctrl;
|
return m_dma_ctrl;
|
||||||
@ -465,6 +476,12 @@ void gimix_state::machine_reset()
|
|||||||
m_floppy1_ready = false;
|
m_floppy1_ready = false;
|
||||||
membank("lower_ram")->set_base(m_ram->pointer());
|
membank("lower_ram")->set_base(m_ram->pointer());
|
||||||
membank("upper_ram")->set_base(m_ram->pointer()+0x10000);
|
membank("upper_ram")->set_base(m_ram->pointer()+0x10000);
|
||||||
|
|
||||||
|
// set FDC clock based on DIP Switch S2-9 (5.25"/8" drive select)
|
||||||
|
if(m_dma_dip->read() & 0x00000100)
|
||||||
|
m_fdc->set_unscaled_clock(XTAL_8MHz / 4); // 8 inch (2MHz)
|
||||||
|
else
|
||||||
|
m_fdc->set_unscaled_clock(XTAL_8MHz / 8); // 5.25 inch (1MHz)
|
||||||
}
|
}
|
||||||
|
|
||||||
void gimix_state::machine_start()
|
void gimix_state::machine_start()
|
||||||
@ -533,6 +550,7 @@ FLOPPY_FORMATS_END
|
|||||||
|
|
||||||
static SLOT_INTERFACE_START( gimix_floppies )
|
static SLOT_INTERFACE_START( gimix_floppies )
|
||||||
SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
|
SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
|
||||||
|
SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
|
||||||
#define MCFG_ADDRESS_BANK(tag) \
|
#define MCFG_ADDRESS_BANK(tag) \
|
||||||
@ -557,7 +575,7 @@ static MACHINE_CONFIG_START( gimix, gimix_state )
|
|||||||
MCFG_PTM6840_IRQ_CB(WRITELINE(gimix_state,irq_w)) // PCB pictures show both the RTC and timer set to generate IRQs (are jumper configurable)
|
MCFG_PTM6840_IRQ_CB(WRITELINE(gimix_state,irq_w)) // PCB pictures show both the RTC and timer set to generate IRQs (are jumper configurable)
|
||||||
|
|
||||||
/* floppy disks */
|
/* floppy disks */
|
||||||
MCFG_FD1797x_ADD("fdc",XTAL_8MHz / 8)
|
MCFG_FD1797x_ADD("fdc",XTAL_8MHz / 4)
|
||||||
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(gimix_state,fdc_irq_w))
|
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(gimix_state,fdc_irq_w))
|
||||||
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(gimix_state,fdc_drq_w))
|
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(gimix_state,fdc_drq_w))
|
||||||
MCFG_WD_FDC_FORCE_READY
|
MCFG_WD_FDC_FORCE_READY
|
||||||
@ -631,6 +649,8 @@ static MACHINE_CONFIG_START( gimix, gimix_state )
|
|||||||
MCFG_RAM_DEFAULT_SIZE("128K")
|
MCFG_RAM_DEFAULT_SIZE("128K")
|
||||||
MCFG_RAM_EXTRA_OPTIONS("56K,256K,512K")
|
MCFG_RAM_EXTRA_OPTIONS("56K,256K,512K")
|
||||||
|
|
||||||
|
MCFG_SOFTWARE_LIST_ADD("flop_list","gimix")
|
||||||
|
|
||||||
// uncomment this timer to use a hack that generates a regular IRQ, this will get OS-9 to boot
|
// uncomment this timer to use a hack that generates a regular IRQ, this will get OS-9 to boot
|
||||||
// for some unknown reason, OS-9 does not touch the 6840, and only clears/disables IRQs on the RTC
|
// for some unknown reason, OS-9 does not touch the 6840, and only clears/disables IRQs on the RTC
|
||||||
//MCFG_TIMER_DRIVER_ADD_PERIODIC("test_timer",gimix_state,test_timer_w,attotime::from_msec(100))
|
//MCFG_TIMER_DRIVER_ADD_PERIODIC("test_timer",gimix_state,test_timer_w,attotime::from_msec(100))
|
||||||
|
Loading…
Reference in New Issue
Block a user