diff --git a/hash/apxen_flop.xml b/hash/apxen_flop.xml new file mode 100644 index 00000000000..cfd9b7d2676 --- /dev/null +++ b/hash/apxen_flop.xml @@ -0,0 +1,46 @@ + + + + + + + + + + XEN Boot Disk MS-DOS 3.2 BIOS 1.9.0 and Utilities + 1987 + ACT + + + + + + + + + + Various Diags, XEEROM + 1986 + ACT + + + + + + + + + + Various Diags, XEEROM (cracked) + 1986 + ACT + + + + + + + + diff --git a/src/mame/drivers/apxen.cpp b/src/mame/drivers/apxen.cpp index e39bc568dbd..6b883a3b88d 100644 --- a/src/mame/drivers/apxen.cpp +++ b/src/mame/drivers/apxen.cpp @@ -15,9 +15,12 @@ TODO: - Boot ROM disable, wrap around mode - Floppy - - DMA + * FDC is slightly too slow (or CPU too fast), causing Error 28 on boot + can be fixed by setting delay_register_commit to 12 in wd_fdc.cpp + * Issues accessing the second drive + - DMA (verify, seems to fast) - Harddisk - - Keyboard + - XEN keyboard (currently using the Apricot Xi keyboard) - RS232 - Printer - Colour graphics board @@ -391,7 +394,7 @@ uint8_t apxen_state::cio_porta_r() { uint8_t data = 0x00; - data |= m_cur_floppy ? m_cur_floppy->dskchg_r() : 0; + data |= m_cur_floppy ? (m_cur_floppy->dskchg_r() << 3) : 0; logerror("cio_porta_r: %02x\n", data); @@ -530,6 +533,8 @@ void apxen_state::apxen(machine_config &config) FLOPPY_CONNECTOR(config, "fdc:0", apricot_floppies, "d32w", apxen_state::floppy_formats); FLOPPY_CONNECTOR(config, "fdc:1", apricot_floppies, "d32w", apxen_state::floppy_formats); + SOFTWARE_LIST(config, "flop_list").set_original("apxen_flop"); + // video hardware APRICOT_VIDEO_SLOT(config, m_video, apricot_video_cards, "mono"); m_video->apvid_handler().set(FUNC(apxen_state::apvid_w)); @@ -554,6 +559,10 @@ ROM_START( apxen ) // HI-XEN 3.1.3 9BF0 (checksum matches) ROM_LOAD16_BYTE("hi-xen_313.ic37", 0x0001, 0x8000, CRC(72ee2f09) SHA1(da11043d40a694802f6d3d27a4359067dd19c8e6)) + // default eeprom configured with 2 floppy drives and serial no. 123456 + ROM_REGION16_LE(0x20, "eeprom", 0) + ROM_LOAD("eeprom.nv", 0x00, 0x20, CRC(c26d455e) SHA1(ff2d7af6ca21b2fba4c5a9e90926b5049a9fdc86)) + // should probably be moved elsewhere ROM_REGION(0x2000, "hdd", 0) ROM_LOAD("rodime_ro3055.bin", 0x0000, 0x2000, CRC(61d1544a) SHA1(2177a4c6409c0ee3d3e3e6c659085adf236f8726))