trunk/hash/gimix.xml
| r0 | r31456 | |
| 1 | <?xml version="1.0"?> |
| 2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> |
| 3 | <softwarelist name="gimix" description="Gimix 6809 System disks"> |
| 4 | |
| 5 | <software name="flex33"> |
| 6 | <description>GMX Flex-09 3.3</description> |
| 7 | <year>1981</year> |
| 8 | <publisher>Technical System Consultants / Gimix Inc.</publisher> |
| 9 | <part name="flop1" interface="floppy_5_25"> |
| 10 | <dataarea name="flop" size="1265664"> |
| 11 | <rom name="gfx33dma.dsk" size="102400" crc="5548dd85" sha1="0e0a94908478cbcf1d9ab7430189bdf43e12355b" offset="0" /> |
| 12 | </dataarea> |
| 13 | </part> |
| 14 | </software> |
| 15 | |
| 16 | <!-- 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. |
| 17 | You'll also need to set the first drive to be 8 inch also, (-fdc:0 8dd) --> |
| 18 | <software name="flex36"> |
| 19 | <description>GMX Flex-09 3.6</description> |
| 20 | <year>1981</year> |
| 21 | <publisher>Technical System Consultants / Gimix Inc.</publisher> |
| 22 | <part name="flop1" interface="floppy_8"> |
| 23 | <dataarea name="flop" size="1265664"> |
| 24 | <rom name="gflx_36.dsk" size="161280" crc="6cdd4198" sha1="307b635a3abb487c1295d8ef75afeecec9e61c39" offset="0" /> |
| 25 | </dataarea> |
| 26 | </part> |
| 27 | </software> |
| 28 | |
| 29 | <software name="flex43"> |
| 30 | <description>GMX Flex-09 4.3</description> |
| 31 | <year>1981</year> |
| 32 | <publisher>Technical System Consultants / Gimix Inc.</publisher> |
| 33 | <part name="flop1" interface="floppy_5_25"> |
| 34 | <dataarea name="flop" size="1265664"> |
| 35 | <rom name="flex_v4.3.imd" size="103190" crc="2685ca76" sha1="b297f8e774cf4253a2d2259cb1959c74911ceda3" offset="0" /> |
| 36 | </dataarea> |
| 37 | </part> |
| 38 | </software> |
| 39 | |
| 40 | <software name="os9l1_12"> |
| 41 | <description>OS-9 GMX I</description> |
| 42 | <year>1981</year> |
| 43 | <publisher>Microware Systems Corp. / Gimix Inc.</publisher> |
| 44 | <part name="flop1" interface="floppy_5_25"> |
| 45 | <dataarea name="flop" size="1265664"> |
| 46 | <rom name="os9_v1.2.imd" size="116070" crc="aa3791b9" sha1="29036b5a6d1e63801b7b9fe9b99f5a4b536f9f3d" offset="0" /> |
| 47 | </dataarea> |
| 48 | </part> |
| 49 | </software> |
| 50 | |
| 51 | </softwarelist> |
trunk/src/mess/drivers/gimix.c
| r31455 | r31456 | |
| 93 | 93 | , m_rombank1(*this, "rombank1") |
| 94 | 94 | , m_rombank2(*this, "rombank2") |
| 95 | 95 | , m_fixedrombank(*this, "fixedrombank") |
| 96 | , m_dma_dip(*this, "dma_s2") |
| 96 | 97 | {} |
| 97 | 98 | |
| 98 | 99 | DECLARE_WRITE8_MEMBER(kbd_put); |
| r31455 | r31456 | |
| 168 | 169 | required_memory_bank m_rombank2; |
| 169 | 170 | required_memory_bank m_fixedrombank; |
| 170 | 171 | |
| 172 | required_ioport m_dma_dip; |
| 171 | 173 | }; |
| 172 | 174 | |
| 173 | 175 | static ADDRESS_MAP_START( gimix_banked_mem, AS_PROGRAM, 8, gimix_state) |
| r31455 | r31456 | |
| 215 | 217 | ADDRESS_MAP_END |
| 216 | 218 | |
| 217 | 219 | static INPUT_PORTS_START( gimix ) |
| 220 | PORT_START("dma_s2") |
| 221 | PORT_DIPNAME(0x00000100,0x00000000,"5.25\" / 8\" floppy drive 0") PORT_DIPLOCATION("S2:9") |
| 222 | PORT_DIPSETTING(0x00000000,"5.25\"") |
| 223 | PORT_DIPSETTING(0x00000100,"8\"") |
| 224 | |
| 218 | 225 | INPUT_PORTS_END |
| 219 | 226 | |
| 220 | 227 | READ8_MEMBER( gimix_state::keyin_r ) |
| r31455 | r31456 | |
| 284 | 291 | switch(offset) |
| 285 | 292 | { |
| 286 | 293 | case 0: |
| 294 | if(m_dma_dip->read() & 0x00000100) |
| 295 | m_dma_status |= 0x01; // 8" |
| 296 | else |
| 297 | m_dma_status &= ~0x01; // 5.25" |
| 287 | 298 | return m_dma_status; |
| 288 | 299 | case 1: |
| 289 | 300 | return m_dma_ctrl; |
| r31455 | r31456 | |
| 465 | 476 | m_floppy1_ready = false; |
| 466 | 477 | membank("lower_ram")->set_base(m_ram->pointer()); |
| 467 | 478 | membank("upper_ram")->set_base(m_ram->pointer()+0x10000); |
| 479 | |
| 480 | // set FDC clock based on DIP Switch S2-9 (5.25"/8" drive select) |
| 481 | if(m_dma_dip->read() & 0x00000100) |
| 482 | m_fdc->set_unscaled_clock(XTAL_8MHz / 4); // 8 inch (2MHz) |
| 483 | else |
| 484 | m_fdc->set_unscaled_clock(XTAL_8MHz / 8); // 5.25 inch (1MHz) |
| 468 | 485 | } |
| 469 | 486 | |
| 470 | 487 | void gimix_state::machine_start() |
| r31455 | r31456 | |
| 533 | 550 | |
| 534 | 551 | static SLOT_INTERFACE_START( gimix_floppies ) |
| 535 | 552 | SLOT_INTERFACE( "525hd", FLOPPY_525_HD ) |
| 553 | SLOT_INTERFACE( "8dd", FLOPPY_8_DSDD ) |
| 536 | 554 | SLOT_INTERFACE_END |
| 537 | 555 | |
| 538 | 556 | #define MCFG_ADDRESS_BANK(tag) \ |
| r31455 | r31456 | |
| 557 | 575 | MCFG_PTM6840_IRQ_CB(WRITELINE(gimix_state,irq_w)) // PCB pictures show both the RTC and timer set to generate IRQs (are jumper configurable) |
| 558 | 576 | |
| 559 | 577 | /* floppy disks */ |
| 560 | | MCFG_FD1797x_ADD("fdc",XTAL_8MHz / 8) |
| 578 | MCFG_FD1797x_ADD("fdc",XTAL_8MHz / 4) |
| 561 | 579 | MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(gimix_state,fdc_irq_w)) |
| 562 | 580 | MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(gimix_state,fdc_drq_w)) |
| 563 | 581 | MCFG_WD_FDC_FORCE_READY |
| r31455 | r31456 | |
| 631 | 649 | MCFG_RAM_DEFAULT_SIZE("128K") |
| 632 | 650 | MCFG_RAM_EXTRA_OPTIONS("56K,256K,512K") |
| 633 | 651 | |
| 652 | MCFG_SOFTWARE_LIST_ADD("flop_list","gimix") |
| 653 | |
| 634 | 654 | // uncomment this timer to use a hack that generates a regular IRQ, this will get OS-9 to boot |
| 635 | 655 | // for some unknown reason, OS-9 does not touch the 6840, and only clears/disables IRQs on the RTC |
| 636 | 656 | //MCFG_TIMER_DRIVER_ADD_PERIODIC("test_timer",gimix_state,test_timer_w,attotime::from_msec(100)) |