1 |
cebix |
1.1 |
/* |
2 |
|
|
* REU.h - 17xx REU emulation |
3 |
|
|
* |
4 |
cebix |
1.2 |
* Frodo (C) 1994-1997,2002-2003 Christian Bauer |
5 |
cebix |
1.1 |
* |
6 |
|
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
|
* it under the terms of the GNU General Public License as published by |
8 |
|
|
* the Free Software Foundation; either version 2 of the License, or |
9 |
|
|
* (at your option) any later version. |
10 |
|
|
* |
11 |
|
|
* This program is distributed in the hope that it will be useful, |
12 |
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 |
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 |
|
|
* GNU General Public License for more details. |
15 |
|
|
* |
16 |
|
|
* You should have received a copy of the GNU General Public License |
17 |
|
|
* along with this program; if not, write to the Free Software |
18 |
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 |
|
|
*/ |
20 |
|
|
|
21 |
|
|
#ifndef _REU_H |
22 |
|
|
#define _REU_H |
23 |
|
|
|
24 |
|
|
|
25 |
|
|
class MOS6510; |
26 |
|
|
class Prefs; |
27 |
|
|
|
28 |
|
|
class REU { |
29 |
|
|
public: |
30 |
|
|
REU(MOS6510 *CPU); |
31 |
|
|
~REU(); |
32 |
|
|
|
33 |
|
|
void NewPrefs(Prefs *prefs); |
34 |
|
|
void Reset(void); |
35 |
|
|
uint8 ReadRegister(uint16 adr); |
36 |
|
|
void WriteRegister(uint16 adr, uint8 byte); |
37 |
|
|
void FF00Trigger(void); |
38 |
|
|
|
39 |
|
|
private: |
40 |
|
|
void open_close_reu(int old_size, int new_size); |
41 |
|
|
void execute_dma(void); |
42 |
|
|
|
43 |
|
|
MOS6510 *the_cpu; // Pointer to 6510 |
44 |
|
|
|
45 |
|
|
uint8 *ex_ram; // REU expansion RAM |
46 |
|
|
|
47 |
|
|
uint32 ram_size; // Size of expansion RAM |
48 |
|
|
uint32 ram_mask; // Expansion RAM address bit mask |
49 |
|
|
|
50 |
|
|
uint8 regs[16]; // REU registers |
51 |
|
|
}; |
52 |
|
|
|
53 |
|
|
#endif |