summaryrefslogtreecommitdiff
path: root/plugins/sid/sidplay-libs/libsidplay/include/sidenv.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/sid/sidplay-libs/libsidplay/include/sidenv.h')
-rw-r--r--plugins/sid/sidplay-libs/libsidplay/include/sidenv.h131
1 files changed, 131 insertions, 0 deletions
diff --git a/plugins/sid/sidplay-libs/libsidplay/include/sidenv.h b/plugins/sid/sidplay-libs/libsidplay/include/sidenv.h
new file mode 100644
index 00000000..0f02e31c
--- /dev/null
+++ b/plugins/sid/sidplay-libs/libsidplay/include/sidenv.h
@@ -0,0 +1,131 @@
+/***************************************************************************
+ environment.h - This is the environment file which
+ defines all the standard functions
+ to be inherited by the ICs.
+ -------------------
+ begin : Thu May 11 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: sidenv.h,v $
+ * Revision 1.5 2002/01/29 21:53:25 s_a_white
+ * Fixed envSleep
+ *
+ * Revision 1.4 2002/01/29 08:02:22 s_a_white
+ * PSID sample improvements.
+ *
+ * Revision 1.3 2001/07/14 13:09:35 s_a_white
+ * Removed cache parameters.
+ *
+ * Revision 1.2 2000/12/11 19:10:59 s_a_white
+ * AC99 Update.
+ *
+ ***************************************************************************/
+
+#ifndef _environment_h_
+#define _environment_h_
+
+#include "sidtypes.h"
+
+/*
+// Enviroment functions - THESE FUNTIONS MUST BE PROVIDED
+// TO ALLOW THE COMPONENTS TO SPEAK TO EACH OTHER. ENVP
+// CAN BE USED TO CREATE VERSIONS OF THESE FUNTIONS
+// WHICH ACCESS MEMBER FUNTIONS OF OTHER C++ OBJECTS!
+extern void reset (void);
+extern uint8_t readMemByte (uint_least16_t addr);
+extern void writeMemByte (uint_least16_t addr, uint8_t data);
+
+// Interrupts - You must raise the interrupt(s)
+// every cycle if you have not yet been serviced
+extern void triggerIRQ (void);
+extern void triggerNMI (void);
+extern void triggerRST (void);
+extern void clearIRQ (void);
+
+// Sidplay compatibily funtions
+extern bool checkBankJump (uint_least16_t addr);
+extern uint8_t readEnvMemByte (uint_least16_t addr);
+*/
+
+class C64Environment
+{
+/*
+protected:
+ // Eniviroment functions
+ virtual inline void envReset (void)
+ { ::reset (); }
+ virtual inline uint8_t envReadMemByte (uint_least16_t addr)
+ { ::readMemByte (addr); }
+ virtual inline void envWriteMemByte (uint_least16_t addr, uint8_t data)
+ { ::writeMemByte (addr, data); }
+
+ // Interrupts
+ virtual inline void encTriggerIRQ (void)
+ { ::triggerIRQ (); }
+ virtual inline void envTriggerNMI (void)
+ { ::triggerNMI (); }
+ virtual inline void envTriggerRST (void)
+ { ::triggerRST (); }
+ virtual inline void envClearIRQ (void)
+ { ::clearIRQ (); }
+
+ // Sidplay compatibily funtions
+ virtual inline bool envCheckBankJump (uint_least16_t addr)
+ { ::checkBankJump (); }
+ virtual inline uint8_t envReadMemDataByte (uint_least16_t addr)
+ { ::readMemDataByte (); }
+ */
+
+private:
+ C64Environment *m_envp;
+
+ // Sidplay2 Player Environemnt
+public:
+ virtual ~C64Environment () {}
+ virtual void setEnvironment (C64Environment *envp)
+ {
+ m_envp = envp;
+ }
+
+protected:
+ // Eniviroment functions
+ virtual inline void envReset (void)
+ { m_envp->envReset (); }
+ virtual inline uint8_t envReadMemByte (uint_least16_t addr)
+ { return m_envp->envReadMemByte (addr); }
+ virtual inline void envWriteMemByte (uint_least16_t addr, uint8_t data)
+ { m_envp->envWriteMemByte (addr, data); }
+
+ // Interrupts
+ virtual inline void envTriggerIRQ (void)
+ { m_envp->envTriggerIRQ (); }
+ virtual inline void envTriggerNMI (void)
+ { m_envp->envTriggerNMI (); }
+ virtual inline void envTriggerRST (void)
+ { m_envp->envTriggerRST (); }
+ virtual inline void envClearIRQ (void)
+ { m_envp->envClearIRQ (); }
+
+ // Sidplay compatibily funtions
+ virtual inline bool envCheckBankJump (uint_least16_t addr)
+ { return m_envp->envCheckBankJump (addr); }
+ virtual inline uint8_t envReadMemDataByte (uint_least16_t addr)
+ { return m_envp->envReadMemDataByte (addr); }
+ virtual inline void envSleep (void)
+ { m_envp->envSleep (); }
+ virtual inline void envLoadFile (char *file)
+ { m_envp->envLoadFile (file); }
+};
+
+#endif // _environment_h_