Load slot info in minimaws (not exposed yet), fix up some problems with

slots uncovered

(nw) It seems at some point someone didn't realise that choosing the
same option from a SLOT_INTERFACE in multiple slots creates multiple
instances of the same device type, and this got copy/pasted everywhere.
This commit is contained in:
Vas Crabb 2017-08-02 20:00:12 +10:00
parent bcef3c0445
commit c85c7c4c15
22 changed files with 187 additions and 111 deletions

View File

@ -7,6 +7,14 @@ import sqlite3
class SchemaQueries(object): class SchemaQueries(object):
CREATE_TEMPORARY_DEVICEREFERENCE = 'CREATE TEMPORARY TABLE temp_devicereference (id INTEGER PRIMARY KEY, machine INTEGER NOT NULL, device TEXT NOT NULL, UNIQUE (machine, device))'
CREATE_TEMPORARY_SLOTOPTION = 'CREATE TEMPORARY TABLE temp_slotoption (id INTEGER PRIMARY KEY, slot INTEGER NOT NULL, device TEXT NOT NULL, name TEXT NOT NULL)'
CREATE_TEMPORARY_SLOTDEFAULT = 'CREATE TEMPORARY TABLE temp_slotdefault (id INTEGER PRIMARY KEY, slotoption INTEGER NOT NULL)'
DROP_TEMPORARY_DEVICEREFERENCE = 'DROP TABLE IF EXISTS temp_devicereference'
DROP_TEMPORARY_SLOTOPTION = 'DROP TABLE IF EXISTS temp_slotoption'
DROP_TEMPORARY_SLOTDEFAULT = 'DROP TABLE IF EXISTS temp_slotdefault'
INDEX_MACHINE_ISDEVICE_SHORTNAME = 'CREATE INDEX machine_isdevice_shortname ON machine (isdevice ASC, shortname ASC)' INDEX_MACHINE_ISDEVICE_SHORTNAME = 'CREATE INDEX machine_isdevice_shortname ON machine (isdevice ASC, shortname ASC)'
INDEX_MACHINE_ISDEVICE_DESCRIPTION = 'CREATE INDEX machine_isdevice_description ON machine (isdevice ASC, description ASC)' INDEX_MACHINE_ISDEVICE_DESCRIPTION = 'CREATE INDEX machine_isdevice_description ON machine (isdevice ASC, description ASC)'
INDEX_MACHINE_RUNNABLE_SHORTNAME = 'CREATE INDEX machine_runnable_shortname ON machine (runnable ASC, shortname ASC)' INDEX_MACHINE_RUNNABLE_SHORTNAME = 'CREATE INDEX machine_runnable_shortname ON machine (runnable ASC, shortname ASC)'
@ -19,8 +27,6 @@ class SchemaQueries(object):
INDEX_CLONEOF_PARENT = 'CREATE INDEX cloneof_parent ON cloneof (parent ASC)' INDEX_CLONEOF_PARENT = 'CREATE INDEX cloneof_parent ON cloneof (parent ASC)'
INDEX_DEVICEREFERENCE_DEVICE = 'CREATE INDEX devicereference_device ON devicereference (device ASC)'
INDEX_DIPSWITCH_MACHINE_ISCONFIG = 'CREATE INDEX dipswitch_machine_isconfig ON dipswitch (machine ASC, isconfig ASC)' INDEX_DIPSWITCH_MACHINE_ISCONFIG = 'CREATE INDEX dipswitch_machine_isconfig ON dipswitch (machine ASC, isconfig ASC)'
DROP_MACHINE_ISDEVICE_SHORTNAME = 'DROP INDEX IF EXISTS machine_isdevice_shortname' DROP_MACHINE_ISDEVICE_SHORTNAME = 'DROP INDEX IF EXISTS machine_isdevice_shortname'
@ -35,8 +41,6 @@ class SchemaQueries(object):
DROP_CLONEOF_PARENT = 'DROP INDEX IF EXISTS cloneof_parent' DROP_CLONEOF_PARENT = 'DROP INDEX IF EXISTS cloneof_parent'
DROP_DEVICEREFERENCE_DEVICE = 'DROP INDEX IF EXISTS devicereference_device'
DROP_DIPSWITCH_MACHINE_ISCONFIG = 'DROP INDEX IF EXISTS dipswitch_machine_isconfig' DROP_DIPSWITCH_MACHINE_ISCONFIG = 'DROP INDEX IF EXISTS dipswitch_machine_isconfig'
@ -47,11 +51,19 @@ class UpdateQueries(object):
ADD_SYSTEM = 'INSERT INTO system (id, year, manufacturer) VALUES (?, ?, ?)' ADD_SYSTEM = 'INSERT INTO system (id, year, manufacturer) VALUES (?, ?, ?)'
ADD_CLONEOF = 'INSERT INTO cloneof (id, parent) VALUES (?, ?)' ADD_CLONEOF = 'INSERT INTO cloneof (id, parent) VALUES (?, ?)'
ADD_ROMOF = 'INSERT INTO romof (id, parent) VALUES (?, ?)' ADD_ROMOF = 'INSERT INTO romof (id, parent) VALUES (?, ?)'
ADD_DEVICEREFERENCE = 'INSERT OR IGNORE INTO devicereference (machine, device) VALUES (?, ?)'
ADD_DIPSWITCH = 'INSERT INTO dipswitch (machine, isconfig, name, tag, mask) VALUES (?, ?, ?, ?, ?)' ADD_DIPSWITCH = 'INSERT INTO dipswitch (machine, isconfig, name, tag, mask) VALUES (?, ?, ?, ?, ?)'
ADD_DIPLOCATION = 'INSERT INTO diplocation (dipswitch, bit, name, num, inverted) VALUES (?, ?, ?, ?, ?)' ADD_DIPLOCATION = 'INSERT INTO diplocation (dipswitch, bit, name, num, inverted) VALUES (?, ?, ?, ?, ?)'
ADD_DIPVALUE = 'INSERT INTO dipvalue (dipswitch, name, value, isdefault) VALUES (?, ?, ?, ?)' ADD_DIPVALUE = 'INSERT INTO dipvalue (dipswitch, name, value, isdefault) VALUES (?, ?, ?, ?)'
ADD_FEATURE = 'INSERT INTO feature (machine, featuretype, status, overall) SELECT ?, id, ?, ? FROM featuretype WHERE name = ?' ADD_FEATURE = 'INSERT INTO feature (machine, featuretype, status, overall) SELECT ?, id, ?, ? FROM featuretype WHERE name = ?'
ADD_SLOT = 'INSERT INTO slot (machine, name) VALUES (?, ?)'
ADD_TEMPORARY_DEVICEREFERENCE = 'INSERT OR IGNORE INTO temp_devicereference (machine, device) VALUES (?, ?)'
ADD_TEMPORARY_SLOTOPTION = 'INSERT INTO temp_slotoption (slot, device, name) VALUES (?, ?, ?)'
ADD_TEMPORARY_SLOTDEFAULT = 'INSERT INTO temp_slotdefault (id, slotoption) VALUES (?, ?)'
FINALISE_DEVICEREFERENCES = 'INSERT INTO devicereference (id, machine, device) SELECT temp_devicereference.id, temp_devicereference.machine, machine.id FROM temp_devicereference LEFT JOIN machine ON temp_devicereference.device = machine.shortname'
FINALISE_SLOTOPTIONS = 'INSERT INTO slotoption (id, slot, device, name) SELECT temp_slotoption.id, temp_slotoption.slot, machine.id, temp_slotoption.name FROM temp_slotoption LEFT JOIN machine ON temp_slotoption.device = machine.shortname'
FINALISE_SLOTDEFAULTS = 'INSERT INTO slotdefault (id, slotoption) SELECT id, slotoption FROM temp_slotdefault'
class QueryCursor(object): class QueryCursor(object):
@ -140,21 +152,21 @@ class QueryCursor(object):
return self.dbcurs.execute( return self.dbcurs.execute(
'SELECT shortname, description ' \ 'SELECT shortname, description ' \
'FROM machine ' \ 'FROM machine ' \
'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT shortname FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename GLOB ?))) AND runnable = 1 ' \ 'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT id FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename GLOB ?))) AND runnable = 1 ' \
'ORDER BY shortname ASC', 'ORDER BY shortname ASC',
patterns) patterns)
elif self.is_glob(*patterns): elif self.is_glob(*patterns):
return self.dbcurs.execute( return self.dbcurs.execute(
'SELECT shortname, description ' \ 'SELECT shortname, description ' \
'FROM machine ' \ 'FROM machine ' \
'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT shortname FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename GLOB ?' + (' OR filename GLOB ?' * (len(patterns) - 1)) + '))) AND runnable = 1 ' \ 'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT id FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename GLOB ?' + (' OR filename GLOB ?' * (len(patterns) - 1)) + '))) AND runnable = 1 ' \
'ORDER BY shortname ASC', 'ORDER BY shortname ASC',
patterns) patterns)
else: else:
return self.dbcurs.execute( return self.dbcurs.execute(
'SELECT shortname, description ' \ 'SELECT shortname, description ' \
'FROM machine ' \ 'FROM machine ' \
'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT shortname FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename IN (?' + (', ?' * (len(patterns) - 1)) + ')))) AND runnable = 1 ' \ 'WHERE id IN (SELECT machine FROM devicereference WHERE device IN (SELECT id FROM machine WHERE sourcefile IN (SELECT id FROM sourcefile WHERE filename IN (?' + (', ?' * (len(patterns) - 1)) + ')))) AND runnable = 1 ' \
'ORDER BY shortname ASC', 'ORDER BY shortname ASC',
patterns) patterns)
@ -167,17 +179,17 @@ class QueryCursor(object):
def get_devices_referenced(self, machine): def get_devices_referenced(self, machine):
return self.dbcurs.execute( return self.dbcurs.execute(
'SELECT devicereference.device AS shortname, machine.description AS description, sourcefile.filename AS sourcefile ' \ 'SELECT machine.shortname AS shortname, machine.description AS description, sourcefile.filename AS sourcefile ' \
'FROM devicereference LEFT JOIN machine ON devicereference.device = machine.shortname LEFT JOIN sourcefile ON machine.sourcefile = sourcefile.id ' \ 'FROM devicereference LEFT JOIN machine ON devicereference.device = machine.id LEFT JOIN sourcefile ON machine.sourcefile = sourcefile.id ' \
'WHERE devicereference.machine = ?', 'WHERE devicereference.machine = ?',
(machine, )) (machine, ))
def get_device_references(self, shortname): def get_device_references(self, device):
return self.dbcurs.execute( return self.dbcurs.execute(
'SELECT machine.shortname AS shortname, machine.description AS description, sourcefile.filename AS sourcefile ' \ 'SELECT machine.shortname AS shortname, machine.description AS description, sourcefile.filename AS sourcefile ' \
'FROM machine JOIN sourcefile ON machine.sourcefile = sourcefile.id ' \ 'FROM machine JOIN sourcefile ON machine.sourcefile = sourcefile.id ' \
'WHERE machine.id IN (SELECT machine FROM devicereference WHERE device = ?)', 'WHERE machine.id IN (SELECT machine FROM devicereference WHERE device = ?)',
(shortname, )) (device, ))
def get_sourcefile_id(self, filename): def get_sourcefile_id(self, filename):
return (self.dbcurs.execute('SELECT id FROM sourcefile WHERE filename = ?', (filename, )).fetchone() or (None, ))[0] return (self.dbcurs.execute('SELECT id FROM sourcefile WHERE filename = ?', (filename, )).fetchone() or (None, ))[0]
@ -241,7 +253,7 @@ class UpdateCursor(object):
return self.dbcurs.lastrowid return self.dbcurs.lastrowid
def add_devicereference(self, machine, device): def add_devicereference(self, machine, device):
self.dbcurs.execute(UpdateQueries.ADD_DEVICEREFERENCE, (machine, device)) self.dbcurs.execute(UpdateQueries.ADD_TEMPORARY_DEVICEREFERENCE, (machine, device))
def add_dipswitch(self, machine, isconfig, name, tag, mask): def add_dipswitch(self, machine, isconfig, name, tag, mask):
self.dbcurs.execute(UpdateQueries.ADD_DIPSWITCH, (machine, isconfig, name, tag, mask)) self.dbcurs.execute(UpdateQueries.ADD_DIPSWITCH, (machine, isconfig, name, tag, mask))
@ -259,6 +271,18 @@ class UpdateCursor(object):
self.dbcurs.execute(UpdateQueries.ADD_FEATURE, (machine, status, overall, featuretype)) self.dbcurs.execute(UpdateQueries.ADD_FEATURE, (machine, status, overall, featuretype))
return self.dbcurs.lastrowid return self.dbcurs.lastrowid
def add_slot(self, machine, name):
self.dbcurs.execute(UpdateQueries.ADD_SLOT, (machine, name))
return self.dbcurs.lastrowid
def add_slotoption(self, slot, device, name):
self.dbcurs.execute(UpdateQueries.ADD_TEMPORARY_SLOTOPTION, (slot, device, name))
return self.dbcurs.lastrowid
def add_slotdefault(self, slot, slotoption):
self.dbcurs.execute(UpdateQueries.ADD_TEMPORARY_SLOTDEFAULT, (slot, slotoption))
return self.dbcurs.lastrowid
class QueryConnection(object): class QueryConnection(object):
def __init__(self, database, **kwargs): def __init__(self, database, **kwargs):
@ -293,6 +317,26 @@ class UpdateConnection(object):
def cursor(self): def cursor(self):
return UpdateCursor(self.dbconn) return UpdateCursor(self.dbconn)
def prepare_for_load(self):
self.drop_indexes()
self.dbconn.execute(SchemaQueries.CREATE_TEMPORARY_DEVICEREFERENCE)
self.dbconn.execute(SchemaQueries.CREATE_TEMPORARY_SLOTOPTION)
self.dbconn.execute(SchemaQueries.CREATE_TEMPORARY_SLOTDEFAULT)
self.dbconn.commit()
def finalise_load(self):
self.dbconn.execute(UpdateQueries.FINALISE_DEVICEREFERENCES)
self.dbconn.commit()
self.dbconn.execute(SchemaQueries.DROP_TEMPORARY_DEVICEREFERENCE)
self.dbconn.execute(UpdateQueries.FINALISE_SLOTOPTIONS)
self.dbconn.commit()
self.dbconn.execute(SchemaQueries.DROP_TEMPORARY_SLOTOPTION)
self.dbconn.execute(UpdateQueries.FINALISE_SLOTDEFAULTS)
self.dbconn.commit()
self.dbconn.execute(SchemaQueries.DROP_TEMPORARY_SLOTDEFAULT)
self.create_indexes()
self.dbconn.commit()
def drop_indexes(self): def drop_indexes(self):
self.dbconn.execute(SchemaQueries.DROP_MACHINE_ISDEVICE_SHORTNAME) self.dbconn.execute(SchemaQueries.DROP_MACHINE_ISDEVICE_SHORTNAME)
self.dbconn.execute(SchemaQueries.DROP_MACHINE_ISDEVICE_DESCRIPTION) self.dbconn.execute(SchemaQueries.DROP_MACHINE_ISDEVICE_DESCRIPTION)
@ -302,9 +346,7 @@ class UpdateConnection(object):
self.dbconn.execute(SchemaQueries.DROP_SYSTEM_MANUFACTURER) self.dbconn.execute(SchemaQueries.DROP_SYSTEM_MANUFACTURER)
self.dbconn.execute(SchemaQueries.DROP_ROMOF_PARENT) self.dbconn.execute(SchemaQueries.DROP_ROMOF_PARENT)
self.dbconn.execute(SchemaQueries.DROP_CLONEOF_PARENT) self.dbconn.execute(SchemaQueries.DROP_CLONEOF_PARENT)
self.dbconn.execute(SchemaQueries.DROP_DEVICEREFERENCE_DEVICE)
self.dbconn.execute(SchemaQueries.DROP_DIPSWITCH_MACHINE_ISCONFIG) self.dbconn.execute(SchemaQueries.DROP_DIPSWITCH_MACHINE_ISCONFIG)
self.dbconn.commit()
def create_indexes(self): def create_indexes(self):
self.dbconn.execute(SchemaQueries.INDEX_MACHINE_ISDEVICE_SHORTNAME) self.dbconn.execute(SchemaQueries.INDEX_MACHINE_ISDEVICE_SHORTNAME)
@ -315,6 +357,4 @@ class UpdateConnection(object):
self.dbconn.execute(SchemaQueries.INDEX_SYSTEM_MANUFACTURER) self.dbconn.execute(SchemaQueries.INDEX_SYSTEM_MANUFACTURER)
self.dbconn.execute(SchemaQueries.INDEX_ROMOF_PARENT) self.dbconn.execute(SchemaQueries.INDEX_ROMOF_PARENT)
self.dbconn.execute(SchemaQueries.INDEX_CLONEOF_PARENT) self.dbconn.execute(SchemaQueries.INDEX_CLONEOF_PARENT)
self.dbconn.execute(SchemaQueries.INDEX_DEVICEREFERENCE_DEVICE)
self.dbconn.execute(SchemaQueries.INDEX_DIPSWITCH_MACHINE_ISCONFIG) self.dbconn.execute(SchemaQueries.INDEX_DIPSWITCH_MACHINE_ISCONFIG)
self.dbconn.commit()

