Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
4643b8cd49
2
3rdparty/genie/src/actions/make/make_cpp.lua
vendored
2
3rdparty/genie/src/actions/make/make_cpp.lua
vendored
@ -104,7 +104,7 @@
|
||||
_p('\t$(SILENT) $(LINKCMD) $(OBJECTS)' .. (os.is("MacOSX") and " 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'" or ""))
|
||||
else
|
||||
_p('\t$(call RM,$(TARGET))')
|
||||
_p('\t@$(call max_args,$(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))' .. (os.is("MacOSX") and " 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'" or ""))
|
||||
_p('\t$(call max_args,$(SILENT) $(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))' .. (os.is("MacOSX") and " 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'" or ""))
|
||||
_p('\t$(SILENT) $(LINKCMD_NDX)')
|
||||
end
|
||||
else
|
||||
|
26
3rdparty/genie/src/host/scripts.c
vendored
26
3rdparty/genie/src/host/scripts.c
vendored
@ -212,19 +212,19 @@ const char* builtin_scripts[] = {
|
||||
/* actions/make/make_cpp.lua */
|
||||
"premake.make.cpp = { }\npremake.make.override = { }\npremake.make.makefile_ignore = false\nlocal cpp = premake.make.cpp\nlocal make = premake.make\nfunction premake.make_cpp(prj)\nlocal cc = premake.gettool(prj)\nlocal platforms = premake.filterplatforms(prj.solution, cc.platforms, \"Native\")\npremake.gmake_cpp_header(prj, cc, platforms)\nfor _, platform in ipairs(platforms) do\nfor cfg in premake.eachconfig(prj, platform) do\npremake.gmake_cpp_config(prj, cfg, cc)\nend\nend\ntable.sort(prj.allfiles)\nlocal objdirs = {}\nlocal additionalobjdirs = {}\nfor _, file in ipairs(prj.allfiles) do\nif path.isSourceFile(file) then\nobjdirs[_MAKE.esc(path.getdirectory(path.trimdots(file)))] = 1\nend\nend\nfor _, custombuildtask in ipairs(prj.custombuildtask or {}) do\nfor _, buildtask in ipairs(custombuildtask or {}) do\nadditionalobjdirs[_MAKE.esc(path.getdirectory(path.getrelative(prj.location,buildtask[2])))] = 1\nend\nend\n_p('OBJDIRS := \\\\')\n_p('\\t$(OBJDIR) \\\\')\nfor dir, _ in iter.sortByKeys(objdirs) do\n_p("
|
||||
"'\\t$(OBJDIR)/%s \\\\', dir)\nend\nfor dir, _ in iter.sortByKeys(additionalobjdirs) do\n_p('\\t%s \\\\', dir)\nend\n_p('')\n_p('RESOURCES := \\\\')\nfor _, file in ipairs(prj.allfiles) do\nif path.isresourcefile(file) then\n_p('\\t$(OBJDIR)/%s.res \\\\', _MAKE.esc(path.getbasename(file)))\nend\nend\n_p('')\n_p('.PHONY: clean prebuild prelink')\n_p('')\nif os.is(\"MacOSX\") and prj.kind == \"WindowedApp\" then\n_p('all: $(OBJDIRS) prebuild prelink $(TARGET) $(dir $(TARGETDIR))PkgInfo $(dir $(TARGETDIR))Info.plist | $(TARGETDIR)')\nelse\n_p('all: $(OBJDIRS) prebuild prelink $(TARGET) | $(TARGETDIR)')\nend\n_p('\\t@:')\n_p('')\nif (prj.kind == \"StaticLib\" and prj.options.ArchiveSplit) then\n_p('define max_args')\n_p('\\t$(eval _args:=)')\n_p('\\t$(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))')\n_p('\\t$(if $(_args),$1$(_args))')\n_p('endef')\n_p('')\n_p('define EOL')\n_p('')\n_p('')\n_p('endef')\n_p('')\nend\n_p('$(TARGET): $(GCH) $(OBJECTS) $(LDDEPS) $(EXTERNAL"
|
||||
"_LIBS) $(RESOURCES) | $(TARGETDIR) $(OBJDIRS)')\nif prj.kind == \"StaticLib\" then\nif prj.msgarchiving then\n_p('\\t@echo ' .. prj.msgarchiving)\nelse\n_p('\\t@echo Archiving %s', prj.name)\nend\nif (not prj.archivesplit_size) then\nprj.archivesplit_size=200\nend\nif (not prj.options.ArchiveSplit) then\n_p('\\t$(SILENT) $(LINKCMD) $(OBJECTS)' .. (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\nelse\n_p('\\t$(call RM,$(TARGET))')\n_p('\\t@$(call max_args,$(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))' .. (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\n_p('\\t$(SILENT) $(LINKCMD_NDX)')\nend\nelse\nif prj.msglinking then\n_p('\\t@echo ' .. prj.msglinking)\nelse\n_p('\\t@echo Linking %s', prj.name)\nend\n_p('\\t$(SILENT) $(LINKCMD)')\nend\n_p('\\t$(POSTBUILDCMDS)')\n_p('')\n_p('$(TARGETDIR):')\npremake.make_mkdirrule(\"$(TARGETDIR)\")\n_p('$(OBJDIRS):')\nif (not prj.solution.messageskip) or (not table.contains(prj.solution."
|
||||
"messageskip, \"SkipCreatingMessage\")) then\n_p('\\t@echo Creating $(@)')\nend\n_p('\\t-$(call MKDIR,$@)')\n_p('')\nif os.is(\"MacOSX\") and prj.kind == \"WindowedApp\" then\n_p('$(dir $(TARGETDIR))PkgInfo:')\n_p('$(dir $(TARGETDIR))Info.plist:')\n_p('')\nend\n_p('clean:')\nif (not prj.solution.messageskip) or (not table.contains(prj.solution.messageskip, \"SkipCleaningMessage\")) then\n_p('\\t@echo Cleaning %s', prj.name)\nend\n_p('ifeq (posix,$(SHELLTYPE))')\n_p('\\t$(SILENT) rm -f $(TARGET)')\n_p('\\t$(SILENT) rm -rf $(OBJDIR)')\n_p('else')\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(TARGET)) del $(subst /,\\\\\\\\,$(TARGET))')\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s /q $(subst /,\\\\\\\\,$(OBJDIR))')\n_p('endif')\n_p('')\n_p('prebuild:')\n_p('\\t$(PREBUILDCMDS)')\n_p('')\n_p('prelink:')\n_p('\\t$(PRELINKCMDS)')\n_p('')\ncpp.pchrules(prj)\ncpp.fileRules(prj, cc)\ncpp.dependencyRules(prj)\nfor _, custombuildtask in ipairs(prj.custombuildtask or {}) do\nfor _, buildtask in ipair"
|
||||
"s(custombuildtask or {}) do\nlocal deps = string.format(\"%s \",path.getrelative(prj.location,buildtask[1]))\nfor _, depdata in ipairs(buildtask[3] or {}) do\ndeps = deps .. string.format(\"%s \",path.getrelative(prj.location,depdata))\nend\n_p('%s: %s | $(TARGETDIR) $(OBJDIRS)'\n,path.getrelative(prj.location,buildtask[2])\n, deps\n)\nfor _, cmdline in ipairs(buildtask[4] or {}) do\nlocal cmd = cmdline\nlocal num = 1\nfor _, depdata in ipairs(buildtask[3] or {}) do\ncmd = string.gsub(cmd,\"%$%(\" .. num ..\"%)\", string.format(\"%s \",path.getrelative(prj.location,depdata)))\nnum = num + 1\nend\ncmd = string.gsub(cmd, \"%$%(<%)\", \"$<\")\ncmd = string.gsub(cmd, \"%$%(@%)\", \"$@\")\n_p('\\t$(SILENT) %s',cmd)\nend\n_p('')\nend\nend\n_p('-include $(OBJECTS:%%.o=%%.d)')\n_p('ifneq (,$(PCH))')\n_p(' -include $(OBJDIR)/$(notdir $(PCH)).d')\n_p(' -include $(OBJDIR)/$(notdir $(PCH))_objc.d')\n_p('endif')\nend\nfunction premake.gmake_cpp_header(prj, cc, platforms)\n_p('# %s project makefile autogenerated by GENie"
|
||||
"', premake.action.current().shortname)\n_p('ifndef config')\n_p(' config=%s', _MAKE.esc(premake.getconfigname(prj.solution.configurations[1], platforms[1], true)))\n_p('endif')\n_p('')\n_p('ifndef verbose')\n_p(' SILENT = @')\n_p('endif')\n_p('')\n_p('SHELLTYPE := msdos')\n_p('ifeq (,$(ComSpec)$(COMSPEC))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring /bin,$(SHELL)))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL)))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('ifeq (posix,$(SHELLTYPE))')\n_p(' MKDIR = $(SILENT) mkdir -p \"$(1)\"')\n_p(' COPY = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\n_p(' RM = $(SILENT) rm -f \"$(1)\"')\n_p('else')\n_p(' MKDIR = $(SILENT) mkdir \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p(' COPY = $(SILENT) copy /Y \"$(subst /,\\\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p(' RM = $(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p('endif')\n_p('')\n_p('CC = %s', cc.cc)\n_p('"
|
||||
"CXX = %s', cc.cxx)\n_p('AR = %s', cc.ar)\n_p('')\n_p('ifndef RESCOMP')\n_p(' ifdef WINDRES')\n_p(' RESCOMP = $(WINDRES)')\n_p(' else')\n_p(' RESCOMP = windres')\n_p(' endif')\n_p('endif')\n_p('')\nif (not premake.make.makefile_ignore) then\n_p('MAKEFILE = %s', _MAKE.getmakefilename(prj, true))\n_p('')\nend\nend\nlocal function is_excluded(prj, cfg, file)\nif table.icontains(prj.excludes, file) then\nreturn true\nend\nif table.icontains(cfg.excludes, file) then\nreturn true\nend\nreturn false\nend\nfunction premake.gmake_cpp_config(prj, cfg, cc)\n_p('ifeq ($(config),%s)', _MAKE.esc(cfg.shortname))\ncpp.platformtools(cfg, cc)\n_p(' ' .. (table.contains(premake.make.override,\"OBJDIR\") and \"override \" or \"\") .. 'OBJDIR = %s', _MAKE.esc(cfg.objectsdir))\n_p(' ' .. (table.contains(premake.make.override,\"TARGETDIR\") and \"override \" or \"\") .. 'TARGETDIR = %s', _MAKE.esc(cfg.buildtarget.directory))\n_p(' ' .. (table.contains(premake.make.override,\"TARGET\") and \"over"
|
||||
"ride \" or \"\") .. 'TARGET = $(TARGETDIR)/%s', _MAKE.esc(cfg.buildtarget.name))\n_p(' DEFINES +=%s', make.list(cc.getdefines(cfg.defines)))\n_p(' INCLUDES +=%s', make.list(cc.getincludedirs(cfg.includedirs)))\n_p(' INCLUDES +=%s', make.list(cc.getquoteincludedirs(cfg.userincludedirs)))\ncpp.pchconfig(cfg)\ncpp.flags(cfg, cc)\ncpp.linker(prj, cfg, cc)\ntable.sort(cfg.files)\n_p(' OBJECTS := \\\\')\nfor _, file in ipairs(cfg.files) do\nif path.isSourceFile(file) then\nif not is_excluded(prj, cfg, file) then\n_p('\\t$(OBJDIR)/%s.o \\\\'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n)\nend\nend\nend\n_p('')\n_p(' define PREBUILDCMDS')\nif #cfg.prebuildcommands > 0 then\n_p('\\t@echo Running pre-build commands')\n_p('\\t%s', table.implode(cfg.prebuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p(' endef')\n_p(' define PRELINKCMDS')\nif #cfg.prelinkcommands > 0 then\n_p('\\t@echo Running pre-link commands')\n_p('\\t%s', table.implode(cfg.prelinkcommands, \"\""
|
||||
", \"\", \"\\n\\t\"))\nend\n_p(' endef')\n_p(' define POSTBUILDCMDS')\nif #cfg.postbuildcommands > 0 then\n_p('\\t@echo Running post-build commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p(' endef')\nmake.settings(cfg, cc)\n_p('endif')\n_p('')\nend\nfunction cpp.platformtools(cfg, cc)\nlocal platform = cc.platforms[cfg.platform]\nif platform.cc then\n_p(' CC = %s', platform.cc)\nend\nif platform.cxx then\n_p(' CXX = %s', platform.cxx)\nend\nif platform.ar then\n_p(' AR = %s', platform.ar)\nend\nend\nfunction cpp.flags(cfg, cc)\nif cfg.pchheader and not cfg.flags.NoPCH then\n_p(' FORCE_INCLUDE += -include $(OBJDIR)/$(notdir $(PCH))')\n_p(' FORCE_INCLUDE_OBJC += -include $(OBJDIR)/$(notdir $(PCH))_objc')\nend\nif #cfg.forcedincludes > 0 then\n_p(' FORCE_INCLUDE += -include %s'\n,_MAKE.esc(table.concat(cfg.forcedincludes, \";\")))\nend\n_p(' ALL_CPPFLAGS += $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.concat(cc.getcppfla"
|
||||
"gs(cfg), \" \"))\n_p(' ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_asm)))\n_p(' ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_c)))\n_p(' ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_cpp)))\n_p(' ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_objc)))\n_p(' ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_objcpp)))\n_p(' ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)%s',\n make.list(table.join(cc.getdefines(cfg.resdefines),\n cc.getincludedirs(cfg"
|
||||
".resincludedirs), cfg.resoptions)))\nend\nfunction cpp.linker(prj, cfg, cc)\n_p(' ALL_LDFLAGS += $(LDFLAGS)%s', make.list(table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.linkoptions)))\n_p(' LDDEPS +=%s', make.list(_MAKE.esc(premake.getlinks(cfg, \"siblings\", \"fullpath\"))))\n_p(' LIBS += $(LDDEPS)%s', make.list(cc.getlinkflags(cfg)))\n_p(' EXTERNAL_LIBS +=%s', make.list(cc.getlibfiles(cfg)))\nif cfg.kind == \"StaticLib\" then\nif (not prj.options.ArchiveSplit) then\n_p(' LINKCMD = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\nelse\n_p(' LINKCMD = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\n_p(' LINKCMD_NDX = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, true)))\nend\nelse\nlocal tool = iif(cfg.language == \"C\", \"CC\", \"CXX\")\n_p(' LINKCMD = $(%s) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)', tool)\nend\nend\nfunction "
|
||||
"cpp.pchconfig(cfg)\nif not cfg.pchheader or cfg.flags.NoPCH then\nreturn\nend\nlocal pch = cfg.pchheader\nfor _, incdir in ipairs(cfg.includedirs) do\nlocal abspath = path.getabsolute(path.join(cfg.project.location, incdir))\nlocal testname = path.join(abspath, pch)\nif os.isfile(testname) then\npch = path.getrelative(cfg.location, testname)\nbreak\nend\nend\n_p(' PCH = %s', _MAKE.esc(pch))\n_p(' GCH = $(OBJDIR)/$(notdir $(PCH)).gch')\n_p(' GCH_OBJC = $(OBJDIR)/$(notdir $(PCH))_objc.gch')\nend\nfunction cpp.pchrules(prj)\n_p('ifneq (,$(PCH))')\n_p('$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompile then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_CFLAGS) -x c-header\", \"$(CXX) $(ALL_CXXFLAGS) -x c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('')\n_p('$(GCH_OBJC): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompile then\n_"
|
||||
"p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_OBJCFLAGS) -x objective-c-header\", \"$(CXX) $(ALL_OBJCPPFLAGS) -x objective-c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('endif')\n_p('')\nend\nfunction cpp.fileRules(prj, cc)\nlocal platforms = premake.filterplatforms(prj.solution, cc.platforms, \"Native\")\ntable.sort(prj.allfiles)\nfor _, file in ipairs(prj.allfiles or {}) do\nif path.isSourceFile(file) then\nif (path.isobjcfile(file)) then\n_p('$(OBJDIR)/%s.o: %s $(GCH_OBJC) $(MAKEFILE)'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n, _MAKE.esc(file)\n)\nelse\n_p('$(OBJDIR)/%s.o: %s $(GCH) $(MAKEFILE)'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n, _MAKE.esc(file)\n)\nend\nif (path.isobjcfile(file) and prj.msgcompile_objc) then\n_p('\\t@echo ' .. prj.msgcompile_objc)\nelseif prj.msgcompile then\n_p('\\t@echo ' .. prj.msgcompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nif ("
|
||||
"path.isobjcfile(file)) then\nif (path.iscfile(file)) then\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nelse\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCPPFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nend\nelseif (path.isasmfile(file)) then\n_p('\\t$(SILENT) $(CC) $(ALL_ASMFLAGS) -o \"$@\" -c \"$<\"')\nelse\ncpp.buildcommand(path.iscfile(file) and not prj.options.ForceCPP, \"o\")\nend\nfor _, task in ipairs(prj.postcompiletasks or {}) do\n_p('\\t$(SILENT) %s', task)\n_p('')\nend\n_p('')\nelseif (path.getextension(file) == \".rc\") then\n_p('$(OBJDIR)/%s.res: %s', _MAKE.esc(path.getbasename(file)), _MAKE.esc(file))\nif prj.msgresource then\n_p('\\t@echo ' .. prj.msgresource)\nelse\n_p('\\t@echo $(notdir $<)')\nend\n_p('\\t$(SILENT) $(RESCOMP) $< -O coff -o \"$@\" $(ALL_RESFLAGS)')\n_p('')\nend\nend\nend\nfunction cpp.dependencyRules(prj)\nfor _, dependency in ipairs(prj.dependency or {}) do\nfor _, dep in ipairs(dependency or {}) do\nif (dep[3]==nil or dep[3]==false) then\n"
|
||||
"_p('$(OBJDIR)/%s.o: %s'\n, _MAKE.esc(path.trimdots(path.removeext(path.getrelative(prj.location, dep[1]))))\n, _MAKE.esc(path.getrelative(prj.location, dep[2]))\n)\nelse\n_p('%s: %s'\n, _MAKE.esc(dep[1])\n, _MAKE.esc(path.getrelative(prj.location, dep[2]))\n)\nend\n_p('')\nend\nend\nend\nfunction cpp.buildcommand(iscfile, objext)\nlocal flags = iif(iscfile, '$(CC) $(ALL_CFLAGS)', '$(CXX) $(ALL_CXXFLAGS)')\n_p('\\t$(SILENT) %s $(FORCE_INCLUDE) -o \"$@\" -c \"$<\"', flags, objext)\nend\n",
|
||||
"_LIBS) $(RESOURCES) | $(TARGETDIR) $(OBJDIRS)')\nif prj.kind == \"StaticLib\" then\nif prj.msgarchiving then\n_p('\\t@echo ' .. prj.msgarchiving)\nelse\n_p('\\t@echo Archiving %s', prj.name)\nend\nif (not prj.archivesplit_size) then\nprj.archivesplit_size=200\nend\nif (not prj.options.ArchiveSplit) then\n_p('\\t$(SILENT) $(LINKCMD) $(OBJECTS)' .. (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\nelse\n_p('\\t$(call RM,$(TARGET))')\n_p('\\t$(call max_args,$(SILENT) $(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))' .. (os.is(\"MacOSX\") and \" 2>&1 > /dev/null | sed -e '/.o) has no symbols$$/d'\" or \"\"))\n_p('\\t$(SILENT) $(LINKCMD_NDX)')\nend\nelse\nif prj.msglinking then\n_p('\\t@echo ' .. prj.msglinking)\nelse\n_p('\\t@echo Linking %s', prj.name)\nend\n_p('\\t$(SILENT) $(LINKCMD)')\nend\n_p('\\t$(POSTBUILDCMDS)')\n_p('')\n_p('$(TARGETDIR):')\npremake.make_mkdirrule(\"$(TARGETDIR)\")\n_p('$(OBJDIRS):')\nif (not prj.solution.messageskip) or (not table.contains(prj."
|
||||
"solution.messageskip, \"SkipCreatingMessage\")) then\n_p('\\t@echo Creating $(@)')\nend\n_p('\\t-$(call MKDIR,$@)')\n_p('')\nif os.is(\"MacOSX\") and prj.kind == \"WindowedApp\" then\n_p('$(dir $(TARGETDIR))PkgInfo:')\n_p('$(dir $(TARGETDIR))Info.plist:')\n_p('')\nend\n_p('clean:')\nif (not prj.solution.messageskip) or (not table.contains(prj.solution.messageskip, \"SkipCleaningMessage\")) then\n_p('\\t@echo Cleaning %s', prj.name)\nend\n_p('ifeq (posix,$(SHELLTYPE))')\n_p('\\t$(SILENT) rm -f $(TARGET)')\n_p('\\t$(SILENT) rm -rf $(OBJDIR)')\n_p('else')\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(TARGET)) del $(subst /,\\\\\\\\,$(TARGET))')\n_p('\\t$(SILENT) if exist $(subst /,\\\\\\\\,$(OBJDIR)) rmdir /s /q $(subst /,\\\\\\\\,$(OBJDIR))')\n_p('endif')\n_p('')\n_p('prebuild:')\n_p('\\t$(PREBUILDCMDS)')\n_p('')\n_p('prelink:')\n_p('\\t$(PRELINKCMDS)')\n_p('')\ncpp.pchrules(prj)\ncpp.fileRules(prj, cc)\ncpp.dependencyRules(prj)\nfor _, custombuildtask in ipairs(prj.custombuildtask or {}) do\nfor _, buildtask"
|
||||
" in ipairs(custombuildtask or {}) do\nlocal deps = string.format(\"%s \",path.getrelative(prj.location,buildtask[1]))\nfor _, depdata in ipairs(buildtask[3] or {}) do\ndeps = deps .. string.format(\"%s \",path.getrelative(prj.location,depdata))\nend\n_p('%s: %s | $(TARGETDIR) $(OBJDIRS)'\n,path.getrelative(prj.location,buildtask[2])\n, deps\n)\nfor _, cmdline in ipairs(buildtask[4] or {}) do\nlocal cmd = cmdline\nlocal num = 1\nfor _, depdata in ipairs(buildtask[3] or {}) do\ncmd = string.gsub(cmd,\"%$%(\" .. num ..\"%)\", string.format(\"%s \",path.getrelative(prj.location,depdata)))\nnum = num + 1\nend\ncmd = string.gsub(cmd, \"%$%(<%)\", \"$<\")\ncmd = string.gsub(cmd, \"%$%(@%)\", \"$@\")\n_p('\\t$(SILENT) %s',cmd)\nend\n_p('')\nend\nend\n_p('-include $(OBJECTS:%%.o=%%.d)')\n_p('ifneq (,$(PCH))')\n_p(' -include $(OBJDIR)/$(notdir $(PCH)).d')\n_p(' -include $(OBJDIR)/$(notdir $(PCH))_objc.d')\n_p('endif')\nend\nfunction premake.gmake_cpp_header(prj, cc, platforms)\n_p('# %s project makefile autogenerated"
|
||||
" by GENie', premake.action.current().shortname)\n_p('ifndef config')\n_p(' config=%s', _MAKE.esc(premake.getconfigname(prj.solution.configurations[1], platforms[1], true)))\n_p('endif')\n_p('')\n_p('ifndef verbose')\n_p(' SILENT = @')\n_p('endif')\n_p('')\n_p('SHELLTYPE := msdos')\n_p('ifeq (,$(ComSpec)$(COMSPEC))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring /bin,$(SHELL)))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('ifeq (/bin,$(findstring /bin,$(MAKESHELL)))')\n_p(' SHELLTYPE := posix')\n_p('endif')\n_p('')\n_p('ifeq (posix,$(SHELLTYPE))')\n_p(' MKDIR = $(SILENT) mkdir -p \"$(1)\"')\n_p(' COPY = $(SILENT) cp -fR \"$(1)\" \"$(2)\"')\n_p(' RM = $(SILENT) rm -f \"$(1)\"')\n_p('else')\n_p(' MKDIR = $(SILENT) mkdir \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p(' COPY = $(SILENT) copy /Y \"$(subst /,\\\\\\\\,$(1))\" \"$(subst /,\\\\\\\\,$(2))\"')\n_p(' RM = $(SILENT) del /F \"$(subst /,\\\\\\\\,$(1))\" 2> nul || exit 0')\n_p('endif')\n_p('')\n_p('CC = %s', cc."
|
||||
"cc)\n_p('CXX = %s', cc.cxx)\n_p('AR = %s', cc.ar)\n_p('')\n_p('ifndef RESCOMP')\n_p(' ifdef WINDRES')\n_p(' RESCOMP = $(WINDRES)')\n_p(' else')\n_p(' RESCOMP = windres')\n_p(' endif')\n_p('endif')\n_p('')\nif (not premake.make.makefile_ignore) then\n_p('MAKEFILE = %s', _MAKE.getmakefilename(prj, true))\n_p('')\nend\nend\nlocal function is_excluded(prj, cfg, file)\nif table.icontains(prj.excludes, file) then\nreturn true\nend\nif table.icontains(cfg.excludes, file) then\nreturn true\nend\nreturn false\nend\nfunction premake.gmake_cpp_config(prj, cfg, cc)\n_p('ifeq ($(config),%s)', _MAKE.esc(cfg.shortname))\ncpp.platformtools(cfg, cc)\n_p(' ' .. (table.contains(premake.make.override,\"OBJDIR\") and \"override \" or \"\") .. 'OBJDIR = %s', _MAKE.esc(cfg.objectsdir))\n_p(' ' .. (table.contains(premake.make.override,\"TARGETDIR\") and \"override \" or \"\") .. 'TARGETDIR = %s', _MAKE.esc(cfg.buildtarget.directory))\n_p(' ' .. (table.contains(premake.make.override,\"TARGET\") a"
|
||||
"nd \"override \" or \"\") .. 'TARGET = $(TARGETDIR)/%s', _MAKE.esc(cfg.buildtarget.name))\n_p(' DEFINES +=%s', make.list(cc.getdefines(cfg.defines)))\n_p(' INCLUDES +=%s', make.list(cc.getincludedirs(cfg.includedirs)))\n_p(' INCLUDES +=%s', make.list(cc.getquoteincludedirs(cfg.userincludedirs)))\ncpp.pchconfig(cfg)\ncpp.flags(cfg, cc)\ncpp.linker(prj, cfg, cc)\ntable.sort(cfg.files)\n_p(' OBJECTS := \\\\')\nfor _, file in ipairs(cfg.files) do\nif path.isSourceFile(file) then\nif not is_excluded(prj, cfg, file) then\n_p('\\t$(OBJDIR)/%s.o \\\\'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n)\nend\nend\nend\n_p('')\n_p(' define PREBUILDCMDS')\nif #cfg.prebuildcommands > 0 then\n_p('\\t@echo Running pre-build commands')\n_p('\\t%s', table.implode(cfg.prebuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p(' endef')\n_p(' define PRELINKCMDS')\nif #cfg.prelinkcommands > 0 then\n_p('\\t@echo Running pre-link commands')\n_p('\\t%s', table.implode(cfg.prelinkcomma"
|
||||
"nds, \"\", \"\", \"\\n\\t\"))\nend\n_p(' endef')\n_p(' define POSTBUILDCMDS')\nif #cfg.postbuildcommands > 0 then\n_p('\\t@echo Running post-build commands')\n_p('\\t%s', table.implode(cfg.postbuildcommands, \"\", \"\", \"\\n\\t\"))\nend\n_p(' endef')\nmake.settings(cfg, cc)\n_p('endif')\n_p('')\nend\nfunction cpp.platformtools(cfg, cc)\nlocal platform = cc.platforms[cfg.platform]\nif platform.cc then\n_p(' CC = %s', platform.cc)\nend\nif platform.cxx then\n_p(' CXX = %s', platform.cxx)\nend\nif platform.ar then\n_p(' AR = %s', platform.ar)\nend\nend\nfunction cpp.flags(cfg, cc)\nif cfg.pchheader and not cfg.flags.NoPCH then\n_p(' FORCE_INCLUDE += -include $(OBJDIR)/$(notdir $(PCH))')\n_p(' FORCE_INCLUDE_OBJC += -include $(OBJDIR)/$(notdir $(PCH))_objc')\nend\nif #cfg.forcedincludes > 0 then\n_p(' FORCE_INCLUDE += -include %s'\n,_MAKE.esc(table.concat(cfg.forcedincludes, \";\")))\nend\n_p(' ALL_CPPFLAGS += $(CPPFLAGS) %s $(DEFINES) $(INCLUDES)', table.concat(cc."
|
||||
"getcppflags(cfg), \" \"))\n_p(' ALL_ASMFLAGS += $(ASMFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_asm)))\n_p(' ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_c)))\n_p(' ALL_CXXFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_cpp)))\n_p(' ALL_OBJCFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cfg.buildoptions, cfg.buildoptions_objc)))\n_p(' ALL_OBJCPPFLAGS += $(CXXFLAGS) $(CFLAGS) $(ALL_CPPFLAGS) $(ARCH)%s', make.list(table.join(cc.getcflags(cfg), cc.getcxxflags(cfg), cfg.buildoptions, cfg.buildoptions_objcpp)))\n_p(' ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES)%s',\n make.list(table.join(cc.getdefines(cfg.resdefines),\n cc.getinclud"
|
||||
"edirs(cfg.resincludedirs), cfg.resoptions)))\nend\nfunction cpp.linker(prj, cfg, cc)\n_p(' ALL_LDFLAGS += $(LDFLAGS)%s', make.list(table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.linkoptions)))\n_p(' LDDEPS +=%s', make.list(_MAKE.esc(premake.getlinks(cfg, \"siblings\", \"fullpath\"))))\n_p(' LIBS += $(LDDEPS)%s', make.list(cc.getlinkflags(cfg)))\n_p(' EXTERNAL_LIBS +=%s', make.list(cc.getlibfiles(cfg)))\nif cfg.kind == \"StaticLib\" then\nif (not prj.options.ArchiveSplit) then\n_p(' LINKCMD = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\nelse\n_p(' LINKCMD = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, false)))\n_p(' LINKCMD_NDX = $(AR) %s $(TARGET)', make.list(cc.getarchiveflags(prj, cfg, true)))\nend\nelse\nlocal tool = iif(cfg.language == \"C\", \"CC\", \"CXX\")\n_p(' LINKCMD = $(%s) -o $(TARGET) $(OBJECTS) $(RESOURCES) $(ARCH) $(ALL_LDFLAGS) $(LIBS)', tool)\nend\nend\n"
|
||||
"function cpp.pchconfig(cfg)\nif not cfg.pchheader or cfg.flags.NoPCH then\nreturn\nend\nlocal pch = cfg.pchheader\nfor _, incdir in ipairs(cfg.includedirs) do\nlocal abspath = path.getabsolute(path.join(cfg.project.location, incdir))\nlocal testname = path.join(abspath, pch)\nif os.isfile(testname) then\npch = path.getrelative(cfg.location, testname)\nbreak\nend\nend\n_p(' PCH = %s', _MAKE.esc(pch))\n_p(' GCH = $(OBJDIR)/$(notdir $(PCH)).gch')\n_p(' GCH_OBJC = $(OBJDIR)/$(notdir $(PCH))_objc.gch')\nend\nfunction cpp.pchrules(prj)\n_p('ifneq (,$(PCH))')\n_p('$(GCH): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompile then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_CFLAGS) -x c-header\", \"$(CXX) $(ALL_CXXFLAGS) -x c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('')\n_p('$(GCH_OBJC): $(PCH) $(MAKEFILE) | $(OBJDIR)')\nif prj.msgprecompil"
|
||||
"e then\n_p('\\t@echo ' .. prj.msgprecompile)\nelse\n_p('\\t@echo $(notdir $<)')\nend\nlocal cmd = iif(prj.language == \"C\", \"$(CC) $(ALL_OBJCFLAGS) -x objective-c-header\", \"$(CXX) $(ALL_OBJCPPFLAGS) -x objective-c++-header\")\n_p('\\t$(SILENT) %s $(DEFINES) $(INCLUDES) -o \"$@\" -c \"$<\"', cmd)\n_p('endif')\n_p('')\nend\nfunction cpp.fileRules(prj, cc)\nlocal platforms = premake.filterplatforms(prj.solution, cc.platforms, \"Native\")\ntable.sort(prj.allfiles)\nfor _, file in ipairs(prj.allfiles or {}) do\nif path.isSourceFile(file) then\nif (path.isobjcfile(file)) then\n_p('$(OBJDIR)/%s.o: %s $(GCH_OBJC) $(MAKEFILE)'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n, _MAKE.esc(file)\n)\nelse\n_p('$(OBJDIR)/%s.o: %s $(GCH) $(MAKEFILE)'\n, _MAKE.esc(path.trimdots(path.removeext(file)))\n, _MAKE.esc(file)\n)\nend\nif (path.isobjcfile(file) and prj.msgcompile_objc) then\n_p('\\t@echo ' .. prj.msgcompile_objc)\nelseif prj.msgcompile then\n_p('\\t@echo ' .. prj.msgcompile)\nelse\n_p('\\t@echo $(notdir $<)')\n"
|
||||
"end\nif (path.isobjcfile(file)) then\nif (path.iscfile(file)) then\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nelse\n_p('\\t$(SILENT) $(CXX) $(ALL_OBJCPPFLAGS) $(FORCE_INCLUDE_OBJC) -o \"$@\" -c \"$<\"')\nend\nelseif (path.isasmfile(file)) then\n_p('\\t$(SILENT) $(CC) $(ALL_ASMFLAGS) -o \"$@\" -c \"$<\"')\nelse\ncpp.buildcommand(path.iscfile(file) and not prj.options.ForceCPP, \"o\")\nend\nfor _, task in ipairs(prj.postcompiletasks or {}) do\n_p('\\t$(SILENT) %s', task)\n_p('')\nend\n_p('')\nelseif (path.getextension(file) == \".rc\") then\n_p('$(OBJDIR)/%s.res: %s', _MAKE.esc(path.getbasename(file)), _MAKE.esc(file))\nif prj.msgresource then\n_p('\\t@echo ' .. prj.msgresource)\nelse\n_p('\\t@echo $(notdir $<)')\nend\n_p('\\t$(SILENT) $(RESCOMP) $< -O coff -o \"$@\" $(ALL_RESFLAGS)')\n_p('')\nend\nend\nend\nfunction cpp.dependencyRules(prj)\nfor _, dependency in ipairs(prj.dependency or {}) do\nfor _, dep in ipairs(dependency or {}) do\nif (dep[3]==nil or dep[3]==fals"
|
||||
"e) then\n_p('$(OBJDIR)/%s.o: %s'\n, _MAKE.esc(path.trimdots(path.removeext(path.getrelative(prj.location, dep[1]))))\n, _MAKE.esc(path.getrelative(prj.location, dep[2]))\n)\nelse\n_p('%s: %s'\n, _MAKE.esc(dep[1])\n, _MAKE.esc(path.getrelative(prj.location, dep[2]))\n)\nend\n_p('')\nend\nend\nend\nfunction cpp.buildcommand(iscfile, objext)\nlocal flags = iif(iscfile, '$(CC) $(ALL_CFLAGS)', '$(CXX) $(ALL_CXXFLAGS)')\n_p('\\t$(SILENT) %s $(FORCE_INCLUDE) -o \"$@\" -c \"$<\"', flags, objext)\nend\n",
|
||||
|
||||
/* actions/make/make_csharp.lua */
|
||||
"local function getresourcefilename(cfg, fname)\nif path.getextension(fname) == \".resx\" then\n local name = cfg.buildtarget.basename .. \".\"\n local dir = path.getdirectory(fname)\n if dir ~= \".\" then \nname = name .. path.translate(dir, \".\") .. \".\"\nend\nreturn \"$(OBJDIR)/\" .. _MAKE.esc(name .. path.getbasename(fname)) .. \".resources\"\nelse\nreturn fname\nend\nend\nfunction premake.make_csharp(prj)\nlocal csc = premake.dotnet\nlocal cfglibs = { }\nlocal cfgpairs = { }\nlocal anycfg\nfor cfg in premake.eachconfig(prj) do\nanycfg = cfg\ncfglibs[cfg] = premake.getlinks(cfg, \"siblings\", \"fullpath\")\ncfgpairs[cfg] = { }\nfor _, fname in ipairs(cfglibs[cfg]) do\nif path.getdirectory(fname) ~= cfg.buildtarget.directory then\ncfgpairs[cfg][\"$(TARGETDIR)/\" .. _MAKE.esc(path.getname(fname))] = _MAKE.esc(fname)\nend\nend\nend\nlocal sources = {}\nlocal embedded = { }\nlocal copypairs = { }\nfor fcfg in premake.project.eachfile(prj) do\nlocal action = csc.getbuildaction(fcfg)\nif action == \"Co"
|
||||
|
24
3rdparty/softfloat/fpu_constant.h
vendored
24
3rdparty/softfloat/fpu_constant.h
vendored
@ -37,11 +37,11 @@ these four paragraphs for those parts of this code that are retained.
|
||||
|
||||
// 128-bit PI fraction
|
||||
#ifdef BETTER_THAN_PENTIUM
|
||||
#define FLOAT_PI_HI (U64(0xc90fdaa22168c234))
|
||||
#define FLOAT_PI_LO (U64(0xc4c6628b80dc1cd1))
|
||||
#define FLOAT_PI_HI (0xc90fdaa22168c234U)
|
||||
#define FLOAT_PI_LO (0xc4c6628b80dc1cd1U)
|
||||
#else
|
||||
#define FLOAT_PI_HI (U64(0xc90fdaa22168c234))
|
||||
#define FLOAT_PI_LO (U64(0xC000000000000000))
|
||||
#define FLOAT_PI_HI (0xc90fdaa22168c234U)
|
||||
#define FLOAT_PI_LO (0xC000000000000000U)
|
||||
#endif
|
||||
|
||||
#define FLOATX80_PI2_EXP (0x3FFF)
|
||||
@ -55,11 +55,11 @@ these four paragraphs for those parts of this code that are retained.
|
||||
|
||||
// 128-bit 3PI/4 fraction
|
||||
#ifdef BETTER_THAN_PENTIUM
|
||||
#define FLOAT_3PI4_HI (U64(0x96cbe3f9990e91a7))
|
||||
#define FLOAT_3PI4_LO (U64(0x9394c9e8a0a5159c))
|
||||
#define FLOAT_3PI4_HI (0x96cbe3f9990e91a7U)
|
||||
#define FLOAT_3PI4_LO (0x9394c9e8a0a5159cU)
|
||||
#else
|
||||
#define FLOAT_3PI4_HI (U64(0x96cbe3f9990e91a7))
|
||||
#define FLOAT_3PI4_LO (U64(0x9000000000000000))
|
||||
#define FLOAT_3PI4_HI (0x96cbe3f9990e91a7U)
|
||||
#define FLOAT_3PI4_LO (0x9000000000000000U)
|
||||
#endif
|
||||
|
||||
//////////////////////////////
|
||||
@ -70,11 +70,11 @@ these four paragraphs for those parts of this code that are retained.
|
||||
|
||||
// 128-bit 1/LN2 fraction
|
||||
#ifdef BETTER_THAN_PENTIUM
|
||||
#define FLOAT_LN2INV_HI (U64(0xb8aa3b295c17f0bb))
|
||||
#define FLOAT_LN2INV_LO (U64(0xbe87fed0691d3e89))
|
||||
#define FLOAT_LN2INV_HI (0xb8aa3b295c17f0bbU)
|
||||
#define FLOAT_LN2INV_LO (0xbe87fed0691d3e89U)
|
||||
#else
|
||||
#define FLOAT_LN2INV_HI (U64(0xb8aa3b295c17f0bb))
|
||||
#define FLOAT_LN2INV_LO (U64(0xC000000000000000))
|
||||
#define FLOAT_LN2INV_HI (0xb8aa3b295c17f0bbU)
|
||||
#define FLOAT_LN2INV_LO (0xC000000000000000U)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
12
3rdparty/softfloat/fsincos.c
vendored
12
3rdparty/softfloat/fsincos.c
vendored
@ -31,8 +31,8 @@ these four paragraphs for those parts of this code that are retained.
|
||||
//#include "softfloat-specialize"
|
||||
#include "fpu_constant.h"
|
||||
|
||||
static const floatx80 floatx80_one = packFloatx80(0, 0x3fff, U64(0x8000000000000000));
|
||||
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, U64(0xffffffffffffffff));
|
||||
static const floatx80 floatx80_one = packFloatx80(0, 0x3fff, 0x8000000000000000U);
|
||||
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, 0xffffffffffffffffU);
|
||||
|
||||
#define packFloat2x128m(zHi, zLo) {(zHi), (zLo)}
|
||||
#define PACK_FLOAT_128(hi,lo) packFloat2x128m(LIT64(hi),LIT64(lo))
|
||||
@ -83,7 +83,7 @@ INLINE floatx80 propagateFloatx80NaNOneArg(floatx80 a)
|
||||
if (floatx80_is_signaling_nan(a))
|
||||
float_raise(float_flag_invalid);
|
||||
|
||||
a.low |= U64(0xC000000000000000);
|
||||
a.low |= 0xC000000000000000U;
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -322,7 +322,7 @@ int sf_fsincos(floatx80 a, floatx80 *sin_a, floatx80 *cos_a)
|
||||
// float_raise(float_flag_denormal);
|
||||
|
||||
/* handle pseudo denormals */
|
||||
if (! (aSig0 & U64(0x8000000000000000)))
|
||||
if (! (aSig0 & 0x8000000000000000U))
|
||||
{
|
||||
float_raise(float_flag_inexact);
|
||||
if (sin_a)
|
||||
@ -435,7 +435,7 @@ int floatx80_ftan(floatx80 &a)
|
||||
if (aSig0 == 0) return 0;
|
||||
// float_raise(float_flag_denormal);
|
||||
/* handle pseudo denormals */
|
||||
if (! (aSig0 & U64(0x8000000000000000)))
|
||||
if (! (aSig0 & 0x8000000000000000U))
|
||||
{
|
||||
float_raise(float_flag_inexact | float_flag_underflow);
|
||||
return 0;
|
||||
@ -616,7 +616,7 @@ floatx80 floatx80_scale(floatx80 a, floatx80 b)
|
||||
}
|
||||
if (aSig && (aExp == 0)) float_raise(float_flag_denormal);
|
||||
if (bSign) return packFloatx80(aSign, 0, 0);
|
||||
return packFloatx80(aSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(aSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
if (aExp == 0) {
|
||||
if (aSig == 0) return a;
|
||||
|
34
3rdparty/softfloat/fyl2x.c
vendored
34
3rdparty/softfloat/fyl2x.c
vendored
@ -32,10 +32,10 @@ these four paragraphs for those parts of this code that are retained.
|
||||
//#include "softfloat-specialize"
|
||||
#include "fpu_constant.h"
|
||||
|
||||
static const floatx80 floatx80_log10_2 = packFloatx80(0, 0x3ffd, U64(0x9a209a84fbcff798));
|
||||
static const floatx80 floatx80_ln_2 = packFloatx80(0, 0x3ffe, U64(0xb17217f7d1cf79ac));
|
||||
static const floatx80 floatx80_one = packFloatx80(0, 0x3fff, U64(0x8000000000000000));
|
||||
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, U64(0xffffffffffffffff));
|
||||
static const floatx80 floatx80_log10_2 = packFloatx80(0, 0x3ffd, 0x9a209a84fbcff798U);
|
||||
static const floatx80 floatx80_ln_2 = packFloatx80(0, 0x3ffe, 0xb17217f7d1cf79acU);
|
||||
static const floatx80 floatx80_one = packFloatx80(0, 0x3fff, 0x8000000000000000U);
|
||||
static const floatx80 floatx80_default_nan = packFloatx80(0, 0xffff, 0xffffffffffffffffU);
|
||||
|
||||
#define packFloat_128(zHi, zLo) {(zHi), (zLo)}
|
||||
#define PACK_FLOAT_128(hi,lo) packFloat_128(LIT64(hi),LIT64(lo))
|
||||
@ -87,7 +87,7 @@ INLINE floatx80 propagateFloatx80NaNOneArg(floatx80 a)
|
||||
if (floatx80_is_signaling_nan(a))
|
||||
float_raise(float_flag_invalid);
|
||||
|
||||
a.low |= U64(0xC000000000000000);
|
||||
a.low |= 0xC000000000000000U;
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -130,8 +130,8 @@ static floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b)
|
||||
int aIsSignalingNaN = floatx80_is_signaling_nan(a);
|
||||
int bIsNaN = floatx80_is_nan(b);
|
||||
int bIsSignalingNaN = floatx80_is_signaling_nan(b);
|
||||
a.low |= U64(0xC000000000000000);
|
||||
b.low |= U64(0xC000000000000000);
|
||||
a.low |= 0xC000000000000000U;
|
||||
b.low |= 0xC000000000000000U;
|
||||
if (aIsSignalingNaN | bIsSignalingNaN) float_raise(float_flag_invalid);
|
||||
if (aIsSignalingNaN) {
|
||||
if (bIsSignalingNaN) goto returnLargerSignificand;
|
||||
@ -150,14 +150,14 @@ static floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b)
|
||||
}
|
||||
|
||||
static const float128 float128_one =
|
||||
packFloat_128(U64(0x3fff000000000000), U64(0x0000000000000000));
|
||||
packFloat_128(0x3fff000000000000U, 0x0000000000000000U);
|
||||
static const float128 float128_two =
|
||||
packFloat_128(U64(0x4000000000000000), U64(0x0000000000000000));
|
||||
packFloat_128(0x4000000000000000U, 0x0000000000000000U);
|
||||
|
||||
static const float128 float128_ln2inv2 =
|
||||
packFloat_128(U64(0x400071547652b82f), U64(0xe1777d0ffda0d23a));
|
||||
packFloat_128(0x400071547652b82fU, 0xe1777d0ffda0d23aU);
|
||||
|
||||
#define SQRT2_HALF_SIG U64(0xb504f333f9de6484)
|
||||
#define SQRT2_HALF_SIG 0xb504f333f9de6484U
|
||||
|
||||
extern float128 OddPoly(float128 x, float128 *arr, unsigned n);
|
||||
|
||||
@ -279,7 +279,7 @@ invalid:
|
||||
if (bSig == 0) goto invalid;
|
||||
float_raise(float_flag_denormal);
|
||||
}
|
||||
return packFloatx80(bSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(bSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
}
|
||||
if (bExp == 0x7FFF)
|
||||
@ -289,16 +289,16 @@ invalid:
|
||||
if (aSig && (aExp == 0))
|
||||
float_raise(float_flag_denormal);
|
||||
if (aExp < 0x3FFF) {
|
||||
return packFloatx80(zSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(zSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
if (aExp == 0x3FFF && ((uint64_t) (aSig<<1) == 0)) goto invalid;
|
||||
return packFloatx80(bSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(bSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
if (aExp == 0) {
|
||||
if (aSig == 0) {
|
||||
if ((bExp | bSig) == 0) goto invalid;
|
||||
float_raise(float_flag_divbyzero);
|
||||
return packFloatx80(zSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(zSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
if (aSign) goto invalid;
|
||||
float_raise(float_flag_denormal);
|
||||
@ -393,7 +393,7 @@ invalid:
|
||||
if (bSig == 0) goto invalid;
|
||||
float_raise(float_flag_denormal);
|
||||
}
|
||||
return packFloatx80(bSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(bSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
}
|
||||
if (bExp == 0x7FFF)
|
||||
@ -406,7 +406,7 @@ invalid:
|
||||
float_raise(float_flag_denormal);
|
||||
}
|
||||
|
||||
return packFloatx80(zSign, 0x7FFF, U64(0x8000000000000000));
|
||||
return packFloatx80(zSign, 0x7FFF, 0x8000000000000000U);
|
||||
}
|
||||
if (aExp == 0) {
|
||||
if (aSig == 0) {
|
||||
|
@ -8,8 +8,8 @@
|
||||
android:versionName="0.179"
|
||||
android:installLocation="auto">
|
||||
|
||||
<!-- Android 4.0 -->
|
||||
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
|
||||
<!-- Android 5.0 -->
|
||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21" />
|
||||
|
||||
<!-- OpenGL ES 2.0 -->
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
|
1651
hash/archimedes.xml
1651
hash/archimedes.xml
File diff suppressed because it is too large
Load Diff
@ -68,6 +68,43 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hisheet" supported="no">
|
||||
<description>Hi-InterSheet</description>
|
||||
<year>1986</year>
|
||||
<publisher>Computer Concepts</publisher>
|
||||
<info name="compatibility" value="6502 co-processor" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="25600">
|
||||
<rom name="Hi-InterSheet.ssd" size="25600" crc="276aa20f" sha1="46d80cf02a649d3f43d6ef718b4d7ad03cc95646" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hiview" supported="no">
|
||||
<description>Hi-View</description>
|
||||
<year>1984</year>
|
||||
<publisher>Acornsoft</publisher>
|
||||
<info name="release" value="SNB15" />
|
||||
<info name="compatibility" value="6502 co-processor" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102400">
|
||||
<rom name="Hi-View.ssd" size="102400" crc="f9e79e46" sha1="5b5653c890efc74c3d35d1ab82e51ba43d797346" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="hiwwplus" supported="no">
|
||||
<description>Hi-Wordwise Plus</description>
|
||||
<year>1985</year>
|
||||
<publisher>Computer Concepts</publisher>
|
||||
<info name="compatibility" value="6502 co-processor" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="33280">
|
||||
<rom name="Hi-WordWisePlus.ssd" size="33280" crc="e0c88da9" sha1="eeb95137ba5b8428795c552f484b07bf12f2e878" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="l2fsutil" supported="no">
|
||||
<description>Econet Level 2 Fileserver Software</description>
|
||||
<year>1985</year>
|
||||
|
@ -12,13 +12,13 @@
|
||||
|
||||
<software name="coprosup" supported="no">
|
||||
<description>BBC Master 65C102 Co-Processor Support Disc</description>
|
||||
<year>1983</year>
|
||||
<year>1986</year>
|
||||
<publisher>Acorn Computers</publisher>
|
||||
<info name="format" value="DFS" />
|
||||
<info name="compatibility" value="65C102 co-processor" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102400">
|
||||
<rom name="bbcmaster65c102coprocessorsupportdisc.ssd" size="102400" crc="f6378bb4" sha1="03bfe9e860ecc6117f2e78771c4e301751269055" offset="0" />
|
||||
<rom name="65C102SupportDisc.ssd" size="102400" crc="f6378bb4" sha1="03bfe9e860ecc6117f2e78771c4e301751269055" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -27,8 +27,8 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="airline">
|
||||
<description>Airline</description>
|
||||
<software name="airlinea">
|
||||
<description>Airline (Model A)</description>
|
||||
<year>1983</year>
|
||||
<publisher>CCS</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
|
@ -451,7 +451,7 @@
|
||||
<software name="advxanad">
|
||||
<description>Adventurescape - Lost in Xanadu</description>
|
||||
<year>1985</year>
|
||||
<publisher>AB</publisher>
|
||||
<publisher>A&B Computing</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="11679">
|
||||
<rom name="adventurescape-lostinxanadu(ab).uef" size="11679" crc="de5f5c72" sha1="61a27f624965a5ac8f3496d06b5eea4c0a474e9e" offset="0" />
|
||||
@ -493,8 +493,8 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="airline">
|
||||
<description>Airline</description>
|
||||
<software name="airlineb">
|
||||
<description>Airline (Model B)</description>
|
||||
<year>1983</year>
|
||||
<publisher>CCS</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
@ -1008,7 +1008,7 @@
|
||||
</software>
|
||||
|
||||
<software name="axeofkol">
|
||||
<description>The Axe of Kolt</description>
|
||||
<description>Axe of Kolt</description>
|
||||
<year>1987</year>
|
||||
<publisher>Elk Adventure Club</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
@ -1599,7 +1599,7 @@
|
||||
|
||||
<software name="bombbaro">
|
||||
<description>Bomber Baron</description>
|
||||
<year>198?</year>
|
||||
<year>1986</year>
|
||||
<publisher>Optyx</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="4997">
|
||||
@ -1791,8 +1791,8 @@
|
||||
|
||||
<software name="bridgema">
|
||||
<description>Bridge Master</description>
|
||||
<year>19??</year>
|
||||
<publisher>J Keyne</publisher>
|
||||
<year>1983</year>
|
||||
<publisher>J.Keyne</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
<feature name="part_id" value="Tape A"/>
|
||||
<dataarea name="cass" size="5041">
|
||||
@ -4958,7 +4958,7 @@
|
||||
<software name="froggy">
|
||||
<description>Froggy</description>
|
||||
<year>198?</year>
|
||||
<publisher>JSD</publisher>
|
||||
<publisher>JSD Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="5050">
|
||||
<rom name="froggy(jsd).uef" size="5050" crc="11aa8f36" sha1="5e6d666481369cad82f942485d3a45f4ad1ee444" offset="0" />
|
||||
@ -6939,8 +6939,8 @@
|
||||
|
||||
<software name="keyjoyc">
|
||||
<description>Keyboard to Joystick Convertor</description>
|
||||
<year>198?</year>
|
||||
<publisher>Bud</publisher>
|
||||
<year>1984</year>
|
||||
<publisher>Bud Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="1897">
|
||||
<rom name="keyboardtojoystickconvertor(bud).uef" size="1897" crc="7be6da58" sha1="e673bb5a20f9a4f7d945ce50b1ae29e01fb48f50" offset="0" />
|
||||
@ -7073,7 +7073,7 @@
|
||||
</software>
|
||||
|
||||
<software name="knowpsiq">
|
||||
<description>Know Your Own Personality</description>
|
||||
<description>Know Your Own PSI-Q</description>
|
||||
<year>1984</year>
|
||||
<publisher>Mirrorsoft</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
@ -8389,7 +8389,7 @@
|
||||
<software name="multibas">
|
||||
<description>Multi Base</description>
|
||||
<year>198?</year>
|
||||
<publisher>GSoft</publisher>
|
||||
<publisher>G.Soft Micro Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="6083">
|
||||
<rom name="multibase(gsoft).uef" size="6083" crc="2bb6b216" sha1="98a41974fef1a627b9074511d6776ea5f8eb9604" offset="0" />
|
||||
@ -8802,7 +8802,7 @@
|
||||
|
||||
<software name="osprey">
|
||||
<description>Osprey!</description>
|
||||
<year>198?</year>
|
||||
<year>1984</year>
|
||||
<publisher>Bourne Educational Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="7916">
|
||||
@ -9168,8 +9168,8 @@
|
||||
|
||||
<software name="pilgrims">
|
||||
<description>Pilgrims Progress</description>
|
||||
<year>198?</year>
|
||||
<publisher>Su</publisher>
|
||||
<year>1984</year>
|
||||
<publisher>Scripture Union</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="16608">
|
||||
<rom name="pilgrimsprogress(su).uef" size="16608" crc="e398ab12" sha1="2e3e44a37425eefbf8dcfcd5498d9d6bf5b096bd" offset="0" />
|
||||
@ -9627,7 +9627,7 @@
|
||||
|
||||
<software name="plinkjoy">
|
||||
<description>ProLink Joystick Software</description>
|
||||
<year>198?</year>
|
||||
<year>1983</year>
|
||||
<publisher>Aztec</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="1204">
|
||||
@ -10696,7 +10696,7 @@
|
||||
|
||||
<software name="scrabble">
|
||||
<description>Scrabble</description>
|
||||
<year>198?</year>
|
||||
<year>1984</year>
|
||||
<publisher>Leisure Genius</publisher>
|
||||
<info name="usage" value="Load with *RUN" />
|
||||
<part name="cass" interface="bbc_cass">
|
||||
@ -12605,7 +12605,7 @@
|
||||
|
||||
<software name="sys15000">
|
||||
<description>System 15000 2nd Edition</description>
|
||||
<year>198?</year>
|
||||
<year>1984</year>
|
||||
<publisher>AVS</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="14846">
|
||||
@ -12840,8 +12840,8 @@
|
||||
|
||||
<software name="textedit">
|
||||
<description>Text Editor</description>
|
||||
<year>198?</year>
|
||||
<publisher>GSoft</publisher>
|
||||
<year>1983</year>
|
||||
<publisher>G.Soft Micro Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="3704">
|
||||
<rom name="texteditor(gsoft).uef" size="3704" crc="d53b31be" sha1="bc78da4c6f8ee3aee94fad0d72520a826d4a6625" offset="0" />
|
||||
@ -13057,7 +13057,7 @@
|
||||
|
||||
<software name="intercit">
|
||||
<description>The Inter-City</description>
|
||||
<year>198?</year>
|
||||
<year>1988</year>
|
||||
<publisher>SRS</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="13173">
|
||||
@ -13350,7 +13350,7 @@
|
||||
<year>1983</year>
|
||||
<publisher>Gemini</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
<feature name="part_id" value="Accordian"/>
|
||||
<feature name="part_id" value="Accordion"/>
|
||||
<dataarea name="cass" size="2672">
|
||||
<rom name="tg-accordian_be(1983)(gemini).uef" size="2672" crc="3a620f75" sha1="5c1fda51b7d6211cf87a6f8f3a1ca0878bb7ad61" offset="0" />
|
||||
</dataarea>
|
||||
@ -14255,7 +14255,7 @@
|
||||
|
||||
<software name="willconq">
|
||||
<description>William the Conqueror</description>
|
||||
<year>198?</year>
|
||||
<year>1984</year>
|
||||
<publisher>Molimerx</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="12863">
|
||||
@ -14809,8 +14809,8 @@
|
||||
|
||||
<software name="spreadsh">
|
||||
<description>The Spreadsheet</description>
|
||||
<year>198?</year>
|
||||
<publisher>Microl</publisher>
|
||||
<year>1983</year>
|
||||
<publisher>MiCROL</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="7944">
|
||||
<rom name="thespreadsheet(microl).uef" size="7944" crc="1e5fa9ee" sha1="63dba2668ad469d1b97e127053b6701d090a15ca" offset="0" />
|
||||
@ -15302,7 +15302,7 @@
|
||||
|
||||
<software name="happynum">
|
||||
<description>Happy Numbers</description>
|
||||
<year>198?</year>
|
||||
<year>1983</year>
|
||||
<publisher>Bourne Educational Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="4676">
|
||||
@ -15414,7 +15414,7 @@
|
||||
|
||||
<software name="maprally">
|
||||
<description>Map Rally</description>
|
||||
<year>198?</year>
|
||||
<year>1983</year>
|
||||
<publisher>Bourne Educational Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="6957">
|
||||
@ -15656,7 +15656,7 @@
|
||||
|
||||
<software name="timeman2">
|
||||
<description>Timeman Two</description>
|
||||
<year>198?</year>
|
||||
<year>1983</year>
|
||||
<publisher>Bourne Educational Software</publisher>
|
||||
<part name="cass" interface="bbc_cass">
|
||||
<dataarea name="cass" size="6802">
|
||||
@ -15920,7 +15920,7 @@
|
||||
|
||||
<software name="amxart">
|
||||
<description>AMX Art</description>
|
||||
<year>198?</year>
|
||||
<year>1984</year>
|
||||
<publisher>Advanced Memory Systems</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
<feature name="part_id" value="Side 1"/>
|
||||
@ -16175,6 +16175,42 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tmspack1">
|
||||
<description>The Music System: Cassette Pack 1</description>
|
||||
<year>1984</year>
|
||||
<publisher>Island Logic</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
<feature name="part_id" value="Synthesiser - Keyboard"/>
|
||||
<dataarea name="cass" size="39518">
|
||||
<rom name="The Music System (Island Logic) (B) (Tape) [Tape1-Side1].hq.uef" size="39518" crc="4a8c5c3e" sha1="5ea92f5e6b5756afad55227cf3d387214ed91feb" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="cass2" interface="bbc_cass">
|
||||
<feature name="part_id" value="Song & Sound Library"/>
|
||||
<dataarea name="cass" size="1734">
|
||||
<rom name="The Music System (Island Logic) (B) (Tape) [Tape1-Side2].hq.uef" size="1734" crc="8c6a404d" sha1="df1373a2b4f9ba08d1f59f28b4771142fb5a4594" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="tmspack2">
|
||||
<description>The Music System: Cassette Pack 2</description>
|
||||
<year>1984</year>
|
||||
<publisher>Island Logic</publisher>
|
||||
<part name="cass1" interface="bbc_cass">
|
||||
<feature name="part_id" value="Editor - Printout"/>
|
||||
<dataarea name="cass" size="37616">
|
||||
<rom name="The Music System (Island Logic) (B) (Tape) [Tape2-Side1].hq.uef" size="37616" crc="7ce07153" sha1="6e34072305d0b1ab7811290d04c227389420f653" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="cass2" interface="bbc_cass">
|
||||
<feature name="part_id" value="Song & Sound Library"/>
|
||||
<dataarea name="cass" size="14602">
|
||||
<rom name="The Music System (Island Logic) (B) (Tape) [Tape2-Side2].hq.uef" size="14602" crc="948c8cfe" sha1="bdf21dfa6f38df426d8d6d816fb8c1229ff49dc5" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Magazines -->
|
||||
|
||||
<software name="acornu42">
|
||||
|
@ -1679,7 +1679,7 @@
|
||||
</software>
|
||||
|
||||
<software name="tmsys86" cloneof="tmsys">
|
||||
<description>The Music System (1986)</description>
|
||||
<description>The Music System (BBC B/Master Series)</description>
|
||||
<year>1986</year>
|
||||
<publisher>Island Logic</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
@ -3432,32 +3432,33 @@
|
||||
</software>
|
||||
|
||||
<software name="farmman">
|
||||
<description>Farm Management Suite</description>
|
||||
<year>198?</year>
|
||||
<description>Farm Management Package</description>
|
||||
<year>1986</year>
|
||||
<publisher>Acornsoft</publisher>
|
||||
<info name="release" value="SNX05" />
|
||||
<info name="protection" value="None" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="FarmCash Setup"/>
|
||||
<dataarea name="flop" size="204800">
|
||||
<rom name="240 farmcash.ssd" size="204800" crc="ba011313" sha1="5f502b669b83dd80ef524addc75875b946ae0121" offset="0" />
|
||||
<feature name="part_id" value="FarmCash V1.3 Master Disc"/>
|
||||
<dataarea name="flop" size="409600">
|
||||
<rom name="FarmCash.ssd" size="409600" crc="d3dda956" sha1="982003ffcf936d5c78bd58d936415845580ec1b2" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="FieldFile Setup"/>
|
||||
<dataarea name="flop" size="204800">
|
||||
<rom name="241 fieldfile.ssd" size="204800" crc="61938782" sha1="50ede0e4380043268a9b010587a4bdb5285ea0f2" offset="0" />
|
||||
<feature name="part_id" value="FieldFile V1.3 Master Disc"/>
|
||||
<dataarea name="flop" size="409600">
|
||||
<rom name="FieldFile.ssd" size="409600" crc="ad6281b5" sha1="0367fd795837eabbefb4f5ff17249ccfed0b5375" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop3" interface="floppy_5_25">
|
||||
<feature name="part_id" value="CapCost Setup"/>
|
||||
<dataarea name="flop" size="204800">
|
||||
<rom name="242 capcost.ssd" size="204800" crc="78f00286" sha1="d747ca27c7490c7638870a099e7660d623eaf54e" offset="0" />
|
||||
<feature name="part_id" value="CapCost V1.3 Master Disc"/>
|
||||
<dataarea name="flop" size="409600">
|
||||
<rom name="CapCost.ssd" size="409600" crc="a0b4988d" sha1="257cb404e950e3db56be3707f7735044f281f395" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop4" interface="floppy_5_25">
|
||||
<feature name="part_id" value="FarmPlanner Setup"/>
|
||||
<dataarea name="flop" size="204800">
|
||||
<rom name="243 farmplanner.ssd" size="204800" crc="142493ad" sha1="3dc58f3d23893f9a926858ff16edf3418ba1b0fd" offset="0" />
|
||||
<feature name="part_id" value="FarmPlanner V1.3 Master Disc"/>
|
||||
<dataarea name="flop" size="409600">
|
||||
<rom name="FarmPlanner.ssd" size="409600" crc="718c2f28" sha1="26022cd451649eca19f9a3b780f59749d38432b9" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -3521,7 +3522,7 @@
|
||||
|
||||
<software name="dinodisc">
|
||||
<description>Dinosaur Discovery</description>
|
||||
<year>198?</year>
|
||||
<year>1986</year>
|
||||
<publisher>4mation</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="102506">
|
||||
@ -3727,7 +3728,7 @@
|
||||
|
||||
<software name="happynum">
|
||||
<description>Happy Numbers</description>
|
||||
<year>198?</year>
|
||||
<year>1983</year>
|
||||
<publisher>Bourne Educational Software</publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="15829">
|
||||
|
@ -10,10 +10,22 @@
|
||||
|
||||
<softwarelist name="bbcmc_flop" description="BBC Master Compact disks">
|
||||
|
||||
<software name="alps24">
|
||||
<description>ALPS - Adventure Language Programming System</description>
|
||||
<year>1988</year>
|
||||
<publisher>Alpine Software</publisher>
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="655360">
|
||||
<rom name="alps24.adl" size="655360" crc="82b20916" sha1="fcf1c0290afb523cbab11069373fef28478b1ad3" offset="0"/>
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="elite">
|
||||
<description>Elite</description>
|
||||
<year>1986</year>
|
||||
<publisher>Superior Software/Acornsoft</publisher>
|
||||
<info name="release" value="SUG60" />
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="327680">
|
||||
<rom name="elite.adm" size="327680" crc="4668a225" sha1="0716a525820045f6b2092dda2eca2fa6a651b381" offset="0"/>
|
||||
@ -22,7 +34,7 @@
|
||||
</software>
|
||||
|
||||
<software name="welcome">
|
||||
<description>BBC Master Compact Welcome Disc</description>
|
||||
<description>Welcome & Utilities Disc for Master Compact</description>
|
||||
<year>1986</year>
|
||||
<publisher>Acorn</publisher>
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -2534,12 +2534,13 @@ ExtractDisk [02]"SAGA#1 " -> "adventure land_02.d88"
|
||||
<publisher>日本テレネット (Nihon Telenet)</publisher>
|
||||
<info name="alt_title" value="アメリカントラック"/>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="348880"> <!-- Data CRC16: 52018 -->
|
||||
<rom name="american truck.d88" size="348880" crc="ba06603f" sha1="dadf23cef4e56b692218f11d21f3013482258c9b" offset="0" />
|
||||
<dataarea name="flop" size="361824"> <!-- Data CRC16: 5929 -->
|
||||
<rom name="american truck mkii.d88" size="361824" crc="d19e7d4b" sha1="76890050eb3682f9a78eff503d3dff0f10d7d0b8" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- Identical except has 0x10 00 added after the header -->
|
||||
<software name="amtrucka" cloneof="amtruck">
|
||||
<description>American Truck (Alt)</description>
|
||||
<year>1985</year>
|
||||
@ -2558,8 +2559,8 @@ ExtractDisk [02]"SAGA#1 " -> "adventure land_02.d88"
|
||||
<publisher>日本テレネット (Nihon Telenet)</publisher>
|
||||
<info name="alt_title" value="アメリカントラック mkⅡ版"/>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="361824"> <!-- Data CRC16: 5929 -->
|
||||
<rom name="american truck mkii.d88" size="361824" crc="d19e7d4b" sha1="76890050eb3682f9a78eff503d3dff0f10d7d0b8" offset="0" />
|
||||
<dataarea name="flop" size="348880"> <!-- Data CRC16: 52018 -->
|
||||
<rom name="american truck.d88" size="348880" crc="ba06603f" sha1="dadf23cef4e56b692218f11d21f3013482258c9b" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -651,6 +651,19 @@ Published by Others (T-yyy*** serial codes, for yyy depending on the publisher)
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="cookpico">
|
||||
<description>Cooking Pico (Jpn)</description>
|
||||
<year>1999</year>
|
||||
<publisher>Sega Toys</publisher>
|
||||
<part name="cart" interface="pico_cart">
|
||||
<feature name="pcb" value="171-7967" />
|
||||
<feature name="ic1" value="9K0-0001A-RV" />
|
||||
<dataarea name="rom" size="2097152">
|
||||
<rom name="9k0-0001a-rv.ic1" size="2097152" crc="b94f7d54" sha1="dabeb440adbb7477cc880c51fb0cfc1e5f99d23b" offset="000000" loadflag="load16_word_swap" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="crayola">
|
||||
<description>Crayola - Create a World (USA)</description>
|
||||
<year>19??</year>
|
||||
|
@ -285,6 +285,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="welcome">
|
||||
<description>Disco Welcome</description>
|
||||
<year>1987</year>
|
||||
<publisher>Olivetti Prodest</publisher>
|
||||
<part name="flop1" interface="floppy_3_5">
|
||||
<dataarea name="flop" size="655360">
|
||||
<rom name="welcome_pro128s.adl" size="655360" crc="e78fb5ce" sha1="d665a47d62ba7c55bc2cf05c635ebb6fe26f251f" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="xor">
|
||||
<description>XOR (Ita)</description>
|
||||
<year>1987</year>
|
||||
|
@ -17,6 +17,19 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="doraedbl">
|
||||
<description>Doraemon Nobita no Dou Butsu Land</description>
|
||||
<year>1996</year>
|
||||
<publisher>Sega</publisher>
|
||||
<part name="cart" interface="sawatte_cart">
|
||||
<feature name="pcb" value="171-7323A" />
|
||||
<feature name="ic1" value="MPR-19040" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="mpr-19040.ic1" size="524288" crc="0c9bae2f" sha1="bc5030fab99e8f4b1bcc8ed77c1cc07d8407df93" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="mickkuda">
|
||||
<description>Mickey no Kudamonoya-san</description>
|
||||
<year>1996</year>
|
||||
@ -77,7 +90,20 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="micknatk">
|
||||
<software name="soreike">
|
||||
<description>Soreike! Anpanman Onamae Na~ni</description>
|
||||
<year>1996</year>
|
||||
<publisher>Sega</publisher>
|
||||
<part name="cart" interface="sawatte_cart">
|
||||
<feature name="pcb" value="171-7323A" />
|
||||
<feature name="ic1" value="MPR-19041" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="mpr-19041.ic1" size="524288" crc="ec924165" sha1="b25a5637c8cc1f2f6224595853d540195be86ec9" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="micknatk">
|
||||
<description>Tokyo Disneyland - Mickey no Nakayoshi Tankentai</description>
|
||||
<year>1998</year>
|
||||
<publisher>Sega?</publisher>
|
||||
@ -122,4 +148,17 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="uht">
|
||||
<description>Ultra Hero Touch</description>
|
||||
<year>1997</year>
|
||||
<publisher>Bandai</publisher>
|
||||
<part name="cart" interface="sawatte_cart">
|
||||
<feature name="pcb" value="171-7323A" />
|
||||
<feature name="ic1" value="MPR-19828-T" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="mpr-19828-t.ic1" size="524288" crc="57988dc7" sha1="438a35b2a46ec82b5e31478d9e244928f98891ab" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</softwarelist>
|
||||
|
@ -1,69 +1,152 @@
|
||||
#!/usr/bin/python
|
||||
##
|
||||
## license:BSD-3-Clause
|
||||
## copyright-holders:Aaron Giles, Andrew Gardner
|
||||
## copyright-holders:Vas Crabb
|
||||
|
||||
from __future__ import with_statement
|
||||
|
||||
import sys
|
||||
import os
|
||||
import sys
|
||||
import xml.sax
|
||||
import xml.sax.saxutils
|
||||
import zlib
|
||||
|
||||
if len(sys.argv) < 4:
|
||||
print('Usage:')
|
||||
print(' complay <source.lay> <output.h> <varname>')
|
||||
print('')
|
||||
sys.exit(0)
|
||||
|
||||
srcfile = sys.argv[1]
|
||||
dstfile = sys.argv[2]
|
||||
varname = sys.argv[3]
|
||||
type = 'uint8_t'
|
||||
class ErrorHandler(object):
|
||||
def __init__(self, **kwargs):
|
||||
super(ErrorHandler, self).__init__(**kwargs)
|
||||
self.errors = 0
|
||||
self.warnings = 0
|
||||
|
||||
try:
|
||||
myfile = open(srcfile, 'rb')
|
||||
except IOError:
|
||||
sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
|
||||
sys.exit(-1)
|
||||
def error(self, exception):
|
||||
self.errors += 1
|
||||
sys.stderr.write('error: %s' % (exception))
|
||||
|
||||
byteCount = os.path.getsize(srcfile)
|
||||
compsize = 0
|
||||
compressiontype = 1
|
||||
def fatalError(self, exception):
|
||||
raise exception
|
||||
|
||||
try:
|
||||
dst = open(dstfile,'w')
|
||||
dst.write('const %s %s_data[] =\n{\n\t' % ( type, varname))
|
||||
offs = 0
|
||||
with open(srcfile, "rb") as src:
|
||||
while True:
|
||||
chunk = src.read(byteCount)
|
||||
if chunk:
|
||||
compchunk = bytearray(zlib.compress(chunk, 9))
|
||||
compsize = len(compchunk)
|
||||
for b in compchunk:
|
||||
dst.write('%d' % b)
|
||||
offs += 1
|
||||
if offs != compsize:
|
||||
dst.write(',')
|
||||
def warning(self, exception):
|
||||
self.warnings += 1
|
||||
sys.stderr.write('warning: %s' % (exception))
|
||||
|
||||
|
||||
class Minifyer(object):
|
||||
def __init__(self, output, **kwargs):
|
||||
super(Minifyer, self).__init__(**kwargs)
|
||||
|
||||
self.output = output
|
||||
self.incomplete_tag = False
|
||||
self.element_content = ''
|
||||
|
||||
def setDocumentLocator(self, locator):
|
||||
pass
|
||||
|
||||
def startDocument(self):
|
||||
self.output('<?xml version="1.0"?>')
|
||||
|
||||
def endDocument(self):
|
||||
self.output('\n')
|
||||
|
||||
def startElement(self, name, attrs):
|
||||
self.flushElementContent()
|
||||
if self.incomplete_tag:
|
||||
self.output('>')
|
||||
self.output('<%s' % (name))
|
||||
for name in attrs.getNames():
|
||||
self.output(' %s=%s' % (name, xml.sax.saxutils.quoteattr(attrs[name])))
|
||||
self.incomplete_tag = True
|
||||
|
||||
def endElement(self, name):
|
||||
self.flushElementContent()
|
||||
if self.incomplete_tag:
|
||||
self.output('/>')
|
||||
else:
|
||||
self.output('</%s>' % (name))
|
||||
self.incomplete_tag = False
|
||||
|
||||
def characters(self, content):
|
||||
self.element_content += content
|
||||
|
||||
def ignorableWhitespace(self, whitespace):
|
||||
pass
|
||||
|
||||
def processingInstruction(self, target, data):
|
||||
pass
|
||||
|
||||
def flushElementContent(self):
|
||||
self.element_content = self.element_content.strip()
|
||||
if self.element_content:
|
||||
if self.incomplete_tag:
|
||||
self.output('>')
|
||||
self.incomplete_tag = False
|
||||
self.output(xml.sax.saxutils.escape(self.element_content))
|
||||
self.element_content = ''
|
||||
|
||||
|
||||
class XmlError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def compressLayout(src, dst, comp):
|
||||
state = [0, 0]
|
||||
def write(block):
|
||||
for ch in bytearray(block):
|
||||
if 0 == state[0]:
|
||||
dst('\t')
|
||||
elif 0 == (state[0] % 32):
|
||||
dst(',\n\t')
|
||||
else:
|
||||
break
|
||||
dst.write('\n\t')
|
||||
dst(', ')
|
||||
state[0] += 1
|
||||
dst('%3u' % (ch))
|
||||
|
||||
dst.write('\n};\n')
|
||||
def output(text):
|
||||
block = text.encode('UTF-8')
|
||||
state[1] += len(block)
|
||||
write(comp.compress(block))
|
||||
|
||||
except IOError:
|
||||
sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
|
||||
sys.exit(-1)
|
||||
error_handler = ErrorHandler()
|
||||
content_handler = Minifyer(output)
|
||||
parser = xml.sax.make_parser()
|
||||
parser.setErrorHandler(error_handler)
|
||||
parser.setContentHandler(content_handler)
|
||||
try:
|
||||
parser.parse(src)
|
||||
write(comp.flush())
|
||||
dst('\n')
|
||||
except xml.sax.SAXException as exception:
|
||||
print('fatal error: %s' % (exception))
|
||||
raise XmlError('Fatal error parsing XML')
|
||||
if (error_handler.errors > 0) or (error_handler.warnings > 0):
|
||||
raise XmlError('Error(s) and/or warning(s) parsing XML')
|
||||
|
||||
try:
|
||||
dst.write('extern const internal_layout %s;\n' % ( varname ))
|
||||
dst.write('const internal_layout %s = { \n\t' % ( varname ))
|
||||
dst.write('%d,%d,%d,%s_data\n' % ( byteCount, compsize, compressiontype, varname ))
|
||||
dst.write('\n};\n')
|
||||
return state[1], state[0]
|
||||
|
||||
|
||||
dst.close()
|
||||
except IOError:
|
||||
sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
|
||||
sys.exit(-1)
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 4:
|
||||
print('Usage:')
|
||||
print(' complay <source.lay> <output.h> <varname>')
|
||||
sys.exit(0 if len(sys.argv) <= 1 else 1)
|
||||
|
||||
srcfile = sys.argv[1]
|
||||
dstfile = sys.argv[2]
|
||||
varname = sys.argv[3]
|
||||
|
||||
comp_type = 1
|
||||
try:
|
||||
dst = open(dstfile,'w')
|
||||
dst.write('static const unsigned char %s_data[] = {\n' % (varname))
|
||||
byte_count, comp_size = compressLayout(srcfile, lambda x: dst.write(x), zlib.compressobj())
|
||||
dst.write('};\n\n')
|
||||
dst.write('const internal_layout %s = {\n' % (varname))
|
||||
dst.write('\t%d, sizeof(%s_data), %d, %s_data\n' % (byte_count, varname, comp_type, varname))
|
||||
dst.write('};\n')
|
||||
dst.close()
|
||||
except XmlError:
|
||||
dst.close()
|
||||
os.remove(dstfile)
|
||||
sys.exit(2)
|
||||
except IOError:
|
||||
sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
|
||||
os.remove(dstfile)
|
||||
dst.close()
|
||||
sys.exit(3)
|
||||
|
@ -11,7 +11,7 @@ import sys
|
||||
|
||||
def parse_args():
|
||||
def usage():
|
||||
sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume|ldplayer] [-r|-p] [-o <outfile>] <srcfile>\n')
|
||||
sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume] [-r|-p] [-o <outfile>] <srcfile>\n')
|
||||
sys.exit(1)
|
||||
|
||||
flags = True
|
||||
|
@ -413,7 +413,7 @@ end
|
||||
MAME_DIR .. "3rdparty/lzma/C/BraIA64.c",
|
||||
MAME_DIR .. "3rdparty/lzma/C/CpuArch.c",
|
||||
MAME_DIR .. "3rdparty/lzma/C/Delta.c",
|
||||
MAME_DIR .. "3rdparty/lzma/C/DllSecur.c",
|
||||
-- MAME_DIR .. "3rdparty/lzma/C/DllSecur.c",
|
||||
MAME_DIR .. "3rdparty/lzma/C/LzFind.c",
|
||||
-- MAME_DIR .. "3rdparty/lzma/C/LzFindMt.c",
|
||||
MAME_DIR .. "3rdparty/lzma/C/Lzma2Dec.c",
|
||||
|
@ -2919,8 +2919,9 @@ end
|
||||
if (BUSES["HP9845_IO"]~=null) then
|
||||
files {
|
||||
MAME_DIR .. "src/devices/bus/hp9845_io/hp9845_io.cpp",
|
||||
MAME_DIR .. "src/devices/bus/hp9845_io/98035.cpp"
|
||||
}
|
||||
MAME_DIR .. "src/devices/bus/hp9845_io/98034.cpp",
|
||||
MAME_DIR .. "src/devices/bus/hp9845_io/98035.cpp",
|
||||
}
|
||||
end
|
||||
|
||||
---------------------------------------------------
|
||||
|
@ -100,35 +100,3 @@ project "utils"
|
||||
MAME_DIR .. "src/lib/util/zippath.cpp",
|
||||
MAME_DIR .. "src/lib/util/zippath.h",
|
||||
}
|
||||
|
||||
|
||||
project "http"
|
||||
uuid "d7930d44-21d1-4c5d-b6af-582c141cd23a"
|
||||
kind (LIBTYPE)
|
||||
|
||||
addprojectflags()
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "3rdparty",
|
||||
MAME_DIR .. "3rdparty/asio/include",
|
||||
MAME_DIR .. "src/osd",
|
||||
}
|
||||
|
||||
files {
|
||||
MAME_DIR .. "src/lib/http/connection.cpp",
|
||||
MAME_DIR .. "src/lib/http/connection.hpp",
|
||||
MAME_DIR .. "src/lib/http/connection_manager.cpp",
|
||||
MAME_DIR .. "src/lib/http/connection_manager.hpp",
|
||||
MAME_DIR .. "src/lib/http/header.hpp",
|
||||
MAME_DIR .. "src/lib/http/mime_types.cpp",
|
||||
MAME_DIR .. "src/lib/http/mime_types.hpp",
|
||||
MAME_DIR .. "src/lib/http/reply.cpp",
|
||||
MAME_DIR .. "src/lib/http/reply.hpp",
|
||||
MAME_DIR .. "src/lib/http/request.hpp",
|
||||
MAME_DIR .. "src/lib/http/request_handler.cpp",
|
||||
MAME_DIR .. "src/lib/http/request_handler.hpp",
|
||||
MAME_DIR .. "src/lib/http/request_parser.cpp",
|
||||
MAME_DIR .. "src/lib/http/request_parser.hpp",
|
||||
MAME_DIR .. "src/lib/http/server.cpp",
|
||||
MAME_DIR .. "src/lib/http/server.hpp",
|
||||
}
|
||||
|
@ -234,7 +234,6 @@ end
|
||||
if (STANDALONE~=true) then
|
||||
links {
|
||||
"frontend",
|
||||
"http",
|
||||
}
|
||||
end
|
||||
if (MACHINES["NETLIST"]~=null) then
|
||||
|
@ -1,88 +0,0 @@
|
||||
-- license:BSD-3-Clause
|
||||
-- copyright-holders:MAMEdev Team
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
--
|
||||
-- ldplayer.lua
|
||||
--
|
||||
-- Small makefile to build a standalone laserdisc player
|
||||
--
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify required CPU cores (none)
|
||||
--------------------------------------------------
|
||||
|
||||
CPUS["MCS48"] = true
|
||||
CPUS["Z80"] = true
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify required sound cores
|
||||
--------------------------------------------------
|
||||
|
||||
SOUNDS["WAVE"] = true
|
||||
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available video cores
|
||||
--------------------------------------------------
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available machine cores
|
||||
--------------------------------------------------
|
||||
|
||||
MACHINES["LDV1000"] = true
|
||||
MACHINES["LDPR8210"] = true
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available bus cores
|
||||
--
|
||||
-- MIDI is here as dummy bus to allow libbus.a to
|
||||
-- be created on OSX.
|
||||
--------------------------------------------------
|
||||
|
||||
BUSES["MIDI"] = true
|
||||
|
||||
--------------------------------------------------
|
||||
-- this is the list of driver libraries that
|
||||
-- comprise MAME plus mamedriv.o which contains
|
||||
-- the list of drivers
|
||||
--------------------------------------------------
|
||||
|
||||
function createProjects_ldplayer_ldplayer(_target, _subtarget)
|
||||
project ("drvldplayer")
|
||||
targetsubdir(_target .."_" .. _subtarget)
|
||||
kind (LIBTYPE)
|
||||
uuid (os.uuid("drvldplayer"))
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "src/osd",
|
||||
MAME_DIR .. "src/emu",
|
||||
MAME_DIR .. "src/devices",
|
||||
MAME_DIR .. "src/mame",
|
||||
MAME_DIR .. "src/lib",
|
||||
MAME_DIR .. "src/lib/util",
|
||||
MAME_DIR .. "3rdparty",
|
||||
GEN_DIR .. "mame/layout",
|
||||
}
|
||||
|
||||
files{
|
||||
MAME_DIR .. "src/emu/drivers/emudummy.cpp",
|
||||
}
|
||||
|
||||
dependency {
|
||||
{ MAME_DIR .. "src/emu/drivers/emudummy.cpp", GEN_DIR .. "ldplayer/layout/pr8210.lh" },
|
||||
}
|
||||
|
||||
custombuildtask {
|
||||
layoutbuildtask("ldplayer/layout", "pr8210"),
|
||||
}
|
||||
end
|
||||
|
||||
function linkProjects_ldplayer_ldplayer(_target, _subtarget)
|
||||
links {
|
||||
"drvldplayer",
|
||||
}
|
||||
end
|
@ -15,6 +15,8 @@
|
||||
|
||||
CPUS["M6502"] = true
|
||||
CPUS["H6280"] = true
|
||||
CPUS["MCS48"] = true
|
||||
CPUS["Z80"] = true
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available sound cores; some of these are
|
||||
@ -37,6 +39,8 @@ SOUNDS["MULTIPCM"] = true
|
||||
SOUNDS["GB_SOUND"] = true
|
||||
SOUNDS["POKEY"] = true
|
||||
SOUNDS["C352"] = true
|
||||
SOUNDS["OKIM6295"] = true
|
||||
SOUNDS["WAVE"] = true
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available video cores
|
||||
@ -46,7 +50,8 @@ SOUNDS["C352"] = true
|
||||
--------------------------------------------------
|
||||
-- specify available machine cores
|
||||
--------------------------------------------------
|
||||
|
||||
MACHINES["LDV1000"] = true
|
||||
MACHINES["LDPR8210"] = true
|
||||
|
||||
--------------------------------------------------
|
||||
-- specify available bus cores
|
||||
@ -78,12 +83,13 @@ function createVirtualProjects(_target, _subtarget, _name)
|
||||
MAME_DIR .. "src/mame",
|
||||
MAME_DIR .. "src/lib",
|
||||
MAME_DIR .. "src/lib/util",
|
||||
MAME_DIR .. "src/lib/netlist",
|
||||
MAME_DIR .. "3rdparty",
|
||||
GEN_DIR .. "mame/layout",
|
||||
}
|
||||
|
||||
includedirs {
|
||||
ext_includedir("zlib"),
|
||||
ext_includedir("flac"),
|
||||
}
|
||||
end
|
||||
|
||||
@ -91,5 +97,6 @@ function createProjects_mame_virtual(_target, _subtarget)
|
||||
createVirtualProjects(_target, _subtarget, "virtual")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/vgmplay.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/ldplayer.cpp",
|
||||
}
|
||||
end
|
||||
|
@ -54,6 +54,7 @@ const device_type BBC_OPUS3 = &device_creator<bbc_opus3_device>;
|
||||
FLOPPY_FORMATS_MEMBER(floppy_formats)
|
||||
FLOPPY_ACORN_SSD_FORMAT,
|
||||
FLOPPY_ACORN_DSD_FORMAT,
|
||||
FLOPPY_ACORN_CPM_FORMAT,
|
||||
FLOPPY_FSD_FORMAT,
|
||||
FLOPPY_OPUS_DDOS_FORMAT
|
||||
FLOPPY_FORMATS_END0
|
||||
|
@ -65,8 +65,10 @@ ROM_START( acorn8271 )
|
||||
// Acorn
|
||||
ROM_SYSTEM_BIOS(0, "dfs090", "Acorn DFS 0.90")
|
||||
ROMX_LOAD("dfs090.rom", 0x0000, 0x2000, CRC(3ce609cf) SHA1(5cc0f14b8f46855c70eaa653cca4ad079b458732), ROM_BIOS(1))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(1, "dfs098", "Acorn DFS 0.98")
|
||||
ROMX_LOAD("dfs098.rom", 0x0000, 0x2000, CRC(90852e7d) SHA1(6df3552d5426f3a4625b9a0c7829bdba03f05e84), ROM_BIOS(2))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(2, "dnfs100", "Acorn DFS 1.00")
|
||||
ROMX_LOAD("dnfs100.rom", 0x0000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0), ROM_BIOS(3))
|
||||
ROM_SYSTEM_BIOS(3, "dnfs120", "Acorn DFS 1.20")
|
||||
@ -74,14 +76,19 @@ ROM_START( acorn8271 )
|
||||
// Pace/Amcom
|
||||
ROM_SYSTEM_BIOS(4, "amdfs0000", "Amcom DFS 00000")
|
||||
ROMX_LOAD("amcomdfs_00000.rom", 0x0000, 0x2000, CRC(28947e95) SHA1(43eb9bfc70bb710e01c0c9d48703ea812f9266e4), ROM_BIOS(5))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(5, "amdfs7259", "Amcom DFS A7259")
|
||||
ROMX_LOAD("amcomdfs_a7259.rom", 0x0000, 0x2000, CRC(a3366a98) SHA1(7b8b08edf5ebf17fcbcfbb2af0c189ac903285c2), ROM_BIOS(6))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(6, "amdfs4084", "Amcom DFS B4084")
|
||||
ROMX_LOAD("amcomdfs_b4084.rom", 0x0000, 0x2000, CRC(487b049b) SHA1(559e056fe77ede2c87a314fcd8d3e2cab2b49b09), ROM_BIOS(7))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(7, "amdfs4088", "Amcom DFS B4088")
|
||||
ROMX_LOAD("amcomdfs_b4088.rom", 0x0000, 0x2000, CRC(3b6e2f82) SHA1(3f5e5039a926c980957f169de2112793eb1a9890), ROM_BIOS(8))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_SYSTEM_BIOS(8, "amdfs4218", "Amcom DFS B4218")
|
||||
ROMX_LOAD("amcomdfs_b4218.rom", 0x0000, 0x2000, CRC(98248af5) SHA1(17986b029d641047555eedc538d6790f0cf911a9), ROM_BIOS(9))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
// Watford Electronics
|
||||
ROM_SYSTEM_BIOS(9, "wdfs110", "Watford Electronics DFS 1.10")
|
||||
ROMX_LOAD("wedfs110.rom", 0x0000, 0x4000, CRC(73c47a91) SHA1(658eb78b104806e76a0e51de9eb238a51daf646d), ROM_BIOS(10))
|
||||
@ -95,7 +102,7 @@ ROM_START( acorn8271 )
|
||||
ROMX_LOAD("wedfs143.rom", 0x0000, 0x4000, CRC(3755ee18) SHA1(69bc258880b8e163ff85a293a25e5f00931d030b), ROM_BIOS(14))
|
||||
ROM_SYSTEM_BIOS(14, "wdfs144", "Watford Electronics DFS 1.44")
|
||||
ROMX_LOAD("wedfs144.rom", 0x0000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5), ROM_BIOS(15))
|
||||
// Business Systems
|
||||
// Computer Users Club
|
||||
ROM_SYSTEM_BIOS(15, "bsdos219", "BS-DOS 2.19")
|
||||
ROMX_LOAD("bs-dos219.rom", 0x0000, 0x4000, CRC(299b17b2) SHA1(175fdcc802a7d94d7c36d6f3fd52a192a7cfbc98), ROM_BIOS(16))
|
||||
ROM_SYSTEM_BIOS(16, "bsdos222", "BS-DOS 2.22")
|
||||
@ -103,11 +110,13 @@ ROM_START( acorn8271 )
|
||||
// Others
|
||||
ROM_SYSTEM_BIOS(17, "cucdos", "C.U.C DOS 1.00")
|
||||
ROMX_LOAD("cucdos.rom", 0x0000, 0x2000, CRC(4adf8ecb) SHA1(ca3c1f9e89799459b6fd5197304129441443ca54), ROM_BIOS(18))
|
||||
ROM_RELOAD( 0x2000, 0x2000)
|
||||
ROM_END
|
||||
|
||||
ROM_START( acorn1770 )
|
||||
ROM_REGION(0x4000, "dfs_rom", 0)
|
||||
ROM_DEFAULT_BIOS("dfs223")
|
||||
// Acorn
|
||||
ROM_SYSTEM_BIOS(0, "dfs210", "Acorn DFS 2.10")
|
||||
ROMX_LOAD("dfs v2.10 (1985)(acorn).bin", 0x0000, 0x4000, CRC(4f828787) SHA1(112a315e1598cb4db2abcfe9d89fcd97444b276d), ROM_BIOS(1))
|
||||
ROM_SYSTEM_BIOS(1, "dfs220", "Acorn DFS 2.20")
|
||||
@ -118,6 +127,11 @@ ROM_START( acorn1770 )
|
||||
ROMX_LOAD("dfs v2.25 (1986)(acorn).bin", 0x0000, 0x4000, CRC(f855a75b) SHA1(f11271748e6303c60182955e5fa478624b616fcf), ROM_BIOS(4))
|
||||
ROM_SYSTEM_BIOS(4, "dfs226", "Acorn DFS 2.26")
|
||||
ROMX_LOAD("dfs v2.26 (1986)(acorn).bin", 0x0000, 0x4000, CRC(5ae33e94) SHA1(cf2ebc422a8d24ec6f1a0320520c38a0e704109a), ROM_BIOS(5))
|
||||
// Advanced Computer Products
|
||||
ROM_SYSTEM_BIOS(5, "acp108", "Advanced 1770 DFS 1.08")
|
||||
ROMX_LOAD("advanced 1770 dfs 1.08 (acp).rom", 0x0000, 0x4000, CRC(eb0eaa34) SHA1(d16ba3c8ed5e5ab6af62aad13a8e567b1c3639c2), ROM_BIOS(6))
|
||||
ROM_SYSTEM_BIOS(6, "acp200", "Advanced 1770 DFS 2.00")
|
||||
ROMX_LOAD("advanced 1770 dfs 2.00 (acp).rom", 0x0000, 0x4000, CRC(65c0d170) SHA1(6907806e2b5b904a6f2041c11f8ccbd298d63ab9), ROM_BIOS(7))
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -225,26 +239,14 @@ void bbc_acorn1770_device::device_reset()
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_acorn8271_device::motor_w)
|
||||
{
|
||||
for (int i = 0; i != 2; i++) {
|
||||
char devname[8];
|
||||
sprintf(devname, "%d", i);
|
||||
floppy_connector *con = m_fdc->subdevice<floppy_connector>(devname);
|
||||
if (con) {
|
||||
con->get_device()->mon_w(!state);
|
||||
}
|
||||
}
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_acorn8271_device::side_w)
|
||||
{
|
||||
for (int i = 0; i != 2; i++) {
|
||||
char devname[8];
|
||||
sprintf(devname, "%d", i);
|
||||
floppy_connector *con = m_fdc->subdevice<floppy_connector>(devname);
|
||||
if (con) {
|
||||
con->get_device()->ss_w(state);
|
||||
}
|
||||
}
|
||||
if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state);
|
||||
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(bbc_acorn8271_device::fdc_intrq_w)
|
||||
@ -265,8 +267,8 @@ WRITE8_MEMBER(bbc_acorn1770_device::wd1770l_write)
|
||||
m_drive_control = data;
|
||||
|
||||
// bit 0, 1: drive select
|
||||
if (BIT(data, 0)) floppy = m_fdc->subdevice<floppy_connector>("0")->get_device();
|
||||
if (BIT(data, 1)) floppy = m_fdc->subdevice<floppy_connector>("1")->get_device();
|
||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
// bit 2: side select
|
||||
|
@ -37,9 +37,7 @@ FLOPPY_FORMATS_MEMBER(floppy_formats)
|
||||
FLOPPY_FORMATS_END0
|
||||
|
||||
SLOT_INTERFACE_START(electron_floppies)
|
||||
SLOT_INTERFACE("35ssdd", FLOPPY_35_SSDD)
|
||||
SLOT_INTERFACE("35dd", FLOPPY_35_DD)
|
||||
SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
|
||||
SLOT_INTERFACE("525sd", FLOPPY_525_SD)
|
||||
SLOT_INTERFACE("525dd", FLOPPY_525_DD)
|
||||
SLOT_INTERFACE("525qd", FLOPPY_525_QD)
|
||||
@ -50,6 +48,7 @@ MACHINE_CONFIG_FRAGMENT( plus3 )
|
||||
/* fdc */
|
||||
MCFG_WD1770_ADD("fdc", XTAL_16MHz / 2)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", electron_floppies, "35dd", floppy_formats)
|
||||
MCFG_SLOT_FIXED(true)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
@ -57,7 +56,7 @@ MACHINE_CONFIG_FRAGMENT( plus3 )
|
||||
/* software lists */
|
||||
MCFG_SOFTWARE_LIST_ADD("flop_ls", "electron_flop")
|
||||
|
||||
// pass-through
|
||||
/* pass-through */
|
||||
MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -66,11 +65,16 @@ ROM_START( plus3 )
|
||||
// Bank 4 Disc
|
||||
ROM_REGION(0x4000, "exp_rom", 0)
|
||||
ROM_DEFAULT_BIOS("adfs")
|
||||
ROM_SYSTEM_BIOS(0, "adfs", "Acorn ADFS")
|
||||
// ADFS
|
||||
ROM_SYSTEM_BIOS(0, "adfs100", "Acorn ADFS 1.00")
|
||||
ROMX_LOAD("adfs.rom", 0x0000, 0x4000, CRC(3289bdc6) SHA1(e7c7a1094d50a3579751df2007269067c8ff6812), ROM_BIOS(1))
|
||||
|
||||
ROM_SYSTEM_BIOS(1, "dfs200", "Advanced 1770 DFS 2.00")
|
||||
ROMX_LOAD("acp_dfs1770_200.rom", 0x0000, 0x4000, CRC(5a3a13c7) SHA1(d5dad7ab5a0237c44d0426cd85a8ec86545747e0), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(1, "adfs113", "PRES ADFS 1.13")
|
||||
ROMX_LOAD("pres_adfs_113.rom", 0x0000, 0x4000, CRC(f06ca04a) SHA1(3c8221d63457c552aa2c9a502db632ce1dea66b4), ROM_BIOS(2))
|
||||
ROM_SYSTEM_BIOS(2, "adfs115", "PRES ADFS 1.15")
|
||||
ROMX_LOAD("pres_adfs_115.rom", 0x0000, 0x4000, CRC(8f81edc3) SHA1(32007425058a7b0f8bd5c17b3c22552aa3a03eca), ROM_BIOS(3))
|
||||
// DFS
|
||||
ROM_SYSTEM_BIOS(3, "dfs200", "Advanced 1770 DFS 2.00")
|
||||
ROMX_LOAD("acp_dfs1770_200.rom", 0x0000, 0x4000, CRC(5a3a13c7) SHA1(d5dad7ab5a0237c44d0426cd85a8ec86545747e0), ROM_BIOS(4))
|
||||
ROM_END
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -115,8 +119,8 @@ void electron_plus3_device::device_start()
|
||||
address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
|
||||
m_slot = dynamic_cast<electron_expansion_slot_device *>(owner());
|
||||
|
||||
space.install_write_handler(0xfcc0, 0xfcc3, WRITE8_DELEGATE(electron_plus3_device, wd1770_status_w));
|
||||
space.install_readwrite_handler(0xfcc4, 0xfccf, READ8_DEVICE_DELEGATE(m_fdc, wd1770_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_t, write));
|
||||
space.install_readwrite_handler(0xfcc0, 0xfcc0, READ8_DELEGATE(electron_plus3_device, wd1770_status_r), WRITE8_DELEGATE(electron_plus3_device, wd1770_status_w));
|
||||
space.install_readwrite_handler(0xfcc4, 0xfcc7, READ8_DEVICE_DELEGATE(m_fdc, wd1770_t, read), WRITE8_DEVICE_DELEGATE(m_fdc, wd1770_t, write));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
@ -133,6 +137,12 @@ void electron_plus3_device::device_reset()
|
||||
// IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
|
||||
READ8_MEMBER(electron_plus3_device::wd1770_status_r)
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(electron_plus3_device::wd1770_status_w)
|
||||
{
|
||||
floppy_image_device *floppy = nullptr;
|
||||
@ -140,8 +150,8 @@ WRITE8_MEMBER(electron_plus3_device::wd1770_status_w)
|
||||
m_drive_control = data;
|
||||
|
||||
// bit 0, 1: drive select
|
||||
if (BIT(data, 0)) floppy = m_fdc->subdevice<floppy_connector>("0")->get_device();
|
||||
if (BIT(data, 1)) floppy = m_fdc->subdevice<floppy_connector>("1")->get_device();
|
||||
if (BIT(data, 0)) floppy = m_floppy0->get_device();
|
||||
if (BIT(data, 1)) floppy = m_floppy1->get_device();
|
||||
m_fdc->set_floppy(floppy);
|
||||
|
||||
// bit 2: side select
|
||||
@ -151,8 +161,6 @@ WRITE8_MEMBER(electron_plus3_device::wd1770_status_w)
|
||||
// bit 3: density
|
||||
m_fdc->dden_w(BIT(data, 3));
|
||||
|
||||
// bit 4: interrupt enable?
|
||||
|
||||
// bit 5: reset
|
||||
if (!BIT(data, 5)) m_fdc->soft_reset();
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ public:
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
DECLARE_READ8_MEMBER(wd1770_status_r);
|
||||
DECLARE_WRITE8_MEMBER(wd1770_status_w);
|
||||
|
||||
protected:
|
||||
|
375
src/devices/bus/hp9845_io/98034.cpp
Normal file
375
src/devices/bus/hp9845_io/98034.cpp
Normal file
@ -0,0 +1,375 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: F. Ulivi
|
||||
/*********************************************************************
|
||||
|
||||
98034.cpp
|
||||
|
||||
98034 module (HPIB interface)
|
||||
|
||||
TODO: Implement Parallel Poll response
|
||||
|
||||
The main reference for this module is:
|
||||
HP 98034-90001, 98034 Installation and Service Manual
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#include "98034.h"
|
||||
#include "coreutil.h"
|
||||
|
||||
// Debugging
|
||||
#define VERBOSE 0
|
||||
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
|
||||
|
||||
#define BIT_MASK(n) (1U << (n))
|
||||
|
||||
// Macros to clear/set single bits
|
||||
#define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n))
|
||||
#define BIT_SET(w , n) ((w) |= BIT_MASK(n))
|
||||
|
||||
hp98034_io_card::hp98034_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: hp9845_io_card_device(mconfig , HP98034_IO_CARD , "HP98034 card" , tag , owner , clock , "hp98034" , __FILE__),
|
||||
m_cpu(*this , "np"),
|
||||
m_sw1(*this , "sw1"),
|
||||
m_ieee488(*this , IEEE488_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
hp98034_io_card::~hp98034_io_card()
|
||||
{
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START(hp98034_port)
|
||||
MCFG_HP9845_IO_SC(7)
|
||||
PORT_START("sw1")
|
||||
PORT_DIPNAME(0x1f , 0x15 , "HPIB address")
|
||||
PORT_DIPLOCATION("S1:1,2,3,4,5")
|
||||
PORT_DIPSETTING(0x00 , "0")
|
||||
PORT_DIPSETTING(0x01 , "1")
|
||||
PORT_DIPSETTING(0x02 , "2")
|
||||
PORT_DIPSETTING(0x03 , "3")
|
||||
PORT_DIPSETTING(0x04 , "4")
|
||||
PORT_DIPSETTING(0x05 , "5")
|
||||
PORT_DIPSETTING(0x06 , "6")
|
||||
PORT_DIPSETTING(0x07 , "7")
|
||||
PORT_DIPSETTING(0x08 , "8")
|
||||
PORT_DIPSETTING(0x09 , "9")
|
||||
PORT_DIPSETTING(0x0a , "10")
|
||||
PORT_DIPSETTING(0x0b , "11")
|
||||
PORT_DIPSETTING(0x0c , "12")
|
||||
PORT_DIPSETTING(0x0d , "13")
|
||||
PORT_DIPSETTING(0x0e , "14")
|
||||
PORT_DIPSETTING(0x0f , "15")
|
||||
PORT_DIPSETTING(0x10 , "16")
|
||||
PORT_DIPSETTING(0x11 , "17")
|
||||
PORT_DIPSETTING(0x12 , "18")
|
||||
PORT_DIPSETTING(0x13 , "19")
|
||||
PORT_DIPSETTING(0x14 , "20")
|
||||
PORT_DIPSETTING(0x15 , "21")
|
||||
PORT_DIPSETTING(0x16 , "22")
|
||||
PORT_DIPSETTING(0x17 , "23")
|
||||
PORT_DIPSETTING(0x18 , "24")
|
||||
PORT_DIPSETTING(0x19 , "25")
|
||||
PORT_DIPSETTING(0x1a , "26")
|
||||
PORT_DIPSETTING(0x1b , "27")
|
||||
PORT_DIPSETTING(0x1c , "28")
|
||||
PORT_DIPSETTING(0x1d , "29")
|
||||
PORT_DIPSETTING(0x1e , "30")
|
||||
PORT_DIPSETTING(0x1f , "31")
|
||||
PORT_DIPNAME(0x20 , 0x00 , "Sys. controller")
|
||||
PORT_DIPLOCATION("S1:6")
|
||||
PORT_DIPSETTING(0x00 , DEF_STR(On))
|
||||
PORT_DIPSETTING(0x20 , DEF_STR(Off))
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor hp98034_io_card::device_input_ports() const
|
||||
{
|
||||
return INPUT_PORTS_NAME(hp98034_port);
|
||||
}
|
||||
|
||||
void hp98034_io_card::device_start()
|
||||
{
|
||||
save_item(NAME(m_dc));
|
||||
save_item(NAME(m_idr));
|
||||
save_item(NAME(m_odr));
|
||||
save_item(NAME(m_force_flg));
|
||||
save_item(NAME(m_mode_reg));
|
||||
save_item(NAME(m_clr_hpib));
|
||||
save_item(NAME(m_ctrl_out));
|
||||
save_item(NAME(m_data_out));
|
||||
}
|
||||
|
||||
void hp98034_io_card::device_reset()
|
||||
{
|
||||
hp9845_io_card_device::device_reset();
|
||||
install_readwrite_handler(read16_delegate(FUNC(hp98034_io_card::reg_r) , this) , write16_delegate(FUNC(hp98034_io_card::reg_w) , this));
|
||||
|
||||
m_idr = 0;
|
||||
m_odr = 0;
|
||||
m_force_flg = false;
|
||||
m_mode_reg = 0xff;
|
||||
m_clr_hpib = false;
|
||||
m_ctrl_out = 0;
|
||||
m_data_out = 0;
|
||||
update_dc();
|
||||
}
|
||||
|
||||
READ16_MEMBER(hp98034_io_card::reg_r)
|
||||
{
|
||||
uint16_t res = m_odr;
|
||||
|
||||
if (offset == 1 || offset == 3) {
|
||||
// Reading from R5 or R7 forces bits 4&5 to 1
|
||||
res |= 0x30;
|
||||
}
|
||||
|
||||
// Mode register
|
||||
// Bits Value
|
||||
// ==========
|
||||
// 7-4 1
|
||||
// 3-2 ~offset
|
||||
// 1-0 1
|
||||
m_mode_reg = (uint8_t)((offset << 2) ^ 0xff);
|
||||
m_force_flg = true;
|
||||
|
||||
update_flg();
|
||||
|
||||
LOG(("read R%u=%04x\n" , offset + 4 , res));
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(hp98034_io_card::reg_w)
|
||||
{
|
||||
m_idr = (uint8_t)data;
|
||||
|
||||
// Mode register
|
||||
// Bits Value
|
||||
// ==========
|
||||
// 7-4 1
|
||||
// 3-2 ~offset
|
||||
// 1 0
|
||||
// 0 1
|
||||
m_mode_reg = (uint8_t)((offset << 2) ^ 0xfd);
|
||||
m_force_flg = true;
|
||||
|
||||
update_flg();
|
||||
LOG(("write R%u=%04x\n" , offset + 4 , data));
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(hp98034_io_card::dc_w)
|
||||
{
|
||||
if (data != m_dc) {
|
||||
//LOG(("DC=%02x\n" , data));
|
||||
m_dc = data;
|
||||
update_dc();
|
||||
}
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::dc_r)
|
||||
{
|
||||
uint8_t res;
|
||||
|
||||
if (m_force_flg) {
|
||||
// Force DC3 low
|
||||
res = 0xf7;
|
||||
} else {
|
||||
res = 0xff;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(hp98034_io_card::hpib_data_w)
|
||||
{
|
||||
m_data_out = data;
|
||||
update_data_out();
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(hp98034_io_card::hpib_ctrl_w)
|
||||
{
|
||||
m_ctrl_out = data;
|
||||
update_ctrl_out();
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::hpib_ctrl_r)
|
||||
{
|
||||
uint8_t res = 0;
|
||||
|
||||
if (!m_ieee488->dav_r()) {
|
||||
BIT_SET(res , 0);
|
||||
}
|
||||
if (!m_ieee488->nrfd_r()) {
|
||||
BIT_SET(res , 1);
|
||||
}
|
||||
if (!m_ieee488->ndac_r()) {
|
||||
BIT_SET(res , 2);
|
||||
}
|
||||
if (!m_ieee488->ifc_r()) {
|
||||
BIT_SET(res , 3);
|
||||
}
|
||||
if (!m_ieee488->atn_r()) {
|
||||
BIT_SET(res , 4);
|
||||
}
|
||||
if (!m_ieee488->srq_r()) {
|
||||
BIT_SET(res , 5);
|
||||
}
|
||||
if (!m_ieee488->ren_r()) {
|
||||
BIT_SET(res , 6);
|
||||
}
|
||||
if (!m_ieee488->eoi_r()) {
|
||||
BIT_SET(res , 7);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::hpib_data_r)
|
||||
{
|
||||
return ~m_ieee488->dio_r();
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::idr_r)
|
||||
{
|
||||
return m_idr;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(hp98034_io_card::odr_w)
|
||||
{
|
||||
m_odr = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::mode_reg_r)
|
||||
{
|
||||
return m_mode_reg;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(hp98034_io_card::mode_reg_clear_w)
|
||||
{
|
||||
m_mode_reg = 0xff;
|
||||
m_force_flg = false;
|
||||
update_flg();
|
||||
}
|
||||
|
||||
READ8_MEMBER(hp98034_io_card::switch_r)
|
||||
{
|
||||
return m_sw1->read() | 0xc0;
|
||||
}
|
||||
|
||||
IRQ_CALLBACK_MEMBER(hp98034_io_card::irq_callback)
|
||||
{
|
||||
int res = 0xff;
|
||||
|
||||
if (irqline == 0 && !m_ieee488->ifc_r()) {
|
||||
BIT_CLR(res, 1);
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(hp98034_io_card::ieee488_ctrl_w)
|
||||
{
|
||||
update_clr_hpib();
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_dc(void)
|
||||
{
|
||||
irq_w(!BIT(m_dc , 0));
|
||||
sts_w(BIT(m_dc , 4));
|
||||
update_flg();
|
||||
update_clr_hpib();
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_flg(void)
|
||||
{
|
||||
flg_w(BIT(m_dc , 3) && !m_force_flg);
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_np_irq(void)
|
||||
{
|
||||
m_cpu->set_input_line(0 , (!m_ieee488->ifc_r() || m_clr_hpib) && BIT(m_dc , HP_NANO_IE_DC));
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_data_out(void)
|
||||
{
|
||||
if (m_clr_hpib) {
|
||||
m_data_out = 0;
|
||||
}
|
||||
m_ieee488->dio_w(~m_data_out);
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_ctrl_out(void)
|
||||
{
|
||||
if (m_clr_hpib) {
|
||||
m_ieee488->dav_w(1);
|
||||
m_ieee488->nrfd_w(1);
|
||||
m_ieee488->eoi_w(1);
|
||||
m_ieee488->ndac_w(0);
|
||||
} else {
|
||||
m_ieee488->dav_w(BIT(m_dc , 2));
|
||||
m_ieee488->nrfd_w(BIT(m_dc , 1));
|
||||
m_ieee488->eoi_w(!BIT(m_ctrl_out , 4));
|
||||
m_ieee488->ndac_w(BIT(m_dc , 6));
|
||||
}
|
||||
m_ieee488->srq_w(!BIT(m_ctrl_out , 0));
|
||||
m_ieee488->ren_w(!BIT(m_ctrl_out , 1));
|
||||
m_ieee488->atn_w(!BIT(m_ctrl_out , 2));
|
||||
m_ieee488->ifc_w(!BIT(m_ctrl_out , 3));
|
||||
}
|
||||
|
||||
void hp98034_io_card::update_clr_hpib(void)
|
||||
{
|
||||
m_clr_hpib = !m_ieee488->atn_r() && BIT(m_dc , 5);
|
||||
update_data_out();
|
||||
update_ctrl_out();
|
||||
update_np_irq();
|
||||
LOG(("clr_hpib %d\n" , m_clr_hpib));
|
||||
}
|
||||
|
||||
ROM_START(hp98034)
|
||||
ROM_REGION(0x400 , "np" , 0)
|
||||
ROM_LOAD("1816-1242.bin" , 0 , 0x400 , CRC(301a9f5f) SHA1(3d7c1ace38c4d3178fdbf764c044535d9f6ac94f))
|
||||
ROM_END
|
||||
|
||||
static ADDRESS_MAP_START(np_program_map , AS_PROGRAM , 8 , hp98034_io_card)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x000 , 0x3ff) AM_ROM AM_REGION("np" , 0)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START(np_io_map , AS_IO , 8 , hp98034_io_card)
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0 , 0) AM_WRITE(hpib_data_w)
|
||||
AM_RANGE(1 , 1) AM_WRITE(hpib_ctrl_w)
|
||||
AM_RANGE(2 , 2) AM_READ(hpib_ctrl_r)
|
||||
AM_RANGE(3 , 3) AM_READ(hpib_data_r)
|
||||
AM_RANGE(4 , 4) AM_READ(idr_r)
|
||||
AM_RANGE(5 , 5) AM_WRITE(odr_w)
|
||||
AM_RANGE(6 , 6) AM_READWRITE(mode_reg_r , mode_reg_clear_w)
|
||||
AM_RANGE(7 , 7) AM_READ(switch_r)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT(hp98034)
|
||||
// Clock for NP is generated by a RC oscillator. Manual says its typical frequency
|
||||
// is around 2 MHz.
|
||||
MCFG_CPU_ADD("np" , HP_NANOPROCESSOR , 2000000)
|
||||
MCFG_CPU_PROGRAM_MAP(np_program_map)
|
||||
MCFG_CPU_IO_MAP(np_io_map)
|
||||
MCFG_HP_NANO_DC_CHANGED(WRITE8(hp98034_io_card , dc_w))
|
||||
MCFG_HP_NANO_READ_DC_CB(READ8(hp98034_io_card , dc_r))
|
||||
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(hp98034_io_card , irq_callback)
|
||||
|
||||
MCFG_IEEE488_BUS_ADD()
|
||||
MCFG_IEEE488_IFC_CALLBACK(WRITELINE(hp98034_io_card , ieee488_ctrl_w))
|
||||
MCFG_IEEE488_ATN_CALLBACK(WRITELINE(hp98034_io_card , ieee488_ctrl_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
const tiny_rom_entry *hp98034_io_card::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(hp98034);
|
||||
}
|
||||
|
||||
machine_config_constructor hp98034_io_card::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME(hp98034);
|
||||
}
|
||||
|
||||
// device type definition
|
||||
const device_type HP98034_IO_CARD = &device_creator<hp98034_io_card>;
|
85
src/devices/bus/hp9845_io/98034.h
Normal file
85
src/devices/bus/hp9845_io/98034.h
Normal file
@ -0,0 +1,85 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: F. Ulivi
|
||||
/*********************************************************************
|
||||
|
||||
98034.h
|
||||
|
||||
98034 module (HPIB interface)
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _98034_H_
|
||||
#define _98034_H_
|
||||
|
||||
#include "hp9845_io.h"
|
||||
#include "cpu/nanoprocessor/nanoprocessor.h"
|
||||
#include "bus/ieee488/ieee488.h"
|
||||
|
||||
class hp98034_io_card : public hp9845_io_card_device
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
hp98034_io_card(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual ~hp98034_io_card();
|
||||
|
||||
// device-level overrides
|
||||
virtual ioport_constructor device_input_ports() const override;
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
virtual machine_config_constructor device_mconfig_additions() const override;
|
||||
|
||||
DECLARE_READ16_MEMBER(reg_r);
|
||||
DECLARE_WRITE16_MEMBER(reg_w);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(dc_w);
|
||||
DECLARE_READ8_MEMBER(dc_r);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(hpib_data_w);
|
||||
DECLARE_WRITE8_MEMBER(hpib_ctrl_w);
|
||||
DECLARE_READ8_MEMBER(hpib_ctrl_r);
|
||||
DECLARE_READ8_MEMBER(hpib_data_r);
|
||||
DECLARE_READ8_MEMBER(idr_r);
|
||||
DECLARE_WRITE8_MEMBER(odr_w);
|
||||
DECLARE_READ8_MEMBER(mode_reg_r);
|
||||
DECLARE_WRITE8_MEMBER(mode_reg_clear_w);
|
||||
DECLARE_READ8_MEMBER(switch_r);
|
||||
|
||||
IRQ_CALLBACK_MEMBER(irq_callback);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(ieee488_ctrl_w);
|
||||
|
||||
private:
|
||||
required_device<hp_nanoprocessor_device> m_cpu;
|
||||
required_ioport m_sw1;
|
||||
required_device<ieee488_device> m_ieee488;
|
||||
|
||||
// DC lines
|
||||
uint8_t m_dc;
|
||||
|
||||
// Interface state
|
||||
uint8_t m_idr; // Input Data Register
|
||||
uint8_t m_odr; // Output Data Register
|
||||
bool m_force_flg;
|
||||
uint8_t m_mode_reg;
|
||||
|
||||
// 488 bus state
|
||||
bool m_clr_hpib;
|
||||
uint8_t m_ctrl_out;
|
||||
uint8_t m_data_out;
|
||||
|
||||
void update_dc(void);
|
||||
void update_flg(void);
|
||||
void update_np_irq(void);
|
||||
void update_data_out(void);
|
||||
void update_ctrl_out(void);
|
||||
void update_clr_hpib(void);
|
||||
|
||||
};
|
||||
|
||||
// device type definition
|
||||
extern const device_type HP98034_IO_CARD;
|
||||
|
||||
#endif /* _98034_H_ */
|
@ -153,7 +153,7 @@ hp98035_io_card::~hp98035_io_card()
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START(hp98035_port)
|
||||
MCFG_HP9845_IO_SC
|
||||
MCFG_HP9845_IO_SC(1)
|
||||
INPUT_PORTS_END
|
||||
|
||||
ioport_constructor hp98035_io_card::device_input_ports() const
|
||||
|
@ -80,7 +80,9 @@ void hp9845_io_card_device::install_readwrite_handler(read16_delegate rhandler,
|
||||
}
|
||||
|
||||
#include "98035.h"
|
||||
#include "98034.h"
|
||||
|
||||
SLOT_INTERFACE_START(hp9845_io_slot_devices)
|
||||
SLOT_INTERFACE("98034_hpib" , HP98034_IO_CARD)
|
||||
SLOT_INTERFACE("98035_rtc" , HP98035_IO_CARD)
|
||||
SLOT_INTERFACE_END
|
||||
|
@ -21,9 +21,9 @@
|
||||
|
||||
#define HP9845_IO_FIRST_SC 1 // Lowest SC used by I/O cards
|
||||
|
||||
#define MCFG_HP9845_IO_SC\
|
||||
#define MCFG_HP9845_IO_SC(_default_sc) \
|
||||
PORT_START("SC") \
|
||||
PORT_CONFNAME(0xf , 0 , "Select Code") \
|
||||
PORT_CONFNAME(0xf , (_default_sc) - HP9845_IO_FIRST_SC , "Select Code") \
|
||||
PORT_CONFSETTING(0 , "1")\
|
||||
PORT_CONFSETTING(1 , "2")\
|
||||
PORT_CONFSETTING(2 , "3")\
|
||||
|
@ -188,6 +188,7 @@ ieee488_device::daisy_entry::daisy_entry(device_t *device)
|
||||
void ieee488_device::set_signal(device_t *device, int signal, int state)
|
||||
{
|
||||
bool changed = false;
|
||||
int old_state = get_signal(signal);
|
||||
|
||||
if (device == this)
|
||||
{
|
||||
@ -218,8 +219,13 @@ void ieee488_device::set_signal(device_t *device, int signal, int state)
|
||||
}
|
||||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
if (!changed) {
|
||||
return;
|
||||
}
|
||||
|
||||
state = get_signal(signal);
|
||||
|
||||
if (old_state != state) {
|
||||
switch (signal)
|
||||
{
|
||||
case EOI: m_write_eoi(state); break;
|
||||
@ -289,21 +295,18 @@ int ieee488_device::get_signal(int signal)
|
||||
{
|
||||
int state = m_line[signal];
|
||||
|
||||
if (state)
|
||||
{
|
||||
daisy_entry *entry = m_device_list.first();
|
||||
daisy_entry *entry = m_device_list.first();
|
||||
|
||||
while (entry)
|
||||
while (state && entry)
|
||||
{
|
||||
if (!entry->m_line[signal])
|
||||
{
|
||||
state = 0;
|
||||
break;
|
||||
}
|
||||
{
|
||||
state = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
entry = entry->next();
|
||||
}
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
@ -352,7 +355,7 @@ uint8_t ieee488_device::get_data()
|
||||
|
||||
daisy_entry *entry = m_device_list.first();
|
||||
|
||||
while (entry)
|
||||
while (data && entry)
|
||||
{
|
||||
data &= entry->m_dio;
|
||||
|
||||
|
@ -216,7 +216,7 @@ public:
|
||||
}
|
||||
|
||||
void install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler);
|
||||
template<typename T> void install_device(offs_t addrstart, offs_t addrend, T &device, void (T::*map)(class address_map &map), int bits = 8, uint64_t unitmask = U64(0xffffffffffffffff))
|
||||
template<typename T> void install_device(offs_t addrstart, offs_t addrend, T &device, void (T::*map)(class address_map &map), int bits = 8, uint64_t unitmask = 0xffffffffffffffffU)
|
||||
{
|
||||
m_iospace->install_device(addrstart, addrend, device, map, bits, unitmask);
|
||||
}
|
||||
|
@ -1257,6 +1257,10 @@ void sc499_device::write_block()
|
||||
check_tape();
|
||||
}
|
||||
|
||||
// write block to image file as well
|
||||
m_image->fseek((int64_t) m_tape_pos * SC499_CTAPE_BLOCK_SIZE, SEEK_SET);
|
||||
m_image->fwrite(&m_ctape_block_buffer[0], SC499_CTAPE_BLOCK_SIZE);
|
||||
|
||||
m_image->write_block(m_tape_pos, &m_ctape_block_buffer[0]);
|
||||
m_ctape_block_count = m_tape_pos;
|
||||
m_ctape_block_index = 0;
|
||||
@ -1313,7 +1317,7 @@ void sc499_ctape_image_device::device_config_complete()
|
||||
uint8_t *sc499_ctape_image_device::read_block(int block_num)
|
||||
{
|
||||
// access beyond end of tape cart
|
||||
if (m_ctape_data.size() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE)
|
||||
if (m_ctape_data.size() < (block_num + 1) * SC499_CTAPE_BLOCK_SIZE)
|
||||
return nullptr;
|
||||
else
|
||||
return &m_ctape_data[block_num * SC499_CTAPE_BLOCK_SIZE];
|
||||
@ -1321,8 +1325,10 @@ uint8_t *sc499_ctape_image_device::read_block(int block_num)
|
||||
|
||||
void sc499_ctape_image_device::write_block(int block_num, uint8_t *ptr)
|
||||
{
|
||||
if (!(m_ctape_data.size() <= (block_num + 1) * SC499_CTAPE_BLOCK_SIZE))
|
||||
memcpy(&m_ctape_data[block_num * SC499_CTAPE_BLOCK_SIZE], ptr, SC499_CTAPE_BLOCK_SIZE);
|
||||
if ((m_ctape_data.size() < (block_num + 1) * SC499_CTAPE_BLOCK_SIZE))
|
||||
m_ctape_data.resize((block_num + 1) * SC499_CTAPE_BLOCK_SIZE);
|
||||
|
||||
memcpy(&m_ctape_data[block_num * SC499_CTAPE_BLOCK_SIZE], ptr, SC499_CTAPE_BLOCK_SIZE);
|
||||
}
|
||||
|
||||
image_init_result sc499_ctape_image_device::call_load()
|
||||
|
@ -164,7 +164,7 @@ READ8_MEMBER(msx_cart_sfg::read_cart)
|
||||
|
||||
if (offset < 0x8000)
|
||||
{
|
||||
return m_region_sfg->u8(offset & m_rom_mask);
|
||||
return m_region_sfg->as_u8(offset & m_rom_mask);
|
||||
}
|
||||
|
||||
return 0xff;
|
||||
|
@ -108,7 +108,7 @@ public:
|
||||
void rom_alloc(uint32_t size) { m_rom.resize(size/sizeof(uint16_t)); }
|
||||
uint16_t* get_rom_base() { return &m_rom[0]; }
|
||||
uint32_t get_rom_size() { return m_rom.size() * sizeof(uint16_t); }
|
||||
uint16_t* get_region_rom_base() { if (m_region_rom.found()) return &m_region_rom->u16(0); return nullptr; }
|
||||
uint16_t* get_region_rom_base() { if (m_region_rom.found()) return &m_region_rom->as_u16(0); return nullptr; }
|
||||
uint32_t get_region_rom_size() { if (m_region_rom.found()) return m_region_rom->bytes(); return 0; }
|
||||
|
||||
void fixed_alloc(uint32_t size) { m_fixed.resize(size); }
|
||||
|
@ -765,7 +765,7 @@ void sns_sa1_device::write_regs(address_space &space, uint32_t offset, uint8_t d
|
||||
case 2: //sigma (accumulative multiplication)
|
||||
case 3:
|
||||
uint64_t acum = (int16_t)m_math_a * (int16_t)m_math_b;
|
||||
uint64_t mask = U64(0xffffffffff);
|
||||
uint64_t mask = 0xffffffffffU;
|
||||
m_math_res += acum;
|
||||
m_math_overflow = (m_math_res > mask) ? 0x80 : 0;
|
||||
m_math_res &= mask;
|
||||
|
@ -117,7 +117,7 @@ READ8_MEMBER( sv603_device::mreq_r )
|
||||
if (offset >= 0x8000 && offset < 0xa000)
|
||||
{
|
||||
m_expander->ramdis_w(0);
|
||||
return m_bios->u8(offset & 0x1fff);
|
||||
return m_bios->as_u8(offset & 0x1fff);
|
||||
}
|
||||
|
||||
return 0xff;
|
||||
|
@ -98,7 +98,7 @@ MC6845_UPDATE_ROW( sv806_device::crtc_update_row )
|
||||
|
||||
for (int i = 0; i < x_count; i++)
|
||||
{
|
||||
uint8_t data = m_gfx->u8((m_ram[(ma + i) & 0x7ff] << 4) | ra);
|
||||
uint8_t data = m_gfx->as_u8((m_ram[(ma + i) & 0x7ff] << 4) | ra);
|
||||
|
||||
if (i == cursor_x)
|
||||
data = 0xff;
|
||||
|
@ -118,6 +118,7 @@
|
||||
#define TRACE_GROM 0
|
||||
#define TRACE_GKRACKER 0
|
||||
#define TRACE_CRU 0
|
||||
#define TRACE_BANKSWITCH 0
|
||||
|
||||
#define GROM3_TAG "grom3"
|
||||
#define GROM4_TAG "grom4"
|
||||
@ -1654,7 +1655,7 @@ WRITE8_MEMBER(ti99_cartridge_pcb::write)
|
||||
{
|
||||
if (m_romspace_selected)
|
||||
{
|
||||
if (TRACE_ILLWRITE) space.device().logerror("Cannot write to ROM space at %04x\n", offset);
|
||||
if (TRACE_ILLWRITE) m_cart->logerror("Cannot write to ROM space at %04x\n", offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1760,6 +1761,7 @@ WRITE8_MEMBER(ti99_paged12k_cartridge::write)
|
||||
if (m_romspace_selected)
|
||||
{
|
||||
m_rom_page = (offset >> 1) & 1;
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1807,6 +1809,7 @@ WRITE8_MEMBER(ti99_paged16k_cartridge::write)
|
||||
if (m_romspace_selected)
|
||||
{
|
||||
m_rom_page = (offset >> 1) & 1;
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1863,7 +1866,7 @@ WRITE8_MEMBER(ti99_minimem_cartridge::write)
|
||||
{
|
||||
if ((offset & 0x1000)==0x0000)
|
||||
{
|
||||
if (TRACE_ILLWRITE) space.device().logerror("Write access to cartridge ROM at address %04x ignored", offset);
|
||||
if (TRACE_ILLWRITE) m_cart->logerror("Write access to cartridge ROM at address %04x ignored", offset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1969,7 +1972,7 @@ READ8Z_MEMBER(ti99_super_cartridge::crureadz)
|
||||
|
||||
if ((offset & 0xfff0) == 0x0800)
|
||||
{
|
||||
if (TRACE_CRU) space.device().logerror("CRU accessed at %04x\n", offset);
|
||||
if (TRACE_CRU) m_cart->logerror("CRU accessed at %04x\n", offset);
|
||||
uint8_t val = 0x02 << (m_ram_page << 1);
|
||||
*value = (val >> ((offset - 0x0800)>>1)) & 0xff;
|
||||
}
|
||||
@ -1979,9 +1982,12 @@ WRITE8_MEMBER(ti99_super_cartridge::cruwrite)
|
||||
{
|
||||
if ((offset & 0xfff0) == 0x0800)
|
||||
{
|
||||
if (TRACE_CRU) space.device().logerror("CRU accessed at %04x\n", offset);
|
||||
if (TRACE_CRU) m_cart->logerror("CRU accessed at %04x\n", offset);
|
||||
if (data != 0)
|
||||
{
|
||||
m_ram_page = (offset-0x0802)>>2;
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set RAM page = %d (CRU address %04x)\n", m_ram_page, offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2034,7 +2040,7 @@ READ8Z_MEMBER(ti99_mbx_cartridge::readz)
|
||||
{
|
||||
// Also reads the value of 6ffe
|
||||
*value = m_ram_ptr[offset & 0x03ff];
|
||||
if (TRACE_READ) space.device().logerror("%04x (RAM) -> %02x\n", offset + 0x6000, *value);
|
||||
if (TRACE_READ) m_cart->logerror("%04x (RAM) -> %02x\n", offset + 0x6000, *value);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2045,7 +2051,7 @@ READ8Z_MEMBER(ti99_mbx_cartridge::readz)
|
||||
else // 7000 area
|
||||
*value = m_rom_ptr[(offset & 0x0fff) | (m_rom_page << 12)];
|
||||
|
||||
if (TRACE_READ) space.device().logerror("%04x(%04x) -> %02x\n", offset + 0x6000, offset | (m_rom_page<<13), *value);
|
||||
if (TRACE_READ) m_cart->logerror("%04x(%04x) -> %02x\n", offset + 0x6000, offset | (m_rom_page<<13), *value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2066,13 +2072,13 @@ WRITE8_MEMBER(ti99_mbx_cartridge::write)
|
||||
{
|
||||
// Valid values are 0, 1, 2, 3
|
||||
m_rom_page = data & 3;
|
||||
if (TRACE_WRITE) if ((offset & 1)==0) space.device().logerror("Set ROM page = %d\n", data);
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
|
||||
if (m_ram_ptr != nullptr)
|
||||
m_ram_ptr[offset & 0x03ff] = data;
|
||||
else
|
||||
if (TRACE_ILLWRITE) space.device().logerror("Write access to %04x but no RAM present\n", offset+0x6000);
|
||||
if (TRACE_ILLWRITE) m_cart->logerror("Write access to %04x but no RAM present\n", offset+0x6000);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2150,6 +2156,7 @@ WRITE8_MEMBER(ti99_paged379i_cartridge::write)
|
||||
|
||||
// The page is determined by the inverted outputs.
|
||||
m_rom_page = (~offset)>>1 & mask;
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2190,6 +2197,7 @@ WRITE8_MEMBER(ti99_paged378_cartridge::write)
|
||||
if (m_romspace_selected)
|
||||
{
|
||||
m_rom_page = ((offset >> 1)&0x003f);
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2226,7 +2234,10 @@ WRITE8_MEMBER(ti99_paged377_cartridge::write)
|
||||
// Bits: 011x xxxb bbbb bbbx
|
||||
// x = don't care, bbbb = bank
|
||||
if (m_romspace_selected)
|
||||
{
|
||||
m_rom_page = ((offset >> 1)&0x00ff);
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@ -2298,6 +2309,7 @@ WRITE8_MEMBER(ti99_pagedcru_cartridge::cruwrite)
|
||||
if (data != 0 && bit > 0)
|
||||
{
|
||||
m_rom_page = (bit-1)/2;
|
||||
if (TRACE_BANKSWITCH) m_cart->logerror("Set ROM page = %d (CRU address %d)\n", m_rom_page, offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2394,6 +2406,7 @@ WRITE8_MEMBER(ti99_gromemu_cartridge::write)
|
||||
return; // no paging
|
||||
}
|
||||
m_rom_page = (offset >> 1) & 1;
|
||||
if (TRACE_BANKSWITCH) if ((offset & 1)==0) m_cart->logerror("Set ROM page = %d (writing to %04x)\n", m_rom_page, (offset | 0x6000));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2445,7 +2458,7 @@ WRITE8_MEMBER(ti99_gromemu_cartridge::gromemuwrite)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TRACE_ILLWRITE) space.device().logerror("Ignoring write to GROM area at address %04x\n", m_grom_address);
|
||||
if (TRACE_ILLWRITE) m_cart->logerror("Ignoring write to GROM area at address %04x\n", m_grom_address);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -581,8 +581,8 @@ void n8x300_cpu_device::execute_run()
|
||||
} while (m_icount > 0);
|
||||
}
|
||||
|
||||
offs_t n8x300_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t n8x300_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( n8x300 );
|
||||
return CPU_DISASSEMBLE_NAME(n8x300)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(n8x300)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 2; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override;
|
||||
|
||||
address_space_config m_program_config;
|
||||
address_space_config m_io_config;
|
||||
|
@ -41,7 +41,7 @@ static inline bool is_src_rot(uint16_t opcode)
|
||||
return true;
|
||||
}
|
||||
|
||||
static offs_t internal_disasm_n8x300(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(n8x300)
|
||||
{
|
||||
unsigned startpc = pc;
|
||||
uint16_t opcode = (oprom[pc - startpc] << 8) | oprom[pc+1 - startpc];
|
||||
@ -129,13 +129,3 @@ static offs_t internal_disasm_n8x300(cpu_device *device, std::ostream &stream, o
|
||||
|
||||
return (pc - startpc);
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(n8x300)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_n8x300(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -233,7 +233,7 @@ static void aluconst(std::ostream &stream, int dest, int op)
|
||||
|
||||
|
||||
/* execute instructions on this CPU until icount expires */
|
||||
static offs_t internal_disasm_adsp21xx(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(adsp21xx)
|
||||
{
|
||||
unsigned int op = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16);
|
||||
unsigned dasmflags = 0;
|
||||
@ -551,14 +551,3 @@ static offs_t internal_disasm_adsp21xx(cpu_device *device, std::ostream &stream,
|
||||
|
||||
return 1 | dasmflags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(adsp21xx)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_adsp21xx(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -774,10 +774,10 @@ uint32_t adsp21xx_device::disasm_max_opcode_bytes() const
|
||||
// helper function
|
||||
//-------------------------------------------------
|
||||
|
||||
offs_t adsp21xx_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t adsp21xx_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( adsp21xx );
|
||||
return CPU_DISASSEMBLE_NAME(adsp21xx)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(adsp21xx)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -243,7 +243,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override;
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override;
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
// helpers
|
||||
void create_tables();
|
||||
|
@ -349,7 +349,7 @@ static void InitDasm8201(void)
|
||||
OpInizialized = 1;
|
||||
}
|
||||
|
||||
static offs_t internal_disasm_alpha8201(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(alpha8201)
|
||||
{
|
||||
offs_t dasmflags = 0;
|
||||
int i;
|
||||
@ -413,12 +413,3 @@ static offs_t internal_disasm_alpha8201(cpu_device *device, std::ostream &stream
|
||||
|
||||
return cnt | dasmflags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE(alpha8201)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_alpha8201(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -688,8 +688,8 @@ void alpha8201_cpu_device::execute_set_input(int inputnum, int state)
|
||||
}
|
||||
|
||||
|
||||
offs_t alpha8201_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t alpha8201_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( alpha8201 );
|
||||
return CPU_DISASSEMBLE_NAME(alpha8201)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(alpha8201)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
uint8_t M_RDMEM(uint16_t A) { return m_program->read_byte(A); }
|
||||
void M_WRMEM(uint16_t A,uint8_t V) { m_program->write_byte(A, V); }
|
||||
|
@ -238,7 +238,7 @@ protected:
|
||||
//! device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 4; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
private:
|
||||
|
||||
|
@ -206,9 +206,9 @@ static const char *addrname(int a)
|
||||
return dst;
|
||||
}
|
||||
|
||||
offs_t alto2_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t alto2_cpu_device::disasm_disassemble(std::ostream &main_stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
size_t len = 128;
|
||||
std::ostringstream stream;
|
||||
|
||||
uint32_t mir = (static_cast<uint32_t>(oprom[0]) << 24) |
|
||||
(static_cast<uint32_t>(oprom[1]) << 16) |
|
||||
@ -228,7 +228,6 @@ offs_t alto2_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8
|
||||
(static_cast<uint32_t>(src[2]) << 8) |
|
||||
(static_cast<uint32_t>(src[3]) << 0);
|
||||
uint16_t prefetch = next2 & 1023;
|
||||
char *dst = buffer;
|
||||
offs_t result = 1 | DASMFLAG_SUPPORTED;
|
||||
uint8_t pa;
|
||||
|
||||
@ -236,87 +235,87 @@ offs_t alto2_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8
|
||||
result |= DASMFLAG_STEP_OUT;
|
||||
|
||||
if (t)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "T<-%s ", t_bus_alu[aluf]);
|
||||
util::stream_format(stream, "T<-%s ", t_bus_alu[aluf]);
|
||||
if (l)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "L<- ");
|
||||
util::stream_format(stream, "L<- ");
|
||||
if (bs == 1)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "%s<- ", regname[rsel]);
|
||||
util::stream_format(stream, "%s<- ", regname[rsel]);
|
||||
switch (aluf) {
|
||||
case 0: // T?: BUS
|
||||
// this is somehow redundant and just wasting space
|
||||
// dst += snprintf(dst, len - (size_t)(dst - buffer), "ALUF(BUS) ");
|
||||
// util::stream_format(stream, "ALUF(BUS) ");
|
||||
break;
|
||||
case 1: // : T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "T ");
|
||||
util::stream_format(stream, "T ");
|
||||
break;
|
||||
case 2: // T?: BUS OR T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS|T ");
|
||||
util::stream_format(stream, "BUS|T ");
|
||||
break;
|
||||
case 3: // : BUS AND T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS&T ");
|
||||
util::stream_format(stream, "BUS&T ");
|
||||
break;
|
||||
case 4: // : BUS XOR T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS^T ");
|
||||
util::stream_format(stream, "BUS^T ");
|
||||
break;
|
||||
case 5: // T?: BUS + 1
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS+1 ");
|
||||
util::stream_format(stream, "BUS+1 ");
|
||||
break;
|
||||
case 6: // T?: BUS - 1
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS-1 ");
|
||||
util::stream_format(stream, "BUS-1 ");
|
||||
break;
|
||||
case 7: // : BUS + T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS+T ");
|
||||
util::stream_format(stream, "BUS+T ");
|
||||
break;
|
||||
case 8: // : BUS - T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS-T ");
|
||||
util::stream_format(stream, "BUS-T ");
|
||||
break;
|
||||
case 9: // : BUS - T - 1
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS-T-1 ");
|
||||
util::stream_format(stream, "BUS-T-1 ");
|
||||
break;
|
||||
case 10: // T?: BUS + T + 1
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS+T+1 ");
|
||||
util::stream_format(stream, "BUS+T+1 ");
|
||||
break;
|
||||
case 11: // T?: BUS + SKIP
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS+SKIP ");
|
||||
util::stream_format(stream, "BUS+SKIP ");
|
||||
break;
|
||||
case 12: // T?: BUS, T (AND)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS,T ");
|
||||
util::stream_format(stream, "BUS,T ");
|
||||
break;
|
||||
case 13: // : BUS AND NOT T
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS&~T ");
|
||||
util::stream_format(stream, "BUS&~T ");
|
||||
break;
|
||||
case 14: // : undefined
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "*BUS ");
|
||||
util::stream_format(stream, "*BUS ");
|
||||
break;
|
||||
case 15: // : undefined
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "*BUS ");
|
||||
util::stream_format(stream, "*BUS ");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (bs) {
|
||||
case 0: // read R
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-%s ", regname[rsel]);
|
||||
util::stream_format(stream, "BUS<-%s ", regname[rsel]);
|
||||
break;
|
||||
case 1: // load R from shifter output
|
||||
// dst += snprintf(dst, len - (size_t)(dst - buffer), "; %s<-", regname[rsel]);
|
||||
// util::stream_format(stream, "; %s<-", regname[rsel]);
|
||||
break;
|
||||
case 2: // enables no source to the BUS, leaving it all ones
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-177777 ");
|
||||
util::stream_format(stream, "BUS<-177777 ");
|
||||
break;
|
||||
case 3: // performs different functions in different tasks
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-BS3 ");
|
||||
util::stream_format(stream, "BUS<-BS3 ");
|
||||
break;
|
||||
case 4: // performs different functions in different tasks
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-BS4 ");
|
||||
util::stream_format(stream, "BUS<-BS4 ");
|
||||
break;
|
||||
case 5: // memory data
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-MD ");
|
||||
util::stream_format(stream, "BUS<-MD ");
|
||||
break;
|
||||
case 6: // BUS[3-0] <- MOUSE; BUS[15-4] <- -1
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-MOUSE ");
|
||||
util::stream_format(stream, "BUS<-MOUSE ");
|
||||
break;
|
||||
case 7: // IR[7-0], possibly sign extended
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-DISP ");
|
||||
util::stream_format(stream, "BUS<-DISP ");
|
||||
break;
|
||||
}
|
||||
|
||||
@ -325,29 +324,29 @@ offs_t alto2_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8
|
||||
case 0: // no operation
|
||||
break;
|
||||
case 1: // load MAR from ALU output; start main memory reference
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "MAR<-ALU ");
|
||||
util::stream_format(stream, "MAR<-ALU ");
|
||||
break;
|
||||
case 2: // switch tasks if higher priority wakeup is pending
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "TASK ");
|
||||
util::stream_format(stream, "TASK ");
|
||||
break;
|
||||
case 3: // disable the current task until re-enabled by a hardware-generated condition
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BLOCK ");
|
||||
util::stream_format(stream, "BLOCK ");
|
||||
break;
|
||||
case 4: // SHIFTER output will be L shifted left one place
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "SHIFTER<-L(LSH1) ");
|
||||
util::stream_format(stream, "SHIFTER<-L(LSH1) ");
|
||||
break;
|
||||
case 5: // SHIFTER output will be L shifted right one place
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "SHIFTER<-L(RSH1) ");
|
||||
util::stream_format(stream, "SHIFTER<-L(RSH1) ");
|
||||
break;
|
||||
case 6: // SHIFTER output will be L rotated left 8 places
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "SHIFTER<-L(LCY8) ");
|
||||
util::stream_format(stream, "SHIFTER<-L(LCY8) ");
|
||||
break;
|
||||
case 7: // put the constant from PROM (RSELECT,BS) on the bus
|
||||
pa = (rsel << 3) | bs;
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-%05o ", const_prom[pa]);
|
||||
util::stream_format(stream, "BUS<-%05o ", const_prom[pa]);
|
||||
break;
|
||||
default:
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "F1_%02o ", f1);
|
||||
util::stream_format(stream, "F1_%02o ", f1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -355,39 +354,43 @@ offs_t alto2_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8
|
||||
case 0: // no operation
|
||||
break;
|
||||
case 1: // NEXT <- NEXT OR (BUS==0 ? 1 : 0)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "[BUS==0 ? %s:%s] ",
|
||||
util::stream_format(stream, "[BUS==0 ? %s:%s] ",
|
||||
addrname((prefetch | 1) & MCODE_MASK), addrname(prefetch & MCODE_MASK));
|
||||
break;
|
||||
case 2: // NEXT <- NEXT OR (SHIFTER==0 ? 1 : 0)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "[SH==0 ? %s:%s] ",
|
||||
util::stream_format(stream, "[SH==0 ? %s:%s] ",
|
||||
addrname((prefetch | 1) & MCODE_MASK), addrname(prefetch & MCODE_MASK));
|
||||
break;
|
||||
case 3: // NEXT <- NEXT OR (SHIFTER<0 ? 1 : 0)
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "[SH<0 ? %s:%s] ",
|
||||
util::stream_format(stream, "[SH<0 ? %s:%s] ",
|
||||
addrname((prefetch | 1) & MCODE_MASK), addrname(prefetch & MCODE_MASK));
|
||||
break;
|
||||
case 4: // NEXT <- NEXT OR BUS
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "NEXT<-BUS ");
|
||||
util::stream_format(stream, "NEXT<-BUS ");
|
||||
break;
|
||||
case 5: // NEXT <- NEXT OR ALUC0. ALUC0 is the carry produced by last L loading microinstruction.
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "[ALUC0 ? %s:%s] ",
|
||||
util::stream_format(stream, "[ALUC0 ? %s:%s] ",
|
||||
addrname((prefetch | 1) & MCODE_MASK), addrname(prefetch & MCODE_MASK));
|
||||
break;
|
||||
case 6: // write BUS data to memory
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "MD<-BUS ");
|
||||
util::stream_format(stream, "MD<-BUS ");
|
||||
break;
|
||||
case 7: // put the constant from PROM (RSELECT,BS) on the bus
|
||||
if (f1 != 7) {
|
||||
pa = 8 * rsel + bs;
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-%05o", const_prom[pa]);
|
||||
util::stream_format(stream, "BUS<-%05o", const_prom[pa]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
dst += snprintf(dst, len - (size_t)(dst - buffer), "BUS<-F2_%02o ", f2);
|
||||
util::stream_format(stream, "BUS<-F2_%02o ", f2);
|
||||
break;
|
||||
}
|
||||
if (dst > buffer && dst[-1] == ' ')
|
||||
*--dst = '\0';
|
||||
|
||||
// need to trim last space
|
||||
std::string output = stream.str();
|
||||
if (output.length() > 0 && output[output.length() - 1] == ' ')
|
||||
output.resize(output.length() - 1);
|
||||
main_stream << output;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -695,8 +695,8 @@ void am29000_cpu_device::execute_set_input(int inputnum, int state)
|
||||
}
|
||||
|
||||
|
||||
offs_t am29000_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t am29000_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( am29000 );
|
||||
return CPU_DISASSEMBLE_NAME(am29000)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(am29000)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -468,7 +468,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 4; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
void signal_exception(uint32_t type);
|
||||
void external_irq_check();
|
||||
|
@ -117,7 +117,7 @@ static const char* get_spr(int spid)
|
||||
}
|
||||
}
|
||||
|
||||
static offs_t internal_disasm_am29000(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(am29000)
|
||||
{
|
||||
uint32_t op = (oprom[0] << 24) | (oprom[1] << 16) | (oprom[2] << 8) | oprom[3];
|
||||
uint32_t flags = 0;
|
||||
@ -230,12 +230,3 @@ static offs_t internal_disasm_am29000(cpu_device *device, std::ostream &stream,
|
||||
|
||||
return 4 | flags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE(am29000)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_am29000(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -89,10 +89,10 @@ void amis2000_base_device::state_string_export(const device_state_entry &entry,
|
||||
}
|
||||
}
|
||||
|
||||
offs_t amis2000_base_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t amis2000_base_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE(amis2000);
|
||||
return CPU_DISASSEMBLE_NAME(amis2000)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(amis2000)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -88,7 +88,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 1; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
// device_state_interface overrides
|
||||
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
|
||||
|
@ -100,7 +100,7 @@ static const uint8_t s2000_mnemonic[0x100] =
|
||||
|
||||
|
||||
|
||||
static offs_t internal_disasm_amis2000(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(amis2000)
|
||||
{
|
||||
int pos = 0;
|
||||
uint8_t op = oprom[pos++];
|
||||
@ -130,13 +130,3 @@ static offs_t internal_disasm_amis2000(cpu_device *device, std::ostream &stream,
|
||||
|
||||
return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(amis2000)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_amis2000(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -847,8 +847,8 @@ void apexc_cpu_device::execute_run()
|
||||
}
|
||||
|
||||
|
||||
offs_t apexc_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t apexc_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( apexc );
|
||||
return CPU_DISASSEMBLE_NAME(apexc)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(apexc)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 4; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
inline uint32_t apexc_readmem(uint32_t address) { return m_program->read_dword((address)<<2); }
|
||||
inline void apexc_writemem(uint32_t address, uint32_t data) { m_program->write_dword((address)<<2, (data)); }
|
||||
|
@ -83,7 +83,7 @@ static const instr_desc instructions[16] =
|
||||
{ "A", store }, { "S", swap }
|
||||
};
|
||||
|
||||
static offs_t internal_disasm_apexc(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(apexc)
|
||||
{
|
||||
uint32_t instruction; /* 32-bit machine instruction */
|
||||
int x, y, function, c6, vector; /* instruction fields */
|
||||
@ -179,16 +179,5 @@ static offs_t internal_disasm_apexc(cpu_device *device, std::ostream &stream, of
|
||||
|
||||
/* print Y address */
|
||||
util::stream_format(stream, "%03X(%02d/%02d)", y<<2, (y >> 5) & 0x1f, y & 0x1f); /* 7 chars */
|
||||
|
||||
return 4;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(apexc)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_apexc(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -25,10 +25,10 @@ arc_device::arc_device(const machine_config &mconfig, const char *tag, device_t
|
||||
}
|
||||
|
||||
|
||||
offs_t arc_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t arc_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( arc );
|
||||
return CPU_DISASSEMBLE_NAME(arc)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arc)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -45,7 +45,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 4; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
private:
|
||||
address_space_config m_program_config;
|
||||
|
@ -180,7 +180,7 @@ static const char *regnames[0x40] =
|
||||
#define ARC_REGOP_SHIMM ((op & 0x000001ff) >> 0 ) // aka D
|
||||
|
||||
|
||||
static offs_t internal_disasm_arc(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(arc)
|
||||
{
|
||||
uint32_t op = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24);
|
||||
op = big_endianize_int32(op);
|
||||
@ -207,14 +207,3 @@ static offs_t internal_disasm_arc(cpu_device *device, std::ostream &stream, offs
|
||||
|
||||
return 4 | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(arc)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_arc(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -58,10 +58,10 @@ arcompact_device::arcompact_device(const machine_config &mconfig, const char *ta
|
||||
}
|
||||
|
||||
|
||||
offs_t arcompact_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t arcompact_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( arcompact );
|
||||
return CPU_DISASSEMBLE_NAME(arcompact)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arcompact)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -104,7 +104,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 8; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#define ARCOMPACT_OPERATION ((op & 0xf800) >> 11)
|
||||
|
||||
static offs_t internal_disasm_arcompact(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(arcompact)
|
||||
{
|
||||
int size;
|
||||
|
||||
@ -87,13 +87,3 @@ static offs_t internal_disasm_arcompact(cpu_device *device, std::ostream &stream
|
||||
|
||||
return size | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(arcompact)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_arcompact(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -1553,15 +1553,15 @@ void arm_cpu_device::HandleCoPro( uint32_t insn )
|
||||
}
|
||||
|
||||
|
||||
offs_t arm_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t arm_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( arm );
|
||||
return CPU_DISASSEMBLE_NAME(arm)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
offs_t arm_be_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t arm_be_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( arm_be );
|
||||
return CPU_DISASSEMBLE_NAME(arm_be)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm_be)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 4; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
address_space_config m_program_config;
|
||||
|
||||
@ -113,7 +113,7 @@ public:
|
||||
arm_be_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
protected:
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
};
|
||||
|
||||
|
||||
|
@ -390,23 +390,14 @@ static uint32_t arm_disasm( std::ostream &stream, uint32_t pc, uint32_t opcode )
|
||||
return dasmflags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
static uint32_t arm_disasm(char *buffer, uint32_t pc, uint32_t opcode)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
uint32_t result = arm_disasm(stream, pc, opcode);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm )
|
||||
{
|
||||
uint32_t opcode = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24);
|
||||
return 4 | arm_disasm(buffer, pc, opcode);
|
||||
return 4 | arm_disasm(stream, pc, opcode);
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm_be )
|
||||
{
|
||||
uint32_t opcode = oprom[3] | (oprom[2] << 8) | (oprom[1] << 16) | (oprom[0] << 24);
|
||||
return 4 | arm_disasm(buffer, pc, opcode);
|
||||
return 4 | arm_disasm(stream, pc, opcode);
|
||||
}
|
||||
|
@ -764,7 +764,7 @@ void arm7_cpu_device::execute_set_input(int irqline, int state)
|
||||
}
|
||||
|
||||
|
||||
offs_t arm7_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t arm7_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( arm7arm );
|
||||
extern CPU_DISASSEMBLE( arm7thumb );
|
||||
@ -774,16 +774,16 @@ offs_t arm7_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_
|
||||
if (T_IS_SET(m_r[eCPSR]))
|
||||
{
|
||||
if ( m_endian == ENDIANNESS_BIG )
|
||||
return CPU_DISASSEMBLE_NAME(arm7thumb_be)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm7thumb_be)(this, stream, pc, oprom, opram, options);
|
||||
else
|
||||
return CPU_DISASSEMBLE_NAME(arm7thumb)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm7thumb)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( m_endian == ENDIANNESS_BIG )
|
||||
return CPU_DISASSEMBLE_NAME(arm7arm_be)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm7arm_be)(this, stream, pc, oprom, opram, options);
|
||||
else
|
||||
return CPU_DISASSEMBLE_NAME(arm7arm)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(arm7arm)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,7 +76,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 4; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
address_space_config m_program_config;
|
||||
|
||||
|
@ -1300,40 +1300,22 @@ static uint32_t thumb_disasm(std::ostream &stream, uint32_t pc, uint16_t opcode)
|
||||
return dasmflags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
static uint32_t arm7_disasm(char *buffer, uint32_t pc, uint32_t opcode)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
uint32_t result = arm7_disasm(stream, pc, opcode);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
static uint32_t thumb_disasm(char *buffer, uint32_t pc, uint16_t opcode)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
uint32_t result = thumb_disasm(stream, pc, opcode);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm7arm )
|
||||
{
|
||||
return arm7_disasm(buffer, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)) | 4;
|
||||
return arm7_disasm(stream, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)) | 4;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm7arm_be )
|
||||
{
|
||||
return arm7_disasm(buffer, pc, oprom[3] | (oprom[2] << 8) | (oprom[1] << 16) | (oprom[0] << 24)) | 4;
|
||||
return arm7_disasm(stream, pc, oprom[3] | (oprom[2] << 8) | (oprom[1] << 16) | (oprom[0] << 24)) | 4;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm7thumb )
|
||||
{
|
||||
return thumb_disasm(buffer, pc, oprom[0] | (oprom[1] << 8)) | 2;
|
||||
return thumb_disasm(stream, pc, oprom[0] | (oprom[1] << 8)) | 2;
|
||||
}
|
||||
|
||||
CPU_DISASSEMBLE( arm7thumb_be )
|
||||
{
|
||||
return thumb_disasm(buffer, pc, oprom[1] | (oprom[0] << 8)) | 2;
|
||||
return thumb_disasm(stream, pc, oprom[1] | (oprom[0] << 8)) | 2;
|
||||
}
|
||||
|
@ -1362,7 +1362,7 @@ void arm7_cpu_device::saturate_qbit_overflow(drcuml_block *block)
|
||||
UML_DCMP(block, uml::I0, 0x000000007fffffffL);
|
||||
UML_MOVc(block, uml::COND_G, uml::I1, Q_MASK);
|
||||
UML_MOVc(block, uml::COND_G, uml::I0, 0x7fffffff);
|
||||
UML_DCMP(block, uml::I0, U64(0xffffffff80000000));
|
||||
UML_DCMP(block, uml::I0, 0xffffffff80000000ULL);
|
||||
UML_MOVc(block, uml::COND_L, uml::I1, Q_MASK);
|
||||
UML_MOVc(block, uml::COND_L, uml::I0, 0x80000000);
|
||||
UML_OR(block, DRC_CPSR, DRC_CPSR, uml::I1);
|
||||
|
@ -324,10 +324,10 @@ uint32_t asap_device::disasm_max_opcode_bytes() const
|
||||
// helper function
|
||||
//-------------------------------------------------
|
||||
|
||||
offs_t asap_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t asap_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( asap );
|
||||
return CPU_DISASSEMBLE_NAME(asap)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(asap)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override;
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override;
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
// helpers
|
||||
inline uint32_t readop(offs_t pc);
|
||||
|
@ -45,7 +45,7 @@ static inline char *src2(uint32_t op, int scale)
|
||||
return temp;
|
||||
}
|
||||
|
||||
static offs_t internal_disasm_asap(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(asap)
|
||||
{
|
||||
uint32_t op = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24);
|
||||
int opcode = op >> 27;
|
||||
@ -141,16 +141,6 @@ static offs_t internal_disasm_asap(cpu_device *device, std::ostream &stream, off
|
||||
util::stream_format(stream, "jmp%s %s[%s]", setcond[cond], reg[rsrc1], src2(op,2));
|
||||
break;
|
||||
case 0x1f: util::stream_format(stream, "trap $1f"); flags = DASMFLAG_STEP_OVER; break;
|
||||
}
|
||||
}
|
||||
return 4 | flags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(asap)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_asap(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -949,10 +949,10 @@ uint32_t avr8_device::disasm_max_opcode_bytes() const
|
||||
// helper function
|
||||
//-------------------------------------------------
|
||||
|
||||
offs_t avr8_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t avr8_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( avr8 );
|
||||
return CPU_DISASSEMBLE_NAME(avr8)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(avr8)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -128,7 +128,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override;
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override;
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
// device_state_interface overrides
|
||||
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
|
||||
|
@ -25,7 +25,7 @@
|
||||
#define ACONST6(op) ((((op) >> 5) & 0x0030) | ((op) & 0x000f))
|
||||
#define MULCONST2(op) ((((op) >> 6) & 0x0002) | (((op) >> 3) & 0x0001))
|
||||
|
||||
static offs_t internal_disasm_avr8(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(avr8)
|
||||
{
|
||||
int pos = 0;
|
||||
uint32_t op = oprom[pos++];
|
||||
@ -671,13 +671,3 @@ static offs_t internal_disasm_avr8(cpu_device *device, std::ostream &stream, off
|
||||
|
||||
return pos | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(avr8)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_avr8(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -687,8 +687,8 @@ void ccpu_cpu_device::execute_run()
|
||||
}
|
||||
|
||||
|
||||
offs_t ccpu_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t ccpu_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( ccpu );
|
||||
return CPU_DISASSEMBLE_NAME(ccpu)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(ccpu)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 3; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
address_space_config m_program_config;
|
||||
address_space_config m_data_config;
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "ccpu.h"
|
||||
|
||||
|
||||
static offs_t internal_disasm_ccpu(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(ccpu)
|
||||
{
|
||||
unsigned startpc = pc;
|
||||
uint8_t opcode = oprom[pc++ - startpc];
|
||||
@ -328,13 +328,3 @@ static offs_t internal_disasm_ccpu(cpu_device *device, std::ostream &stream, off
|
||||
|
||||
return (pc - startpc) | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(ccpu)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_ccpu(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -1171,7 +1171,7 @@ void cop400_cpu_device::state_string_export(const device_state_entry &entry, std
|
||||
}
|
||||
|
||||
|
||||
offs_t cop400_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cop400_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cop410 );
|
||||
extern CPU_DISASSEMBLE( cop420 );
|
||||
@ -1179,15 +1179,15 @@ offs_t cop400_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint
|
||||
|
||||
if ( m_featuremask & COP444_FEATURE )
|
||||
{
|
||||
return CPU_DISASSEMBLE_NAME(cop444)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cop444)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
if ( m_featuremask & COP420_FEATURE )
|
||||
{
|
||||
return CPU_DISASSEMBLE_NAME(cop420)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cop420)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
return CPU_DISASSEMBLE_NAME(cop410)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cop410)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
READ8_MEMBER( cop400_cpu_device::microbus_rd )
|
||||
|
@ -169,7 +169,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 1; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 2; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
address_space_config m_program_config;
|
||||
address_space_config m_data_config;
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
static offs_t internal_disasm_cop410(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cop410)
|
||||
{
|
||||
uint8_t opcode = oprom[0];
|
||||
uint8_t next_opcode = oprom[1];
|
||||
@ -348,13 +348,3 @@ static offs_t internal_disasm_cop410(cpu_device *device, std::ostream &stream, o
|
||||
|
||||
return bytes | flags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cop410)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cop410(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
static offs_t internal_disasm_cop420(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cop420)
|
||||
{
|
||||
uint8_t opcode = oprom[0];
|
||||
uint8_t next_opcode = oprom[1];
|
||||
@ -396,13 +396,3 @@ static offs_t internal_disasm_cop420(cpu_device *device, std::ostream &stream, o
|
||||
|
||||
return bytes | flags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cop420)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cop420(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
static offs_t internal_disasm_cop444(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cop444)
|
||||
{
|
||||
uint8_t opcode = oprom[0];
|
||||
uint8_t next_opcode = oprom[1];
|
||||
@ -413,13 +413,3 @@ static offs_t internal_disasm_cop444(cpu_device *device, std::ostream &stream, o
|
||||
|
||||
return bytes | flags | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cop444)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cop444(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -185,23 +185,13 @@ static uint32_t disassemble(device_t *device, std::ostream &stream, offs_t pc, c
|
||||
}
|
||||
|
||||
|
||||
static uint32_t disassemble(device_t *device, char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t variant)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
uint32_t result = disassemble(device, stream, pc, oprom, opram, variant);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE( cdp1801 )
|
||||
{
|
||||
return disassemble(device, buffer, pc, oprom, opram, TYPE_1801);
|
||||
return disassemble(device, stream, pc, oprom, opram, TYPE_1801);
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE( cdp1802 )
|
||||
{
|
||||
return disassemble(device, buffer, pc, oprom, opram, TYPE_1802);
|
||||
return disassemble(device, stream, pc, oprom, opram, TYPE_1802);
|
||||
}
|
||||
|
@ -512,16 +512,16 @@ uint32_t cosmac_device::disasm_max_opcode_bytes() const
|
||||
// helper function
|
||||
//-------------------------------------------------
|
||||
|
||||
offs_t cdp1801_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cdp1801_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cdp1801 );
|
||||
return CPU_DISASSEMBLE_NAME( cdp1801 )(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME( cdp1801 )(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
offs_t cdp1802_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cdp1802_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cdp1802 );
|
||||
return CPU_DISASSEMBLE_NAME( cdp1802 )(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME( cdp1802 )(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
@ -451,7 +451,7 @@ public:
|
||||
|
||||
protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
virtual cosmac_device::ophandler get_ophandler(uint8_t opcode) override;
|
||||
|
||||
@ -469,7 +469,7 @@ public:
|
||||
|
||||
protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
virtual cosmac_device::ophandler get_ophandler(uint8_t opcode) override;
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "debugger.h"
|
||||
#include "cp1610.h"
|
||||
|
||||
static offs_t internal_disasm_cp1610(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cp1610)
|
||||
{
|
||||
uint16_t oprom16[4]={ static_cast<uint16_t>((oprom[0] << 8) | oprom[1]), static_cast<uint16_t>((oprom[2] << 8) | oprom[3]), static_cast<uint16_t>((oprom[4] << 8) | oprom[5]), static_cast<uint16_t>((oprom[6] << 8) | oprom[7]) };
|
||||
uint16_t op = oprom16[0]; uint16_t subop;
|
||||
@ -1488,13 +1488,3 @@ static offs_t internal_disasm_cp1610(cpu_device *device, std::ostream &stream, o
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cp1610)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cp1610(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -3417,8 +3417,8 @@ void cp1610_cpu_device::state_string_export(const device_state_entry &entry, std
|
||||
}
|
||||
|
||||
|
||||
offs_t cp1610_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cp1610_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cp1610 );
|
||||
return CPU_DISASSEMBLE_NAME(cp1610)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cp1610)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual uint32_t disasm_min_opcode_bytes() const override { return 2; }
|
||||
virtual uint32_t disasm_max_opcode_bytes() const override { return 8; }
|
||||
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
|
||||
|
||||
private:
|
||||
address_space_config m_program_config;
|
||||
|
@ -58,7 +58,7 @@ static const char *const dst[] =
|
||||
SOUND DISASSEMBLY HOOK
|
||||
***************************************************************************/
|
||||
|
||||
static offs_t internal_disasm_cquestsnd(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cquestsnd)
|
||||
{
|
||||
static const char *const jmps[] =
|
||||
{
|
||||
@ -125,21 +125,11 @@ static offs_t internal_disasm_cquestsnd(cpu_device *device, std::ostream &stream
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cquestsnd)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cquestsnd(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
ROTATE DISASSEMBLY HOOK
|
||||
***************************************************************************/
|
||||
|
||||
static offs_t internal_disasm_cquestrot(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cquestrot)
|
||||
{
|
||||
static const char *const jmps[] =
|
||||
{
|
||||
@ -231,21 +221,11 @@ static offs_t internal_disasm_cquestrot(cpu_device *device, std::ostream &stream
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cquestrot)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cquestrot(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
LINE DRAWER DISASSEMBLY HOOK
|
||||
***************************************************************************/
|
||||
|
||||
static offs_t internal_disasm_cquestlin(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
|
||||
CPU_DISASSEMBLE(cquestlin)
|
||||
{
|
||||
static const char *const jmps[] =
|
||||
{
|
||||
@ -325,13 +305,3 @@ static offs_t internal_disasm_cquestlin(cpu_device *device, std::ostream &stream
|
||||
|
||||
return 1 | DASMFLAG_SUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
CPU_DISASSEMBLE(cquestlin)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
offs_t result = internal_disasm_cquestlin(device, stream, pc, oprom, opram, options);
|
||||
std::string stream_str = stream.str();
|
||||
strcpy(buffer, stream_str.c_str());
|
||||
return result;
|
||||
}
|
||||
|
@ -84,10 +84,10 @@ cquestsnd_cpu_device::cquestsnd_cpu_device(const machine_config &mconfig, const
|
||||
}
|
||||
|
||||
|
||||
offs_t cquestsnd_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cquestsnd_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cquestsnd );
|
||||
return CPU_DISASSEMBLE_NAME(cquestsnd)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cquestsnd)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
@ -105,10 +105,10 @@ READ16_MEMBER( cquestrot_cpu_device::linedata_r )
|
||||
}
|
||||
|
||||
|
||||
offs_t cquestrot_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cquestrot_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cquestrot );
|
||||
return CPU_DISASSEMBLE_NAME(cquestrot)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cquestrot)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
@ -122,10 +122,10 @@ cquestlin_cpu_device::cquestlin_cpu_device(const machine_config &mconfig, const
|
||||
}
|
||||
|
||||
|
||||
offs_t cquestlin_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
offs_t cquestlin_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options)
|
||||
{
|
||||
extern CPU_DISASSEMBLE( cquestlin );
|
||||
return CPU_DISASSEMBLE_NAME(cquestlin)(this, buffer, pc, oprom, opram, options);
|
||||
return CPU_DISASSEMBLE_NAME(cquestlin)(this, stream, pc, oprom, opram, options);
|
||||
}
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user