This commit is contained in:
Happy 2016-11-24 07:26:13 -07:00
commit 4643b8cd49
807 changed files with 17632 additions and 16092 deletions

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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;

View File

@ -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) {

View File

@ -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" />

File diff suppressed because it is too large Load Diff

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -451,7 +451,7 @@
<software name="advxanad">
<description>Adventurescape - Lost in Xanadu</description>
<year>1985</year>
<publisher>AB</publisher>
<publisher>A&amp;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 &amp; 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 &amp; 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">

View File

@ -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">

View File

@ -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 &amp; 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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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)

View File

@ -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

View File

@ -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",

View File

@ -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
---------------------------------------------------

View File

@ -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",
}

View File

@ -234,7 +234,6 @@ end
if (STANDALONE~=true) then
links {
"frontend",
"http",
}
end
if (MACHINES["NETLIST"]~=null) then

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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();
}

View File

@ -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:

View 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>;

View 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_ */

View File

@ -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

View File

@ -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

View File

@ -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")\

View File

@ -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;

View File

@ -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);
}

View File

@ -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()

View File

@ -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;

View File

@ -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); }

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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); }

View File

@ -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:

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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)); }

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
};

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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 )

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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