View File

@ -134,7 +134,32 @@ class DipSwitchHandler(ElementHandler):
self.setChildHandler(name, attrs, self.IGNORE) self.setChildHandler(name, attrs, self.IGNORE)
class SlotHandler(ElementHandler):
def __init__(self, parent, **kwargs):
super(SlotHandler, self).__init__(parent=parent, **kwargs)
self.dbcurs = parent.dbcurs
self.machine = parent.id
def startMainElement(self, name, attrs):
self.id = self.dbcurs.add_slot(self.machine, attrs['name'])
def startChildElement(self, name, attrs):
if name == 'slotoption':
option = self.dbcurs.add_slotoption(self.id, attrs['devname'], attrs['name'])
if attrs.get('default') == 'yes':
self.dbcurs.add_slotdefault(self.id, option)
self.setChildHandler(name, attrs, self.IGNORE)
class MachineHandler(ElementHandler): class MachineHandler(ElementHandler):
CHILD_HANDLERS = {
'description': TextAccumulator,
'year': TextAccumulator,
'manufacturer': TextAccumulator,
'dipswitch': DipSwitchHandler,
'configuration': DipSwitchHandler,
'slot': SlotHandler }
def __init__(self, parent, **kwargs): def __init__(self, parent, **kwargs):
super(MachineHandler, self).__init__(parent=parent, **kwargs) super(MachineHandler, self).__init__(parent=parent, **kwargs)
self.dbcurs = self.dbconn.cursor() self.dbcurs = self.dbconn.cursor()
@ -149,10 +174,8 @@ class MachineHandler(ElementHandler):
self.dbcurs.add_sourcefile(self.sourcefile) self.dbcurs.add_sourcefile(self.sourcefile)
def startChildElement(self, name, attrs): def startChildElement(self, name, attrs):
if (name == 'description') or (name == 'year') or (name == 'manufacturer'): if name in self.CHILD_HANDLERS:
self.setChildHandler(name, attrs, TextAccumulator(self)) self.setChildHandler(name, attrs, self.CHILD_HANDLERS[name](self))
elif (name == 'dipswitch') or (name == 'configuration'):
self.setChildHandler(name, attrs, DipSwitchHandler(self))
else: else:
if name == 'device_ref': if name == 'device_ref':
self.dbcurs.add_devicereference(self.id, attrs['name']) self.dbcurs.add_devicereference(self.id, attrs['name'])
@ -178,7 +201,6 @@ class MachineHandler(ElementHandler):
self.dbcurs.add_system(self.id, self.year, self.manufacturer) self.dbcurs.add_system(self.id, self.year, self.manufacturer)
def endMainElement(self, name): def endMainElement(self, name):
self.dbconn.commit()
self.dbcurs.close() self.dbcurs.close()
@ -199,11 +221,12 @@ class ListXmlHandler(ElementHandler):
msg=('Expected "mame" element but found "%s"' % (name, )), msg=('Expected "mame" element but found "%s"' % (name, )),
exception=None, exception=None,
locator=self.locator) locator=self.locator)
self.dbconn.drop_indexes() self.dbconn.prepare_for_load()
self.machines = 0
def endMainElement(self, name): def endMainElement(self, name):
# TODO: build index by first letter or whatever # TODO: build index by first letter or whatever
self.dbconn.create_indexes() self.dbconn.finalise_load()
def startChildElement(self, name, attrs): def startChildElement(self, name, attrs):
if name != 'machine': if name != 'machine':
@ -213,6 +236,14 @@ class ListXmlHandler(ElementHandler):
locator=self.locator) locator=self.locator)
self.setChildHandler(name, attrs, MachineHandler(self)) self.setChildHandler(name, attrs, MachineHandler(self))
def endChildHandler(self, name, handler):
if name == 'machine':
if self.machines >= 1023:
self.dbconn.commit()
self.machines = 0
else:
self.machines += 1
def processingInstruction(self, target, data): def processingInstruction(self, target, data):
pass pass

