mirror of
https://github.com/libretro/mame2016-libretro.git
synced 2024-11-27 02:30:46 +00: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/gbcolor.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/gl6000sl.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 bps = 256;
|
||||
int cell_count = 50000;
|
||||
int cell_count = (form_factor == floppy_image::FF_525) ? 50000 : 100000;
|
||||
int offset = 0;
|
||||
int head_num = 1;
|
||||
int total_tracks = info.last_trk+1;
|
||||
|
@ -2,7 +2,6 @@
|
||||
* flex_dsk.h
|
||||
*
|
||||
* Created on: 24/06/2014
|
||||
* Author: bsr
|
||||
*/
|
||||
|
||||
#ifndef FLEX_DSK_H_
|
||||
|
@ -93,6 +93,7 @@ public:
|
||||
, m_rombank1(*this, "rombank1")
|
||||
, m_rombank2(*this, "rombank2")
|
||||
, m_fixedrombank(*this, "fixedrombank")
|
||||
, m_dma_dip(*this, "dma_s2")
|
||||
{}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(kbd_put);
|
||||
@ -168,6 +169,7 @@ private:
|
||||
required_memory_bank m_rombank2;
|
||||
required_memory_bank m_fixedrombank;
|
||||
|
||||
required_ioport m_dma_dip;
|
||||
};
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
READ8_MEMBER( gimix_state::keyin_r )
|
||||
@ -284,6 +291,10 @@ READ8_MEMBER(gimix_state::dma_r)
|
||||
switch(offset)
|
||||
{
|
||||
case 0:
|
||||
if(m_dma_dip->read() & 0x00000100)
|
||||
m_dma_status |= 0x01; // 8"
|
||||
else
|
||||
m_dma_status &= ~0x01; // 5.25"
|
||||
return m_dma_status;
|
||||
case 1:
|
||||
return m_dma_ctrl;
|
||||
@ -465,6 +476,12 @@ void gimix_state::machine_reset()
|
||||
m_floppy1_ready = false;
|
||||
membank("lower_ram")->set_base(m_ram->pointer());
|
||||
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()
|
||||
@ -533,6 +550,7 @@ FLOPPY_FORMATS_END
|
||||
|
||||
static SLOT_INTERFACE_START( gimix_floppies )
|
||||
SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
|
||||
SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
#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)
|
||||
|
||||
/* 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_DRQ_CALLBACK(WRITELINE(gimix_state,fdc_drq_w))
|
||||
MCFG_WD_FDC_FORCE_READY
|
||||
@ -631,6 +649,8 @@ static MACHINE_CONFIG_START( gimix, gimix_state )
|
||||
MCFG_RAM_DEFAULT_SIZE("128K")
|
||||
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
|
||||
// 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))
|
||||
|
Loading…
Reference in New Issue
Block a user