summaryrefslogtreecommitdiff
path: root/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2009-08-19 22:45:01 +0200
committerGravatar waker <wakeroid@gmail.com>2009-08-19 22:45:01 +0200
commit2f34377d0352ed5aae777f813bbbadcffacbb579 (patch)
tree17498521f4349cf16af4d47940bccb2885eb9727 /libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid
parent49875b085e4c1fa6881a54b482e8439fc1c6daa9 (diff)
passed make distcheck; 0.1.0 release
Diffstat (limited to 'libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid')
-rw-r--r--libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.am7
-rw-r--r--libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.in424
-rw-r--r--libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.cpp598
-rw-r--r--libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.h288
4 files changed, 0 insertions, 1317 deletions
diff --git a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.am b/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.am
deleted file mode 100644
index 4c7caf6a..00000000
--- a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-
-noinst_LTLIBRARIES = libxsid.la
-
-libxsid_la_SOURCES = xsid.cpp xsid.h
-
-# Remove bad default includes
-DEFAULT_INCLUDES=
diff --git a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.in b/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.in
deleted file mode 100644
index aafad807..00000000
--- a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/Makefile.in
+++ /dev/null
@@ -1,424 +0,0 @@
-# Makefile.in generated by automake 1.7.1 from Makefile.am.
-# @configure_input@
-
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ../..
-
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_triplet = @host@
-ACLOCAL = @ACLOCAL@
-ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBVERSION = @LIBVERSION@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-SID_HAVE_BOOL = @SID_HAVE_BOOL@
-SID_HAVE_STDBOOL_H = @SID_HAVE_STDBOOL_H@
-SID_SIZEOF_CHAR = @SID_SIZEOF_CHAR@
-SID_SIZEOF_INT = @SID_SIZEOF_INT@
-SID_SIZEOF_LONG_INT = @SID_SIZEOF_LONG_INT@
-SID_SIZEOF_SHORT_INT = @SID_SIZEOF_SHORT_INT@
-SID_WORDS_ENDIANESS = @SID_WORDS_ENDIANESS@
-STRIP = @STRIP@
-VERSION = @VERSION@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
-am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
-am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
-am__include = @am__include@
-am__quote = @am__quote@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builders = @builders@
-datadir = @datadir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-oldincludedir = @oldincludedir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-
-noinst_LTLIBRARIES = libxsid.la
-
-libxsid_la_SOURCES = xsid.cpp xsid.h
-
-# Remove bad default includes
-DEFAULT_INCLUDES =
-subdir = src/xsid
-mkinstalldirs = $(SHELL) $(top_srcdir)/unix/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/unix/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-
-libxsid_la_LDFLAGS =
-libxsid_la_LIBADD =
-am_libxsid_la_OBJECTS = xsid.lo
-libxsid_la_OBJECTS = $(am_libxsid_la_OBJECTS)
-depcomp = $(SHELL) $(top_srcdir)/unix/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/xsid.Plo
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DIST_SOURCES = $(libxsid_la_SOURCES)
-DIST_COMMON = Makefile.am Makefile.in
-SOURCES = $(libxsid_la_SOURCES)
-
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu src/xsid/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" = "$$p" && dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libxsid.la: $(libxsid_la_OBJECTS) $(libxsid_la_DEPENDENCIES)
- $(CXXLINK) $(libxsid_la_LDFLAGS) $(libxsid_la_OBJECTS) $(libxsid_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsid.Plo@am__quote@
-
-distclean-depend:
- -rm -rf ./$(DEPDIR)
-
-.cpp.o:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
-@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCXX_TRUE@ fi
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-uninstall-info-am:
-
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-
-installdirs:
-
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
- mostlyclean-am
-
-distclean: distclean-am
-
-distclean-am: clean-am distclean-compile distclean-depend \
- distclean-generic distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-info-am
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES ctags distclean \
- distclean-compile distclean-depend distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am info \
- info-am install install-am install-data install-data-am \
- install-exec install-exec-am install-info install-info-am \
- install-man install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.cpp b/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.cpp
deleted file mode 100644
index 29b5c909..00000000
--- a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.cpp
+++ /dev/null
@@ -1,598 +0,0 @@
-/***************************************************************************
- xsid.cpp - Support for Playsids Extended
- Registers
- -------------------
- begin : Tue Jun 20 2000
- copyright : (C) 2000 by Simon White
- email : s_a_white@email.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-/***************************************************************************
- * $Log: xsid.cpp,v $
- * Revision 1.20 2002/07/17 21:19:54 s_a_white
- * Minor non sid sample mode fixes.
- *
- * Revision 1.19 2002/02/21 20:26:13 s_a_white
- * Nolonger default to Galway Mode when Noise samples init incorrectly. Fixes
- * VARIOUS/S-Z/Zyron/Bouncy_Balls.sid (HVSC).
- *
- * Revision 1.18 2002/02/17 16:34:39 s_a_white
- * New reset interface
- *
- * Revision 1.17 2002/01/28 19:31:42 s_a_white
- * PSID sample improvements.
- *
- * Revision 1.16 2001/10/02 18:03:03 s_a_white
- * Support updated sidbuilder class interface.
- *
- * Revision 1.15 2001/09/17 18:36:41 s_a_white
- * Changed object construction to prevent multiple resets.
- *
- * Revision 1.14 2001/07/14 12:59:53 s_a_white
- * XSID effeciency increased. Now uses new component classes and event
- * generation.
- *
- * Revision 1.13 2001/03/25 19:51:23 s_a_white
- * Performance update.
- *
- * Revision 1.12 2001/03/19 23:40:19 s_a_white
- * Removed repeat definition of state for debug mode.
- *
- * Revision 1.11 2001/03/09 22:27:13 s_a_white
- * Speed optimisation update.
- *
- * Revision 1.10 2001/03/01 23:45:58 s_a_white
- * Combined both through sid and non-through sid modes. Can be selected
- * at runtime now.
- *
- * Revision 1.9 2001/02/21 21:46:34 s_a_white
- * 0x1d = 0 now fixed. Limit checking on sid volume. This helps us determine
- * even better what the sample offset should be (fixes Skate and Die).
- *
- * Revision 1.8 2001/02/07 21:02:30 s_a_white
- * Supported for delaying samples for frame simulation. New alogarithm to
- * better guess original tunes volume when playing samples.
- *
- * Revision 1.7 2000/12/12 22:51:01 s_a_white
- * Bug Fix #122033.
- *
- ***************************************************************************/
-
-#include <string.h>
-#include <stdio.h>
-#include "sidendian.h"
-#include "xsid.h"
-
-
-// Convert from 4 bit resolution to 8 bits
-/* Rev 2.0.5 (saw) - Removed for a more non-linear equivalent
- which better models the SIDS master volume register
-const int8_t XSID::sampleConvertTable[16] =
-{
- '\x80', '\x91', '\xa2', '\xb3', '\xc4', '\xd5', '\xe6', '\xf7',
- '\x08', '\x19', '\x2a', '\x3b', '\x4c', '\x5d', '\x6e', '\x7f'
-};
-*/
-const int8_t XSID::sampleConvertTable[16] =
-{
- '\x80', '\x94', '\xa9', '\xbc', '\xce', '\xe1', '\xf2', '\x03',
- '\x1b', '\x2a', '\x3b', '\x49', '\x58', '\x66', '\x73', '\x7f'
-};
-
-const char *XSID::credit =
-{
- "xSID (Extended SID) Engine:\0"
- "\tCopyright (C) 2000 Simon White <sidplay2@email.com>\0"
-};
-
-
-channel::channel (const char * const name, EventContext *context, XSID *xsid)
-:m_name(name),
- m_context(*context),
- m_xsid(*xsid),
- sampleEvent(this),
- galwayEvent(this)
-{
- memset (reg, 0, sizeof (reg));
- active = true;
- reset ();
-}
-
-void channel::reset ()
-{
- galVolume = 0; // This is left to free run until reset
- mode = FM_NONE;
- free ();
-}
-
-void channel::free ()
-{
- active = false;
- cycleCount = 0;
- sampleLimit = 0;
- // Set XSID to stopped state
- reg[convertAddr (0x1d)] = 0;
- silence ();
-}
-
-inline int8_t channel::output ()
-{
- outputs++;
- return sample;
-}
-
-void channel::checkForInit ()
-{ // Check to see mode of operation
- // See xsid documentation
- switch (reg[convertAddr (0x1d)])
- {
- case 0xFF:
- case 0xFE:
- case 0xFC:
- sampleInit ();
- break;
- case 0xFD:
- if (!active)
- return;
- free (); // Stop
- // Calculate the sample offset
- m_xsid.sampleOffsetCalc ();
- break;
- case 0x00:
- break;
- default:
- galwayInit ();
- }
-}
-
-void channel::sampleInit ()
-{
- uint8_t *r;
- if (active && (mode == FM_GALWAY))
- return;
-
-#ifdef XSID_DEBUG
- printf ("XSID [%s]: Sample Init\n", m_name);
- if (active && (mode == FM_HUELS))
- printf ("XSID [%s]: Stopping Playing Sample\n", m_name);
-#endif
-
- // Check all important parameters are legal
- r = &reg[convertAddr (0x1d)];
- volShift = (uint_least8_t) (0 - (int8_t) r[0]) >> 1;
- r[0] = 0;
- // Use endian_16 as can't g
- r = &reg[convertAddr (0x1e)];
- address = endian_16 (r[1], r[0]);
- r = &reg[convertAddr (0x3d)];
- samEndAddr = endian_16 (r[1], r[0]);
- if (samEndAddr <= address) return;
- samScale = reg[convertAddr (0x5f)];
- r = &reg[convertAddr (0x5d)];
- samPeriod = endian_16 (r[1], r[0]) >> samScale;
- if (!samPeriod)
- { // Stop this channel
- reg[convertAddr (0x1d)] = 0xfd;
- checkForInit ();
- return;
- }
-
- // Load the other parameters
- samNibble = 0;
- samRepeat = reg[convertAddr (0x3f)];
- samOrder = reg[convertAddr (0x7d)];
- r = &reg[convertAddr (0x7e)];
- samRepeatAddr = endian_16 (r[1], r[0]);
- cycleCount = samPeriod;
-
- // Support Galway Samples, but that
- // mode it setup only when as Galway
- // Noise sequence begins
- if (mode == FM_NONE)
- mode = FM_HUELS;
-
- active = true;
- cycles = 0;
- outputs = 0;
-
- sampleLimit = 8 >> volShift;
- sample = sampleCalculate ();
-
- // Calculate the sample offset
- m_xsid.sampleOffsetCalc ();
-
-#ifdef XSID_DEBUG
-# if XSID_DEBUG > 1
- printf ("XSID [%s]: Sample Start Address: 0x%04x\n", m_name, address);
- printf ("XSID [%s]: Sample End Address: 0x%04x\n", m_name, samEndAddr);
- printf ("XSID [%s]: Sample Repeat Address: 0x%04x\n", m_name, samRepeatAddr);
- printf ("XSID [%s]: Sample Period: %u\n", m_name, samPeriod);
- printf ("XSID [%s]: Sample Repeat: %u\n", m_name, samRepeat);
- printf ("XSID [%s]: Sample Order: %u\n", m_name, samOrder);
-# endif
- printf ("XSID [%s]: Sample Start\n", m_name);
-#endif // XSID_DEBUG
-
- // Schedule a sample update
- m_context.schedule (&m_xsid, 0);
- m_context.schedule (&sampleEvent, cycleCount);
-}
-
-void channel::sampleClock ()
-{
- cycleCount = samPeriod;
- if (address >= samEndAddr)
- {
- if (samRepeat != 0xFF)
- {
- if (samRepeat)
- samRepeat--;
- else
- samRepeatAddr = address;
- }
-
- address = samRepeatAddr;
- if (address >= samEndAddr)
- { // The sequence has completed
- uint8_t &status = reg[convertAddr (0x1d)];
- if (!status)
- status = 0xfd;
- if (status != 0xfd)
- active = false;
-#ifdef XSID_DEBUG
- printf ("XSID [%s]: Sample Stop (%lu Cycles, %lu Outputs)\n",
- m_name, cycles, outputs);
- if (status != 0xfd)
- printf ("XSID [%s]: Starting Delayed Sequence\n", m_name);
-#endif
- checkForInit ();
- return;
- }
- }
-
- // We have reached the required sample
- // So now we need to extract the right nibble
- sample = sampleCalculate ();
- cycles += cycleCount;
- // Schedule a sample update
- m_context.schedule (&sampleEvent, cycleCount);
- m_context.schedule (&m_xsid, 0);
-}
-
-int8_t channel::sampleCalculate ()
-{
- uint_least8_t tempSample = m_xsid.readMemByte (address);
- if (samOrder == SO_LOWHIGH)
- {
- if (samScale == 0)
- {
- if (samNibble != 0)
- tempSample >>= 4;
- }
- // AND 15 further below.
- }
- else // if (samOrder == SO_HIGHLOW)
- {
- if (samScale == 0)
- {
- if (samNibble == 0)
- tempSample >>= 4;
- }
- else // if (samScale != 0)
- tempSample >>= 4;
- // AND 15 further below.
- }
-
- // Move to next address
- address += samNibble;
- samNibble ^= 1;
- return (int8_t) ((tempSample & 0x0f) - 0x08) >> volShift;
-}
-
-void channel::galwayInit()
-{
- uint8_t *r;
- if (active)
- return;
-
-#ifdef XSID_DEBUG
- printf ("XSID [%s]: Galway Init\n", m_name);
-#endif
-
- // Check all important parameters are legal
- r = &reg[convertAddr (0x1d)];
- galTones = r[0];
- r[0] = 0;
- galInitLength = reg[convertAddr (0x3d)];
- if (!galInitLength) return;
- galLoopWait = reg[convertAddr (0x3f)];
- if (!galLoopWait) return;
- galNullWait = reg[convertAddr (0x5d)];
- if (!galNullWait) return;
-
- // Load the other parameters
- r = &reg[convertAddr(0x1e)];
- address = endian_16 (r[1], r[0]);
- volShift = reg[convertAddr (0x3e)] & 0x0f;
- mode = FM_GALWAY;
- active = true;
- cycles = 0;
- outputs = 0;
-
- sampleLimit = 8;
- sample = (int8_t) galVolume - 8;
- galwayTonePeriod ();
-
- // Calculate the sample offset
- m_xsid.sampleOffsetCalc ();
-
-#ifdef XSID_DEBUG
- printf ("XSID [%s]: Galway Start\n", m_name);
-#endif
-
- // Schedule a sample update
- m_context.schedule (&m_xsid, 0);
- m_context.schedule (&galwayEvent, cycleCount);
-}
-
-void channel::galwayClock ()
-{
- if (--galLength)
- cycleCount = samPeriod;
- else if (galTones == 0xff)
- { // The sequence has completed
- uint8_t &status = reg[convertAddr (0x1d)];
- if (!status)
- status = 0xfd;
- if (status != 0xfd)
- active = false;
-#ifdef XSID_DEBUG
- printf ("XSID [%s]: Galway Stop (%lu Cycles, %lu Outputs)\n",
- m_name, cycles, outputs);
- if (status != 0xfd)
- printf ("XSID [%s]: Starting Delayed Sequence\n", m_name);
-#endif
- checkForInit ();
- return;
- }
- else
- galwayTonePeriod ();
-
- // See Galway Example...
- galVolume += volShift;
- galVolume &= 0x0f;
- sample = (int8_t) galVolume - 8;
- cycles += cycleCount;
- m_context.schedule (&galwayEvent, cycleCount);
- m_context.schedule (&m_xsid, 0);
-}
-
-void channel::galwayTonePeriod ()
-{ // Calculate the number of cycles over which sample should last
- galLength = galInitLength;
- samPeriod = m_xsid.readMemByte (address + galTones);
- samPeriod *= galLoopWait;
- samPeriod += galNullWait;
- cycleCount = samPeriod;
-#if XSID_DEBUG > 2
- printf ("XSID [%s]: Galway Settings\n", m_name);
- printf ("XSID [%s]: Length %u, LoopWait %u, NullWait %u\n",
- m_name, galLength, galLoopWait, galNullWait);
- printf ("XSID [%s]: Tones %u, Data %u\n",
- m_name, galTones, m_xsid.readMemByte (address + galTones));
-#endif
- galTones--;
-}
-
-void channel::silence ()
-{
- sample = 0;
- m_context.cancel (&sampleEvent);
- m_context.cancel (&galwayEvent);
- m_context.schedule (&m_xsid, 0);
-}
-
-
-XSID::XSID (EventContext *context)
-:sidemu(NULL),
- Event("xSID"),
- ch4("CH4", context, this),
- ch5("CH5", context, this),
- muted(false),
- suppressed(false),
- wasRunning(false)
-{
- sidSamples (true);
-}
-
-void XSID::reset (uint8_t)
-{
- ch4.reset ();
- ch5.reset ();
- suppressed = false;
- wasRunning = false;
-}
-
-void XSID::event (void)
-{
- if (ch4 || ch5)
- {
- setSidData0x18 ();
- wasRunning = true;
- }
- else if (wasRunning)
- {
- recallSidData0x18 ();
- wasRunning = false;
- }
-}
-
-// Use Suppress to delay the samples and start them later
-// Effectivly allows running samples in a frame based mode.
-void XSID::suppress (bool enable)
-{
- // @FIXME@: Mute Temporary Hack
- suppressed = enable;
- if (!suppressed)
- { // Get the channels running
-#if XSID_DEBUG
- printf ("XSID: Un-suppressing\n");
-#endif
- ch4.checkForInit ();
- ch5.checkForInit ();
- }
-#if XSID_DEBUG
- else
- printf ("XSID: Suppressing\n");
-#endif
-}
-
-// By muting samples they will start and play the at the
-// appropriate time but no sound is produced. Un-muting
-// will cause sound output from the current play position.
-void XSID::mute (bool enable)
-{
- if (!muted && enable && wasRunning)
- recallSidData0x18 ();
- muted = enable;
-}
-
-void XSID::write (uint_least16_t addr, uint8_t data)
-{
- channel *ch;
- uint8_t tempAddr;
-
- // Make sure address is legal
- if ((addr & 0xfe8c) ^ 0x000c)
- return;
-
- ch = &ch4;
- if (addr & 0x0100)
- ch = &ch5;
-
- tempAddr = (uint8_t) addr;
- ch->write (tempAddr, data);
-#if XSID_DEBUG > 1
- printf ("XSID: Addr 0x%02x, Data 0x%02x\n", tempAddr, data);
-#endif
-
- if (tempAddr == 0x1d)
- {
- if (suppressed)
- {
-#if XSID_DEBUG
- printf ("XSID: Initialise Suppressed\n");
-#endif
- return;
- }
- ch->checkForInit ();
- }
-}
-
-int8_t XSID::sampleOutput (void)
-{
- int8_t sample;
- sample = ch4.output ();
- sample += ch5.output ();
- // Automatically compensated for by C64 code
- //return (sample >> 1);
- return sample;
-}
-
-void XSID::setSidData0x18 (void)
-{
- if (!_sidSamples || muted)
- return;
-
- uint8_t data = (sidData0x18 & 0xf0);
- data |= ((sampleOffset + sampleOutput ()) & 0x0f);
-
-#ifdef XSID_DEBUG
- if ((sampleOffset + sampleOutput ()) > 0x0f)
- {
- printf ("XSID: Sample Wrapped [offset %u, sample %d]\n",
- sampleOffset, sampleOutput ());
- }
-# if XSID_DEBUG > 1
- printf ("XSID: Writing Sample to SID Volume [0x%02x]\n", data);
-# endif
-#endif // XSID_DEBUG
-
- writeMemByte (data);
-}
-
-void XSID::recallSidData0x18 (void)
-{ // Rev 2.0.5 (saw) - Changed to recall volume differently depending on mode
- // Normally after samples volume should be restored to half volume,
- // however, Galway Tunes sound horrible and seem to require setting back to
- // the original volume. Setting back to the original volume for normal
- // samples can have nasty pulsing effects
- if (ch4.isGalway ())
- {
- if (_sidSamples && !muted)
- writeMemByte (sidData0x18);
- }
- else
- setSidData0x18 ();
-}
-
-void XSID::sampleOffsetCalc (void)
-{
- // Try to determine a sensible offset between voice
- // and sample volumes.
- uint_least8_t lower = ch4.limit () + ch5.limit ();
- uint_least8_t upper;
-
- // Both channels seem to be off. Keep current offset!
- if (!lower)
- return;
-
- sampleOffset = sidData0x18 & 0x0f;
-
- // Is possible to compensate for both channels
- // set to 4 bits here, but should never happen.
- if (lower > 8)
- lower >>= 1;
- upper = 0x0f - lower + 1;
-
- // Check against limits
- if (sampleOffset < lower)
- sampleOffset = lower;
- else if (sampleOffset > upper)
- sampleOffset = upper;
-
-#ifdef XSID_DEBUG
- printf ("XSID: Sample Offset %d based on channel(s) ", sampleOffset);
- if (ch4)
- printf ("4 ");
- if (ch5)
- printf ("5");
- printf ("\n");
-#endif // XSID_DEBUG
-}
-
-bool XSID::storeSidData0x18 (uint8_t data)
-{
- sidData0x18 = data;
- if (ch4 || ch5)
- { // Force volume to be changed at next clock
- sampleOffsetCalc ();
- if (_sidSamples)
- {
-#if XSID_DEBUG
- printf ("XSID: SID Volume Changed Externally (Corrected).\n");
-#endif
- return true;
- }
- }
- writeMemByte (sidData0x18);
- return false;
-}
diff --git a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.h b/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.h
deleted file mode 100644
index 98171d73..00000000
--- a/libsidplay2/sidplay-libs-2.1.0/libsidplay/src/xsid/xsid.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/***************************************************************************
- xsid.h - Support for Playsids Extended
- Registers
- -------------------
- begin : Tue Jun 20 2000
- copyright : (C) 2000 by Simon White
- email : s_a_white@email.com
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- ***************************************************************************/
-/***************************************************************************
- * $Log: xsid.h,v $
- * Revision 1.21 2002/09/23 19:42:52 s_a_white
- * Fixed intel compiler warnings.
- *
- * Revision 1.20 2002/07/17 19:18:17 s_a_white
- * Changed bad #if to #ifdef
- *
- * Revision 1.19 2002/02/21 20:26:13 s_a_white
- * Nolonger default to Galway Mode when Noise samples init incorrectly. Fixes
- * VARIOUS/S-Z/Zyron/Bouncy_Balls.sid (HVSC).
- *
- * Revision 1.18 2002/02/17 16:34:39 s_a_white
- * New reset interface
- *
- * Revision 1.17 2001/11/16 19:22:04 s_a_white
- * Removed compiler warning for unused parameter.
- *
- * Revision 1.16 2001/10/18 22:36:16 s_a_white
- * GCC3 fixes.
- *
- * Revision 1.15 2001/07/14 16:48:35 s_a_white
- * Sync with sidbuilder class project.
- *
- * Revision 1.14 2001/07/14 12:59:39 s_a_white
- * XSID effeciency increased. Now uses new component classes and event
- * generation.
- *
- * Revision 1.13 2001/04/20 22:21:06 s_a_white
- * inlined updateSidData0x18.
- *
- * Revision 1.12 2001/03/25 19:51:23 s_a_white
- * Performance update.
- *
- * Revision 1.11 2001/03/19 23:40:46 s_a_white
- * Better support for global debug.
- *
- * Revision 1.10 2001/03/09 22:27:13 s_a_white
- * Speed optimisation update.
- *
- * Revision 1.9 2001/03/01 23:45:58 s_a_white
- * Combined both through sid and non-through sid modes. Can be selected
- * at runtime now.
- *
- * Revision 1.8 2001/02/21 21:46:34 s_a_white
- * 0x1d = 0 now fixed. Limit checking on sid volume. This helps us determine
- * even better what the sample offset should be (fixes Skate and Die).
- *
- * Revision 1.7 2001/02/07 21:02:30 s_a_white
- * Supported for delaying samples for frame simulation. New alogarithm to
- * better guess original tunes volume when playing samples.
- *
- * Revision 1.6 2000/12/12 22:51:01 s_a_white
- * Bug Fix #122033.
- *
- ***************************************************************************/
-
-/*
-Effectively there is only 1 channel, which can either perform Galway Noise
-or Sampling. However, to achieve all the effects on a C64, 2 sampling
-channels are required. No divide by 2 is required and is compensated for
-automatically in the C64 machine code.
-
-Confirmed by Warren Pilkington using the tune Turbo Outrun:
-A new sample must interrupt an existing sample running on the same channel.
-
-Confirmed by Michael Schwendt and Antonia Vera using the tune Game Over:
-A Galway Sample or Noise sequence cannot interrupt any other. However
-the last of these new requested sequences will be played after the current
-sequence ends.
-
-Lastly playing samples through the SIDs volume is not as clean as playing
-them on their own channel. Playing through the SID will effect the volume
-of the other channels and this will be most noticable at low frequencies.
-These effects are however present in the original SID music.
-
-Some SIDs put values directly into the volume register. Others play samples
-with respect to the current volume. We can't for definate know which the author
-has chosen originally. We must just make a guess based on what the volume
-is initially at the start of a sample sequence and from the details xSID has been
-programmed with.
-*/
-
-#ifndef _xsid_h_
-#define _xsid_h_
-
-#include "config.h"
-#include "sidbuilder.h"
-#include "event.h"
-
-// XSID configuration settings
-//#define XSID_DEBUG 1
-
-// Support global debug option
-#ifdef DEBUG
-# ifndef XSID_DEBUG
-# define XSID_DEBUG DEBUG
-# endif
-#endif
-
-#ifdef XSID_DEBUG
-# include <stdio.h>
-#endif
-
-class XSID;
-class channel
-{
-private:
- // General
- const char * const m_name;
- EventContext &m_context;
- XSID &m_xsid;
- friend class XSID;
-
- class SampleEvent: public Event
- {
- private:
- channel &m_ch;
- void event (void) { m_ch.sampleClock (); }
-
- public:
- SampleEvent (channel *ch)
- :Event("xSID Sample"),
- m_ch(*ch) {}
- } sampleEvent;
- friend class SampleEvent;
-
- class GalwayEvent: public Event
- {
- private:
- channel &m_ch;
- void event (void) { m_ch.galwayClock (); }
-
- public:
- GalwayEvent (channel *ch)
- :Event("xSID Galway"),
- m_ch(*ch) {}
- } galwayEvent;
- friend class GalwayEvent;
-
- uint8_t reg[0x10];
- enum {FM_NONE = 0, FM_HUELS, FM_GALWAY} mode;
- bool active;
- uint_least16_t address;
- uint_least16_t cycleCount; // Counts to zero and triggers!
- uint_least8_t volShift;
- uint_least8_t sampleLimit;
- int8_t sample;
-
- // Sample Section
- uint_least8_t samRepeat;
- uint_least8_t samScale;
- enum {SO_LOWHIGH = 0, SO_HIGHLOW = 1};
- uint_least8_t samOrder;
- uint_least8_t samNibble;
- uint_least16_t samEndAddr;
- uint_least16_t samRepeatAddr;
- uint_least16_t samPeriod;
-
- // Galway Section
- uint_least8_t galTones;
- uint_least8_t galInitLength;
- uint_least8_t galLength;
- uint_least8_t galVolume;
- uint_least8_t galLoopWait;
- uint_least8_t galNullWait;
-
- // For Debugging
- event_clock_t cycles;
- event_clock_t outputs;
-
-private:
- channel (const char * const name, EventContext *context, XSID *xsid);
- void free (void);
- void silence (void);
- void sampleInit (void);
- void sampleClock (void);
- void galwayInit (void);
- void galwayClock (void);
-
- // Compress address to not leave so many spaces
- uint_least8_t convertAddr(uint_least8_t addr)
- { return (((addr) & 0x3) | ((addr) >> 3) & 0x0c); }
-
- void reset (void);
- uint8_t read (uint_least8_t addr)
- { return reg[convertAddr (addr)]; }
- void write (uint_least8_t addr, uint8_t data)
- { reg[convertAddr (addr)] = data; }
- int8_t output (void);
- bool isGalway (void)
- { return mode == FM_GALWAY; }
-
- uint_least8_t limit (void)
- { return sampleLimit; }
-
- inline void checkForInit (void);
- inline int8_t sampleCalculate (void);
- inline void galwayTonePeriod (void);
-
- // Used to indicate if channel is running
- operator bool() const { return (active); }
-};
-
-
-class XSID: public sidemu, private Event
-{
- friend class channel;
-
-private:
- channel ch4;
- channel ch5;
- bool muted;
- bool suppressed;
- static const char *credit;
-
- uint8_t sidData0x18;
- bool _sidSamples;
- int8_t sampleOffset;
- static const int8_t sampleConvertTable[16];
- bool wasRunning;
-
-private:
- void event (void);
- void checkForInit (channel *ch);
- inline void setSidData0x18 (void);
- inline void recallSidData0x18 (void);
- int8_t sampleOutput (void);
- void sampleOffsetCalc (void);
- virtual uint8_t readMemByte (uint_least16_t addr) = 0;
- virtual void writeMemByte (uint8_t data) = 0;
-
-public:
- XSID (EventContext *context);
-
- // Standard calls
- void reset () { sidemu::reset (); }
- void reset (uint8_t);
- uint8_t read (uint_least8_t) { return 0; }
- void write (uint_least8_t, uint8_t) { ; }
- const char *credits (void) {return credit;}
-
- // Specialist calls
- uint8_t read (uint_least16_t) { return 0; }
- void write (uint_least16_t addr, uint8_t data);
- int_least32_t output (uint_least8_t bits = 16);
- void mute (bool enable);
- bool isMuted (void) { return muted; }
- void suppress (bool enable);
-
- void sidSamples (bool enable)
- { _sidSamples = enable; }
- // Return whether we care it was changed.
- bool storeSidData0x18 (uint8_t data);
-};
-
-
-/***************************************************************************
- * Inline functions
- **************************************************************************/
-
-inline int_least32_t XSID::output (uint_least8_t bits)
-{
- int_least32_t sample;
- if (_sidSamples || muted)
- return 0;
- sample = sampleConvertTable[sampleOutput () + 8];
- return sample << (bits - 8);
-}
-
-#endif // _xsid_h_