libsidplayfp  2.0.2
c64env.h
1 /*
2  * This file is part of libsidplayfp, a SID player engine.
3  *
4  * Copyright 2011-2019 Leandro Nini <drfiemost@users.sourceforge.net>
5  * Copyright 2007-2010 Antti Lankila
6  * Copyright 2001 Simon White
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef C64ENV_H
24 #define C64ENV_H
25 
26 #include "EventScheduler.h"
27 
28 #ifdef HAVE_CONFIG_H
29 # include "config.h"
30 #endif
31 
32 namespace libsidplayfp
33 {
34 
40 class c64env
41 {
42 private:
43  EventScheduler &eventScheduler;
44 
45 public:
46  c64env(EventScheduler &scheduler) :
47  eventScheduler(scheduler) {}
48 
49  EventScheduler &scheduler() const { return eventScheduler; }
50 
51  virtual uint8_t cpuRead(uint_least16_t addr) =0;
52  virtual void cpuWrite(uint_least16_t addr, uint8_t data) =0;
53 
54  virtual void interruptIRQ(bool state) = 0;
55  virtual void interruptNMI() = 0;
56  virtual void interruptRST() = 0;
57 
58  virtual void setBA(bool state) = 0;
59  virtual void lightpen(bool state) = 0;
60 
61 protected:
62  ~c64env() {}
63 };
64 
65 }
66 
67 #endif // C64ENV_H
libsidplayfp::EventScheduler
Definition: EventScheduler.h:62
libsidplayfp::c64env
Definition: c64env.h:41