summaryrefslogtreecommitdiffstatshomepage
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build/complay.py112
-rw-r--r--scripts/src/cpu.lua10
-rw-r--r--scripts/src/formats.lua13
-rw-r--r--scripts/src/machine.lua11
-rw-r--r--scripts/src/netlist.lua9
-rw-r--r--scripts/target/mame/arcade.lua2
-rw-r--r--scripts/target/mame/mess.lua7
7 files changed, 109 insertions, 55 deletions
diff --git a/scripts/build/complay.py b/scripts/build/complay.py
index 2fbc7667a8e..34a43992b7c 100755
--- a/scripts/build/complay.py
+++ b/scripts/build/complay.py
@@ -219,10 +219,6 @@ class LayoutChecker(Minifyer):
self.variable_scopes[-1][attrs['name']] = False
def checkBounds(self, attrs):
- if self.have_bounds[-1]:
- self.handleError('Duplicate element bounds')
- else:
- self.have_bounds[-1] = True
left = self.checkFloatAttribute('bounds', attrs, 'left', 0.0)
top = self.checkFloatAttribute('bounds', attrs, 'top', 0.0)
right = self.checkFloatAttribute('bounds', attrs, 'right', 1.0)
@@ -258,9 +254,15 @@ class LayoutChecker(Minifyer):
if self.checkIntAttribute('orientation', attrs, 'rotate', 0) not in self.ORIENTATIONS:
self.handleError('Element orientation attribute rotate "%s" is unsupported' % (attrs['rotate'], ))
for name in ('swapxy', 'flipx', 'flipy'):
- if attrs.get(name, 'no') not in self.YESNO:
+ if (attrs.get(name, 'no') not in self.YESNO) and (not self.VARPATTERN.match(attrs['yesno'])):
self.handleError('Element orientation attribute %s "%s" is not "yes" or "no"' % (name, attrs[name]))
+ def checkColor(self, attrs):
+ self.checkColorChannel(attrs, 'red')
+ self.checkColorChannel(attrs, 'green')
+ self.checkColorChannel(attrs, 'blue')
+ self.checkColorChannel(attrs, 'alpha')
+
def checkColorChannel(self, attrs, name):
channel = self.checkFloatAttribute('color', attrs, name, None)
if (channel is not None) and ((0.0 > channel) or (1.0 < channel)):
@@ -268,7 +270,7 @@ class LayoutChecker(Minifyer):
def checkTag(self, tag, element, attr):
if '' == tag:
- self.handleError('Element %s attribute %s is empty', (element, attr))
+ self.handleError('Element %s attribute %s is empty' % (element, attr))
else:
if tag.find('^') >= 0:
self.handleError('Element %s attribute %s "%s" contains parent device reference' % (element, attr, tag))
@@ -278,12 +280,22 @@ class LayoutChecker(Minifyer):
self.handleError('Element %s attribute %s "%s" contains double separator' % (element, attr, tag))
def checkComponent(self, name, attrs):
- state = self.checkIntAttribute(name, attrs, 'state', None)
- if (state is not None) and (0 > state):
- self.handleError('Element %s attribute state "%s" is negative' % (name, attrs['state']))
+ statemask = self.checkIntAttribute(name, attrs, 'statemask', None)
+ stateval = self.checkIntAttribute(name, attrs, 'state', None)
+ if stateval is not None:
+ if 0 > stateval:
+ self.handleError('Element %s attribute state "%s" is negative' % (name, attrs['state']))
+ if (statemask is not None) and (stateval & ~statemask):
+ self.handleError('Element %s attribute state "%s" has bits set that are clear in attribute statemask "%s"' % (name, attrs['state'], attrs['statemask']))
self.handlers.append((self.componentStartHandler, self.componentEndHandler))
- self.have_bounds.append(False)
- self.have_color.append(False)
+ self.have_bounds.append({ })
+ self.have_color.append({ })
+
+ def startObject(self):
+ self.handlers.append((self.objectStartHandler, self.objectEndHandler))
+ self.have_bounds.append(None)
+ self.have_orientation.append(False)
+ self.have_color.append(None)
def rootStartHandler(self, name, attrs):
if 'mamelayout' != name:
@@ -337,7 +349,7 @@ class LayoutChecker(Minifyer):
self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler))
self.variable_scopes.append({ })
self.repeat_depth.append(0)
- self.have_bounds.append(False)
+ self.have_bounds.append(None)
elif ('view' == name) and (not self.repeat_depth[-1]):
self.current_collections = { }
if 'name' not in attrs:
@@ -350,7 +362,7 @@ class LayoutChecker(Minifyer):
self.handlers.append((self.groupViewStartHandler, self.groupViewEndHandler))
self.variable_scopes.append({ })
self.repeat_depth.append(0)
- self.have_bounds.append(False)
+ self.have_bounds.append(None)
elif 'repeat' == name:
if 'count' not in attrs:
self.handleError('Element repeat missing attribute count')
@@ -433,16 +445,25 @@ class LayoutChecker(Minifyer):
def componentStartHandler(self, name, attrs):
if 'bounds' == name:
+ state = self.checkIntAttribute(name, attrs, 'state', 0)
+ if state is not None:
+ if 0 > state:
+ self.handleError('Element bounds attribute state "%s" is negative' % (attrs['state'], ))
+ if state in self.have_bounds[-1]:
+ self.handleError('Duplicate bounds for state %d (previous %s)' % (state, self.have_bounds[-1][state]))
+ else:
+ self.have_bounds[-1][state] = self.formatLocation()
self.checkBounds(attrs)
elif 'color' == name:
- if self.have_color[-1]:
- self.handleError('Duplicate color element')
- else:
- self.have_color[-1] = True
- self.checkColorChannel(attrs, 'red')
- self.checkColorChannel(attrs, 'green')
- self.checkColorChannel(attrs, 'blue')
- self.checkColorChannel(attrs, 'alpha')
+ state = self.checkIntAttribute(name, attrs, 'state', 0)
+ if state is not None:
+ if 0 > state:
+ self.handleError('Element color attribute state "%s" is negative' % (attrs['state'], ))
+ if state in self.have_color[-1]:
+ self.handleError('Duplicate color for state %d (previous %s)' % (state, self.have_color[-1][state]))
+ else:
+ self.have_color[-1][state] = self.formatLocation()
+ self.checkColor(attrs)
self.ignored_depth = 1
def componentEndHandler(self, name):
@@ -464,25 +485,21 @@ class LayoutChecker(Minifyer):
self.checkTag(attrs['inputtag'], name, 'inputtag')
elif 'inputmask' in attrs:
self.handleError('Element %s has inputmask attribute without inputtag attribute' % (name, ))
- inputraw = self.checkIntAttribute(name, attrs, 'inputraw', None)
- if (inputraw is not None):
+ inputraw = None
+ if 'inputraw' in attrs:
+ if (attrs['inputraw'] not in self.YESNO) and (not self.VARPATTERN.match(attrs['inputraw'])):
+ self.handleError('Element %s attribute inputraw "%s" is not "yes" or "no"' % (name, attrs['inputraw']))
+ else:
+ inputraw = 'yes' == attrs['inputraw']
if 'inputmask' not in attrs:
self.handleError('Element %s has inputraw attribute without inputmask attribute' % (name, ))
if 'inputtag' not in attrs:
self.handleError('Element %s has inputraw attribute without inputtag attribute' % (name, ))
- if ((0 > inputraw) or (1 < inputraw)):
- self.handleError('Element %s attribute inputraw "%s" not in valid range 0-1' % (name, attrs['inputraw']))
inputmask = self.checkIntAttribute(name, attrs, 'inputmask', None)
if (inputmask is not None) and (0 == inputmask):
if (inputraw is None) or (0 == inputraw):
self.handleError('Element %s attribute inputmask "%s" is zero' % (name, attrs['inputmask']))
- if ('element' != name) and not self.has_legacy_object:
- self.has_legacy_object = True
- if self.has_collection:
- self.handleError('Layout contains collection as well as legacy backdrop elements')
- self.handlers.append((self.objectStartHandler, self.objectEndHandler))
- self.have_bounds.append(False)
- self.have_orientation.append(False)
+ self.startObject();
elif 'screen' == name:
if 'index' in attrs:
index = self.checkIntAttribute(name, attrs, 'index', None)
@@ -495,9 +512,7 @@ class LayoutChecker(Minifyer):
self.checkTag(tag, name, 'tag')
if self.BADTAGPATTERN.search(tag):
self.handleError('Element screen attribute tag "%s" contains invalid characters' % (tag, ))
- self.handlers.append((self.objectStartHandler, self.objectEndHandler))
- self.have_bounds.append(False)
- self.have_orientation.append(False)
+ self.startObject();
elif 'group' == name:
if 'ref' not in attrs:
self.handleError('Element group missing attribute ref')
@@ -510,9 +525,7 @@ class LayoutChecker(Minifyer):
self.current_collections[n] = l
else:
self.handleError('Element group instantiates collection with duplicate name "%s" from %s (previous %s)' % (n, l, self.current_collections[n]))
- self.handlers.append((self.objectStartHandler, self.objectEndHandler))
- self.have_bounds.append(False)
- self.have_orientation.append(False)
+ self.startObject();
elif 'repeat' == name:
if 'count' not in attrs:
self.handleError('Element repeat missing attribute count')
@@ -532,16 +545,16 @@ class LayoutChecker(Minifyer):
self.handleError('Element collection has duplicate name (previous %s)' % (self.current_collections[attrs['name']], ))
if attrs.get('visible', 'yes') not in self.YESNO:
self.handleError('Element collection attribute visible "%s" is not "yes" or "no"' % (attrs['visible'], ))
- if not self.has_collection:
- self.has_collection = True
- if self.has_legacy_object:
- self.handleError('Layout contains collection as well as legacy backdrop elements')
self.variable_scopes.append({ })
self.collection_depth += 1
elif 'param' == name:
self.checkParameter(attrs)
self.ignored_depth = 1
elif 'bounds' == name:
+ if self.have_bounds[-1] is not None:
+ self.handleError('Duplicate element bounds (previous %s)' % (self.have_bounds[-1], ))
+ else:
+ self.have_bounds[-1] = self.formatLocation()
self.checkBounds(attrs)
if self.repeat_depth[-1]:
self.handleError('Element bounds inside repeat')
@@ -566,14 +579,25 @@ class LayoutChecker(Minifyer):
def objectStartHandler(self, name, attrs):
if 'bounds' == name:
+ if self.have_bounds[-1] is not None:
+ self.handleError('Duplicate element bounds (previous %s)' % (self.have_bounds[-1], ))
+ else:
+ self.have_bounds[-1] = self.formatLocation()
self.checkBounds(attrs)
elif 'orientation' == name:
self.checkOrientation(attrs)
+ if 'color' == name:
+ if self.have_color[-1] is not None:
+ self.handleError('Duplicate element color (previous %s)' % (self.have_color[-1], ))
+ else:
+ self.have_color[-1] = self.formatLocation()
+ self.checkColor(attrs)
self.ignored_depth = 1
def objectEndHandler(self, name):
self.have_bounds.pop()
self.have_orientation.pop()
+ self.have_color.pop()
self.handlers.pop()
def setDocumentLocator(self, locator):
@@ -586,8 +610,6 @@ class LayoutChecker(Minifyer):
self.variable_scopes = [ ]
self.repeat_depth = [ ]
self.collection_depth = 0
- self.has_collection = False
- self.has_legacy_object = False
self.have_bounds = [ ]
self.have_orientation = [ ]
self.have_color = [ ]
@@ -609,8 +631,6 @@ class LayoutChecker(Minifyer):
del self.variable_scopes
del self.repeat_depth
del self.collection_depth
- del self.has_collection
- del self.has_legacy_object
del self.have_bounds
del self.have_orientation
del self.have_color
diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua
index f8c16807c87..a55cf443fdb 100644
--- a/scripts/src/cpu.lua
+++ b/scripts/src/cpu.lua
@@ -49,6 +49,14 @@ if (CPU_INCLUDE_DRC) then
MAME_DIR .. "src/devices/cpu/drcbex86.h",
}
end
+
+ if _OPTIONS["targetos"]=="macosx" and _OPTIONS["gcc"]~=nil then
+ if string.find(_OPTIONS["gcc"], "clang") and (str_to_version(_OPTIONS["gcc_version"]) < 80000) then
+ defines {
+ "TARGET_OS_OSX=1",
+ }
+ end
+ end
end
--------------------------------------------------
@@ -2624,6 +2632,8 @@ if (CPUS["Z80"]~=null) then
MAME_DIR .. "src/devices/cpu/z80/kl5c80a12.h",
MAME_DIR .. "src/devices/cpu/z80/kl5c80a16.cpp",
MAME_DIR .. "src/devices/cpu/z80/kl5c80a16.h",
+ MAME_DIR .. "src/devices/cpu/z80/kp63.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/kp63.h",
MAME_DIR .. "src/devices/cpu/z80/kp69.cpp",
MAME_DIR .. "src/devices/cpu/z80/kp69.h",
MAME_DIR .. "src/devices/cpu/z80/ky80.cpp",
diff --git a/scripts/src/formats.lua b/scripts/src/formats.lua
index f88266bcd7c..815ecabe73d 100644
--- a/scripts/src/formats.lua
+++ b/scripts/src/formats.lua
@@ -1411,6 +1411,19 @@ end
--------------------------------------------------
--
+--@src/lib/formats/p2000t_cas.h,FORMATS["P2000T_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["P2000T_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/p2000t_cas.cpp",
+ MAME_DIR.. "src/lib/formats/p2000t_cas.h",
+ }
+end
+
+
+--------------------------------------------------
+--
--@src/lib/formats/p6001_cas.h,FORMATS["P6001_CAS"] = true
--------------------------------------------------
diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua
index a4751370c7d..600c22f2746 100644
--- a/scripts/src/machine.lua
+++ b/scripts/src/machine.lua
@@ -4535,3 +4535,14 @@ if (MACHINES["SWIM3"]~=null) then
MAME_DIR .. "src/devices/machine/swim3.h",
}
end
+
+---------------------------------------------------
+--
+--@src/devices/machine/alpha_8921.h,MACHINES["ALPHA_8921"] = true
+---------------------------------------------------
+if (MACHINES["ALPHA_8921"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/alpha_8921.cpp",
+ MAME_DIR .. "src/devices/machine/alpha_8921.h",
+ }
+end
diff --git a/scripts/src/netlist.lua b/scripts/src/netlist.lua
index 72d7117fce9..442074f0215 100644
--- a/scripts/src/netlist.lua
+++ b/scripts/src/netlist.lua
@@ -106,22 +106,15 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/tools/nl_convert.cpp",
MAME_DIR .. "src/lib/netlist/tools/nl_convert.h",
MAME_DIR .. "src/lib/netlist/analog/nld_bjt.cpp",
- MAME_DIR .. "src/lib/netlist/analog/nld_bjt.h",
MAME_DIR .. "src/lib/netlist/analog/nld_generic_models.h",
MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.cpp",
- MAME_DIR .. "src/lib/netlist/analog/nld_mosfet.h",
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.cpp",
MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.h",
- MAME_DIR .. "src/lib/netlist/analog/nld_fourterm.h",
MAME_DIR .. "src/lib/netlist/analog/nld_switches.cpp",
- MAME_DIR .. "src/lib/netlist/analog/nld_switches.h",
MAME_DIR .. "src/lib/netlist/analog/nlid_twoterm.cpp",
MAME_DIR .. "src/lib/netlist/analog/nlid_twoterm.h",
- MAME_DIR .. "src/lib/netlist/analog/nld_twoterm.h",
MAME_DIR .. "src/lib/netlist/analog/nld_opamps.cpp",
- MAME_DIR .. "src/lib/netlist/analog/nld_opamps.h",
MAME_DIR .. "src/lib/netlist/solver/nld_solver.cpp",
- MAME_DIR .. "src/lib/netlist/solver/nld_solver.h",
MAME_DIR .. "src/lib/netlist/solver/nld_matrix_solver.cpp",
MAME_DIR .. "src/lib/netlist/solver/nld_matrix_solver.h",
MAME_DIR .. "src/lib/netlist/solver/nld_ms_direct.h",
@@ -210,6 +203,8 @@ project "netlist"
MAME_DIR .. "src/lib/netlist/macro/nlm_roms_lib.cpp",
MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_RTEST.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_NE556_DIP.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/modules/nlmod_ICL8038_DIP.cpp",
MAME_DIR .. "src/lib/netlist/generated/static_solvers.cpp",
MAME_DIR .. "src/lib/netlist/generated/nld_devinc.h",
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index 1a295e77378..98d86d70a89 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -388,6 +388,7 @@ VIDEOS["VRENDER0"] = true
MACHINES["ACORN_VIDC"] = true
MACHINES["AKIKO"] = true
+MACHINES["ALPHA_8921"] = true
--MACHINES["AM2901B"] = true
MACHINES["ARM_IOMD"] = true
MACHINES["AUTOCONFIG"] = true
@@ -1938,7 +1939,6 @@ files {
MAME_DIR .. "src/mame/audio/exidy.h",
MAME_DIR .. "src/mame/video/exidy.cpp",
MAME_DIR .. "src/mame/audio/targ.cpp",
- MAME_DIR .. "src/mame/audio/targ.h",
MAME_DIR .. "src/mame/drivers/exidy440.cpp",
MAME_DIR .. "src/mame/includes/exidy440.h",
MAME_DIR .. "src/mame/audio/exidy440.cpp",
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 879f722a883..cc704293f0f 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -426,6 +426,7 @@ VIDEOS["BT431"] = true
--------------------------------------------------
MACHINES["AKIKO"] = true
+MACHINES["ALPHA_8921"] = true
MACHINES["AM2901B"] = true
MACHINES["AUTOCONFIG"] = true
MACHINES["BUSMOUSE"] = true
@@ -882,6 +883,7 @@ BUSES["NSCSI"] = true
BUSES["NUBUS"] = true
BUSES["O2"] = true
BUSES["ORICEXT"] = true
+BUSES["P2000"] = true
BUSES["PASOPIA"] = true
BUSES["PC1512"] = true
BUSES["PCE"] = true
@@ -1063,6 +1065,7 @@ FORMATS["OPD_DSK"] = true
FORMATS["ORAO_CAS"] = true
FORMATS["ORIC_DSK"] = true
FORMATS["ORIC_TAP"] = true
+FORMATS["P2000T_CAS"] = true
FORMATS["P6001_CAS"] = true
FORMATS["PASTI_DSK"] = true
FORMATS["PC98FDI_DSK"] = true
@@ -2603,7 +2606,7 @@ createMESSProjects(_target, _subtarget, "informer")
files {
MAME_DIR .. "src/mame/drivers/informer_207_100.cpp",
MAME_DIR .. "src/mame/drivers/informer_207_376.cpp",
- MAME_DIR .. "src/mame/drivers/informer_213ae.cpp",
+ MAME_DIR .. "src/mame/drivers/informer_213.cpp",
MAME_DIR .. "src/mame/machine/informer_207_376_kbd.cpp",
MAME_DIR .. "src/mame/machine/informer_207_376_kbd.h",
}
@@ -3224,6 +3227,7 @@ files {
MAME_DIR .. "src/mame/drivers/p2000t.cpp",
MAME_DIR .. "src/mame/includes/p2000t.h",
MAME_DIR .. "src/mame/machine/p2000t.cpp",
+ MAME_DIR .. "src/mame/machine/p2000t_mdcr.cpp",
MAME_DIR .. "src/mame/video/p2000t.cpp",
MAME_DIR .. "src/mame/drivers/vg5k.cpp",
}
@@ -3337,6 +3341,7 @@ files {
MAME_DIR .. "src/mame/drivers/roland_cm32p.cpp",
MAME_DIR .. "src/mame/drivers/roland_d10.cpp",
MAME_DIR .. "src/mame/drivers/roland_d50.cpp",
+ MAME_DIR .. "src/mame/drivers/roland_jd800.cpp",
MAME_DIR .. "src/mame/drivers/roland_jv80.cpp",
MAME_DIR .. "src/mame/drivers/roland_jx3p.cpp",
MAME_DIR .. "src/mame/drivers/roland_jx8p.cpp",