View File

@ -126,6 +126,7 @@ class MachineHandler(QueryPageHandler):
return self.machine_page(machine_info) return self.machine_page(machine_info)
def machine_page(self, machine_info): def machine_page(self, machine_info):
id = machine_info['id']
description = machine_info['description'] description = machine_info['description']
yield htmltmpl.MACHINE_PROLOGUE.substitute( yield htmltmpl.MACHINE_PROLOGUE.substitute(
assets=cgi.escape(urlparse.urljoin(self.application_uri, 'static'), True), assets=cgi.escape(urlparse.urljoin(self.application_uri, 'static'), True),
@ -163,7 +164,7 @@ class MachineHandler(QueryPageHandler):
yield '</table>\n'.encode('utf-8') yield '</table>\n'.encode('utf-8')
first = True first = True
for name, desc, src in self.dbcurs.get_devices_referenced(machine_info['id']): for name, desc, src in self.dbcurs.get_devices_referenced(id):
if first: if first:
yield \ yield \
'<h2>Devices Referenced</h2>\n' \ '<h2>Devices Referenced</h2>\n' \
@ -178,7 +179,7 @@ class MachineHandler(QueryPageHandler):
yield ' </tbody>\n</table>\n<script>make_table_sortable(document.getElementById("tbl-dev-refs"));</script>\n'.encode('utf-8') yield ' </tbody>\n</table>\n<script>make_table_sortable(document.getElementById("tbl-dev-refs"));</script>\n'.encode('utf-8')
first = True first = True
for name, desc, src in self.dbcurs.get_device_references(self.shortname): for name, desc, src in self.dbcurs.get_device_references(id):
if first: if first:
yield \ yield \
'<h2>Referenced By</h2>\n' \ '<h2>Referenced By</h2>\n' \

View File

@ -41,9 +41,10 @@ CREATE TABLE romof (
CREATE TABLE devicereference ( CREATE TABLE devicereference (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
machine INTEGER NOT NULL, machine INTEGER NOT NULL,
device TEXT NOT NULL, device INTEGER NOT NULL,
UNIQUE (machine ASC, device ASC), UNIQUE (machine ASC, device ASC),
FOREIGN KEY (machine) REFERENCES machine (id)); FOREIGN KEY (machine) REFERENCES machine (id),
FOREIGN KEY (device) REFERENCES machine (id));
CREATE TABLE dipswitch ( CREATE TABLE dipswitch (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
@ -82,3 +83,25 @@ CREATE TABLE feature (
UNIQUE (machine ASC, featuretype ASC), UNIQUE (machine ASC, featuretype ASC),
FOREIGN KEY (machine) REFERENCES machine (id), FOREIGN KEY (machine) REFERENCES machine (id),
FOREIGN KEY (featuretype) REFERENCES featuretype (id)); FOREIGN KEY (featuretype) REFERENCES featuretype (id));
CREATE TABLE slot (
id INTEGER PRIMARY KEY,
machine INTEGER NOT NULL,
name TEXT NOT NULL,
UNIQUE (machine ASC, name ASC),
FOREIGN KEY (machine) REFERENCES machine (id));
CREATE TABLE slotoption (
id INTEGER PRIMARY KEY,
slot INTEGER NOT NULL,
device INTEGER NOT NULL,
name TEXT NOT NULL,
UNIQUE (slot ASC, name ASC),
FOREIGN KEY (slot) REFERENCES slot (id),
FOREIGN KEY (device) REFERENCES machine (id));
CREATE TABLE slotdefault (
id INTEGER PRIMARY KEY,
slotoption INTEGER NOT NULL,
FOREIGN KEY (id) REFERENCES slot (id),
FOREIGN KEY (slotoption) REFERENCES slotoption (id));

View File

@ -25,7 +25,6 @@
DEFINE_DEVICE_TYPE(C1526, c1526_device, "c1526", "MPS802/C1526 Printer") DEFINE_DEVICE_TYPE(C1526, c1526_device, "c1526", "MPS802/C1526 Printer")
DEFINE_DEVICE_TYPE(C4023, c4023_device, "c4023", "C4023 Printer") DEFINE_DEVICE_TYPE(C4023, c4023_device, "c4023", "C4023 Printer")
const device_type MPS802 = C1526;
//------------------------------------------------- //-------------------------------------------------

View File

@ -79,7 +79,6 @@ protected:
// device type definition // device type definition
DECLARE_DEVICE_TYPE(C1526, c1526_device) DECLARE_DEVICE_TYPE(C1526, c1526_device)
DECLARE_DEVICE_TYPE(C4023, c4023_device) DECLARE_DEVICE_TYPE(C4023, c4023_device)
extern const device_type MPS802;
#endif // MAME_BUS_CBMIEC_C1626_H #endif // MAME_BUS_CBMIEC_C1626_H

View File

@ -523,5 +523,4 @@ SLOT_INTERFACE_START( cbm_iec_devices )
SLOT_INTERFACE("vic1515", VIC1515) SLOT_INTERFACE("vic1515", VIC1515)
SLOT_INTERFACE("vic1520", VIC1520) SLOT_INTERFACE("vic1520", VIC1520)
SLOT_INTERFACE("c1526", C1526) SLOT_INTERFACE("c1526", C1526)
SLOT_INTERFACE("mps802", MPS802)
SLOT_INTERFACE_END SLOT_INTERFACE_END

View File

@ -197,8 +197,7 @@ static ADDRESS_MAP_START(amust_io, AS_IO, 8, amust_state)
ADDRESS_MAP_END ADDRESS_MAP_END
static SLOT_INTERFACE_START( amust_floppies ) static SLOT_INTERFACE_START( amust_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
/* Input ports */ /* Input ports */
@ -423,9 +422,9 @@ static MACHINE_CONFIG_START( amust )
MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0) MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0)
MCFG_GENERIC_KEYBOARD_CB(PUT(amust_state, kbd_put)) MCFG_GENERIC_KEYBOARD_CB(PUT(amust_state, kbd_put))
MCFG_UPD765A_ADD("fdc", false, true) MCFG_UPD765A_ADD("fdc", false, true)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "drive1", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
//MCFG_DEVICE_ADD("uart1", I8251, 0) //MCFG_DEVICE_ADD("uart1", I8251, 0)

View File

@ -1304,7 +1304,7 @@ static SLOT_INTERFACE_START(apple2_cards)
SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */ SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */
SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */ SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */
SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */ SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */
SLOT_INTERFACE("aevm80", A2BUS_VTC2) /* Applied Engineering ViewMaster 80 */ SLOT_INTERFACE("aevm80", A2BUS_AEVIEWMASTER80) /* Applied Engineering ViewMaster 80 */
SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */ SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */
SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */ SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */

View File

@ -3391,7 +3391,7 @@ static SLOT_INTERFACE_START(apple2_cards)
SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */ SLOT_INTERFACE("aesms", A2BUS_AESMS) /* Applied Engineering Super Music Synthesizer */
SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */ SLOT_INTERFACE("ultraterm", A2BUS_ULTRATERM) /* Videx UltraTerm (original) */
SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */ SLOT_INTERFACE("ultratermenh", A2BUS_ULTRATERMENH) /* Videx UltraTerm (enhanced //e) */
SLOT_INTERFACE("aevm80", A2BUS_VTC2) /* Applied Engineering ViewMaster 80 */ SLOT_INTERFACE("aevm80", A2BUS_AEVIEWMASTER80) /* Applied Engineering ViewMaster 80 */
SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */ SLOT_INTERFACE("parallel", A2BUS_PIC) /* Apple Parallel Interface Card */
SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ SLOT_INTERFACE("corvus", A2BUS_CORVUS) /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */
SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */ SLOT_INTERFACE("mcms1", A2BUS_MCMS1) /* Mountain Computer Music System, card 1 of 2 */

View File

@ -439,8 +439,7 @@ WRITE_LINE_MEMBER( aussiebyte_state::fdc_drq_w )
} }
static SLOT_INTERFACE_START( aussiebyte_floppies ) static SLOT_INTERFACE_START( aussiebyte_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
/*********************************************************** /***********************************************************
@ -543,9 +542,9 @@ static MACHINE_CONFIG_START( aussiebyte )
MCFG_WD2797_ADD("fdc", XTAL_16MHz / 16) MCFG_WD2797_ADD("fdc", XTAL_16MHz / 16)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_intrq_w)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", aussiebyte_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", aussiebyte_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", aussiebyte_floppies, "drive1", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", aussiebyte_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
/* devices */ /* devices */

View File

@ -433,8 +433,7 @@ static const z80_daisy_config daisy_chain[] =
/* WD1793 Interface */ /* WD1793 Interface */
static SLOT_INTERFACE_START( bigbord2_floppies ) static SLOT_INTERFACE_START( bigbord2_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_8_DSDD ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
SLOT_INTERFACE( "drive1", FLOPPY_8_DSDD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
@ -622,9 +621,9 @@ static MACHINE_CONFIG_START( bigbord2 )
MCFG_MB8877_ADD("fdc", XTAL_16MHz / 8) // 2MHz for 8 inch, or 1MHz otherwise (jumper-selectable) MCFG_MB8877_ADD("fdc", XTAL_16MHz / 8) // 2MHz for 8 inch, or 1MHz otherwise (jumper-selectable)
//MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", ??)) // info missing from schematic //MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", ??)) // info missing from schematic
MCFG_FLOPPY_DRIVE_ADD("fdc:0", bigbord2_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", bigbord2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", bigbord2_floppies, "drive1", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", bigbord2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_16MHz / 8) MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_16MHz / 8)

View File

@ -786,8 +786,7 @@ FLOPPY_FORMATS_MEMBER( camplynx_state::camplynx_floppy_formats )
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
static SLOT_INTERFACE_START( camplynx_floppies ) static SLOT_INTERFACE_START( camplynx_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
static MACHINE_CONFIG_START( lynx_common ) static MACHINE_CONFIG_START( lynx_common )
@ -804,9 +803,9 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( lynx_disk ) static MACHINE_CONFIG_START( lynx_disk )
MCFG_FD1793_ADD("fdc", XTAL_24MHz / 24) MCFG_FD1793_ADD("fdc", XTAL_24MHz / 24)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", camplynx_floppies, "drive0", camplynx_state::camplynx_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", camplynx_floppies, "525qd", camplynx_state::camplynx_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", camplynx_floppies, "drive1", camplynx_state::camplynx_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", camplynx_floppies, "525qd", camplynx_state::camplynx_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -164,7 +164,7 @@ WRITE_LINE_MEMBER( dmax8000_state::ctc_z0_w )
} }
static SLOT_INTERFACE_START( floppies ) static SLOT_INTERFACE_START( floppies )
SLOT_INTERFACE( "drive0", FLOPPY_8_DSDD ) SLOT_INTERFACE( "8dsdd", FLOPPY_8_DSDD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
static MACHINE_CONFIG_START( dmax8000 ) static MACHINE_CONFIG_START( dmax8000 )
@ -203,7 +203,7 @@ static MACHINE_CONFIG_START( dmax8000 )
MCFG_FD1793_ADD("fdc", XTAL_2MHz) // no idea MCFG_FD1793_ADD("fdc", XTAL_2MHz) // no idea
MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(dmax8000_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(dmax8000_state, fdc_drq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_DEVICE_ADD("rtc", MM58274C, 0) // MM58174 MCFG_DEVICE_ADD("rtc", MM58274C, 0) // MM58174

View File

@ -236,8 +236,7 @@ FLOPPY_FORMATS_MEMBER( excali64_state::floppy_formats )
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
static SLOT_INTERFACE_START( excali64_floppies ) static SLOT_INTERFACE_START( excali64_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
// pulses from port E4 bit 5 restart the 74123. After 3.6 secs without a pulse, the motor gets turned off. // pulses from port E4 bit 5 restart the 74123. After 3.6 secs without a pulse, the motor gets turned off.
@ -598,9 +597,9 @@ static MACHINE_CONFIG_START( excali64 )
MCFG_WD2793_ADD("fdc", XTAL_16MHz / 16) MCFG_WD2793_ADD("fdc", XTAL_16MHz / 16)
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("dma", z80dma_device, rdy_w)) MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("dma", z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", excali64_floppies, "drive0", excali64_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", excali64_floppies, "525qd", excali64_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", excali64_floppies, "drive1", excali64_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", excali64_floppies, "525qd", excali64_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz/4) MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz/4)

View File

@ -190,8 +190,7 @@ FLOPPY_FORMATS_MEMBER( kaypro_state::kaypro2x_floppy_formats )
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
static SLOT_INTERFACE_START( kaypro_floppies ) static SLOT_INTERFACE_START( kaypro_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_DD ) SLOT_INTERFACE( "525qd", FLOPPY_525_DD )
SLOT_INTERFACE( "drive1", FLOPPY_525_DD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
@ -250,9 +249,9 @@ static MACHINE_CONFIG_START( kayproii )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
MCFG_WD_FDC_FORCE_READY MCFG_WD_FDC_FORCE_READY
MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", kaypro_state::kayproii_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525qd", kaypro_state::kayproii_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", kaypro_state::kayproii_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525qd", kaypro_state::kayproii_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("flop_list","kayproii") MCFG_SOFTWARE_LIST_ADD("flop_list","kayproii")
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -315,9 +314,9 @@ static MACHINE_CONFIG_START( kaypro2x )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
MCFG_WD_FDC_FORCE_READY MCFG_WD_FDC_FORCE_READY
MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", kaypro_state::kaypro2x_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525qd", kaypro_state::kaypro2x_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", kaypro_state::kaypro2x_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525qd", kaypro_state::kaypro2x_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -624,10 +624,8 @@ static GFXDECODE_START( premium )
GFXDECODE_END GFXDECODE_END
static SLOT_INTERFACE_START( mbee_floppies ) static SLOT_INTERFACE_START( mbee_floppies )
SLOT_INTERFACE( "drive3a", FLOPPY_35_DD ) SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
SLOT_INTERFACE( "drive3b", FLOPPY_35_DD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive5a", FLOPPY_525_QD )
SLOT_INTERFACE( "drive5b", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
@ -775,9 +773,9 @@ static MACHINE_CONFIG_DERIVED( mbee56, mbeeic )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mbee_state, fdc_intrq_w)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mbee_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w))
MCFG_WD_FDC_ENMF_CALLBACK(GND) MCFG_WD_FDC_ENMF_CALLBACK(GND)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive5a", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -799,9 +797,9 @@ static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mbee_state, fdc_intrq_w)) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(mbee_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w))
MCFG_WD_FDC_ENMF_CALLBACK(GND) MCFG_WD_FDC_ENMF_CALLBACK(GND)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive5a", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -813,9 +811,9 @@ static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
MCFG_DEVICE_REMOVE("fdc:0") MCFG_DEVICE_REMOVE("fdc:0")
MCFG_DEVICE_REMOVE("fdc:1") MCFG_DEVICE_REMOVE("fdc:1")
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive3a", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "35dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive3b", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "35dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -1178,7 +1176,7 @@ ROM_END
***************************************************************************/ ***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME
COMP( 1982, mbee, 0, 0, mbee, mbee, mbee_state, mbee, "Applied Technology", "Microbee 16 Standard", 0 ) COMP( 1982, mbee, 0, 0, mbee, mbee, mbee_state, mbee, "Applied Technology", "Microbee 16 Standard", 0 )
COMP( 1982, mbeeic, mbee, 0, mbeeic, mbee, mbee_state, mbeeic, "Applied Technology", "Microbee 32 IC", 0 ) COMP( 1982, mbeeic, mbee, 0, mbeeic, mbee, mbee_state, mbeeic, "Applied Technology", "Microbee 32 IC", 0 )
COMP( 1982, mbeepc, mbee, 0, mbeepc, mbee, mbee_state, mbeepc, "Applied Technology", "Microbee Personal Communicator", 0 ) COMP( 1982, mbeepc, mbee, 0, mbeepc, mbee, mbee_state, mbeepc, "Applied Technology", "Microbee Personal Communicator", 0 )

View File

@ -193,8 +193,7 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
DEVICE_INPUT_DEFAULTS_END DEVICE_INPUT_DEFAULTS_END
static SLOT_INTERFACE_START( pulsar_floppies ) static SLOT_INTERFACE_START( pulsar_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_HD ) SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
SLOT_INTERFACE( "drive1", FLOPPY_525_HD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
/* Input ports */ /* Input ports */
@ -257,9 +256,9 @@ static MACHINE_CONFIG_START( pulsar )
MCFG_COM8116_FT_HANDLER(WRITELINE(pulsar_state, ft_w)) MCFG_COM8116_FT_HANDLER(WRITELINE(pulsar_state, ft_w))
MCFG_FD1797_ADD("fdc", XTAL_4MHz / 2) MCFG_FD1797_ADD("fdc", XTAL_4MHz / 2)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "525hd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pulsar_floppies, "drive1", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", pulsar_floppies, "525hd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -853,10 +853,7 @@ FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
static SLOT_INTERFACE_START(rainbow_floppies) static SLOT_INTERFACE_START(rainbow_floppies)
SLOT_INTERFACE("525qd0", FLOPPY_525_QD) // QD means 80 tracks with DD data rate (single or double sided). SLOT_INTERFACE("525qd", FLOPPY_525_QD) // QD means 80 tracks with DD data rate (single or double sided).
SLOT_INTERFACE("525qd1", FLOPPY_525_QD)
//SLOT_INTERFACE("525qd2", FLOPPY_525_QD)
//SLOT_INTERFACE("525qd3", FLOPPY_525_QD)
SLOT_INTERFACE("525dd", FLOPPY_525_DD) // mimic a 5.25" PC (40 track) drive. Requires IDrive5.SYS. SLOT_INTERFACE("525dd", FLOPPY_525_DD) // mimic a 5.25" PC (40 track) drive. Requires IDrive5.SYS.
SLOT_INTERFACE("35dd", FLOPPY_35_DD) // mimic 3.5" PC drive (720K, double density). Use Impdrv3.SYS. SLOT_INTERFACE("35dd", FLOPPY_35_DD) // mimic 3.5" PC drive (720K, double density). Use Impdrv3.SYS.
SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD) // to read a single sided, (160K) PC-DOS 1 disk with MediaMaster SLOT_INTERFACE("525ssdd", FLOPPY_525_SSDD) // to read a single sided, (160K) PC-DOS 1 disk with MediaMaster
@ -3235,10 +3232,10 @@ MCFG_SCREEN_RAW_PARAMS(31188000 / 4 , 496, 0, 400, 262, 0, 240)
MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update) MCFG_SCREEN_UPDATE_DEVICE("upd7220", upd7220_device, screen_update)
MCFG_FD1793_ADD(FD1793_TAG, XTAL_24_0734MHz / 24) // no separate 1 Mhz quartz MCFG_FD1793_ADD(FD1793_TAG, XTAL_24_0734MHz / 24) // no separate 1 Mhz quartz
MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":0", rainbow_floppies, "525qd0", rainbow_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":0", rainbow_floppies, "525qd", rainbow_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":1", rainbow_floppies, "525qd1", rainbow_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":1", rainbow_floppies, "525qd", rainbow_state::floppy_formats)
//MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":2", rainbow_floppies, "525qd2", rainbow_state::floppy_formats) //MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":2", rainbow_floppies, "525qd", rainbow_state::floppy_formats)
//MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":3", rainbow_floppies, "525qd3", rainbow_state::floppy_formats) //MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":3", rainbow_floppies, "525qd", rainbow_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":2", rainbow_floppies, "525dd", rainbow_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":2", rainbow_floppies, "525dd", rainbow_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":3", rainbow_floppies, "35dd", rainbow_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":3", rainbow_floppies, "35dd", rainbow_state::floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list", "rainbow") MCFG_SOFTWARE_LIST_ADD("flop_list", "rainbow")

View File

@ -334,7 +334,7 @@ void rc702_state::kbd_put(u8 data)
} }
static SLOT_INTERFACE_START( floppies ) static SLOT_INTERFACE_START( floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
static MACHINE_CONFIG_START( rc702 ) static MACHINE_CONFIG_START( rc702 )
@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( rc702 )
MCFG_UPD765A_ADD("fdc", false, true) MCFG_UPD765A_ADD("fdc", false, true)
MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("ctc1", z80ctc_device, trg3)) MCFG_UPD765_INTRQ_CALLBACK(DEVWRITELINE("ctc1", z80ctc_device, trg3))
MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dma", am9517a_device, dreq1_w)) MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dma", am9517a_device, dreq1_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
/* Keyboard */ /* Keyboard */

View File

@ -189,8 +189,7 @@ WRITE8_MEMBER( ts803_state::keyboard_put )
/* disk drive */ /* disk drive */
static SLOT_INTERFACE_START( ts803_floppies ) static SLOT_INTERFACE_START( ts803_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_DD ) SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
SLOT_INTERFACE( "drive1", FLOPPY_525_DD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
WRITE8_MEMBER( ts803_state::disk_0_control_w ) WRITE8_MEMBER( ts803_state::disk_0_control_w )
@ -528,8 +527,8 @@ static MACHINE_CONFIG_START( ts803 )
/* floppy disk */ /* floppy disk */
MCFG_FD1793_ADD("fdc", XTAL_1MHz) MCFG_FD1793_ADD("fdc", XTAL_1MHz)
//MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("sti", z80sti_device, i7_w)) // add when sti is in //MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("sti", z80sti_device, i7_w)) // add when sti is in
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ts803_floppies, "drive0", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:0", ts803_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", ts803_floppies, "drive1", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", ts803_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
/* keyboard */ /* keyboard */

View File

@ -176,10 +176,7 @@ FLOPPY_FORMATS_MEMBER(beta_disk_device::floppy_formats)
FLOPPY_FORMATS_END FLOPPY_FORMATS_END
static SLOT_INTERFACE_START( beta_disk_floppies ) static SLOT_INTERFACE_START( beta_disk_floppies )
SLOT_INTERFACE( "drive0", FLOPPY_525_QD ) SLOT_INTERFACE( "525qd", FLOPPY_525_QD )
SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE( "drive2", FLOPPY_525_QD )
SLOT_INTERFACE( "drive3", FLOPPY_525_QD )
SLOT_INTERFACE_END SLOT_INTERFACE_END
@ -271,13 +268,13 @@ ROM_END
MACHINE_CONFIG_MEMBER( beta_disk_device::device_add_mconfig ) MACHINE_CONFIG_MEMBER( beta_disk_device::device_add_mconfig )
MCFG_KR1818VG93_ADD("wd179x", XTAL_8MHz / 8) MCFG_KR1818VG93_ADD("wd179x", XTAL_8MHz / 8)
MCFG_FLOPPY_DRIVE_ADD("wd179x:0", beta_disk_floppies, "drive0", beta_disk_device::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd179x:0", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("wd179x:1", beta_disk_floppies, "drive1", beta_disk_device::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd179x:1", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("wd179x:2", beta_disk_floppies, "drive2", beta_disk_device::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd179x:2", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("wd179x:3", beta_disk_floppies, "drive3", beta_disk_device::floppy_formats) MCFG_FLOPPY_DRIVE_ADD("wd179x:3", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END MACHINE_CONFIG_END