blob: 08487aa3c85d846c621caf4899a16e0f4bf89412 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
/* -*- mode: C++; tab-width: 4 -*- */
/* ===================================================================== *\
Copyright (c) 2000-2001 Palm, Inc. or its subsidiaries.
All rights reserved.
This file is part of the Palm OS Emulator.
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.
\* ===================================================================== */
#ifndef EmRegs330CPLD_h
#define EmRegs330CPLD_h
#include "EmRegs.h"
#include "EmHandEra330Defs.h"
#define CpldReg00 0x0000
// CPLD Register 0x0000 Bit Definitions
// -------------------------------------
#define Cpld0Edo 0x0002
#define Cpld0Sdram 0x0000
#define CpldReg02 0x0002
// CPLD Register 0x0002 Bit Definitions
// -------------------------------------
#define Cpld2NoCfDetect 0x8000
#define Cpld2CfDetect 0x0000
#define Cpld2NoSdDetect 0x4000
#define Cpld2SdDetect 0x0000
#define Cpld2NoExPwrDetect 0x2000
#define Cpld2ExPwrDetect 0x0000
#define Cpld2SdUnwriteProt 0x0000
#define Cpld2SdWriteProt 0x1000
#define Cpld2SdPowerOn 0x0000
#define Cpld2SdPowerOff 0x0200
#define Cpld2Kbd3Active 0x0000
#define Cpld2Kbd3Inactive 0x0100
#define Cpld2Kbd2Active 0x0000
#define Cpld2Kbd2Inactive 0x0080
#define Cpld2Kbd1Active 0x0000
#define Cpld2Kbd1Inactive 0x0040
#define Cpld2Kbd0Active 0x0000
#define Cpld2Kbd0Inactive 0x0020
#define Cpld2NoReset 0x0000
#define Cpld2Reset 0x0010
#define Cpld2CfBufsOff 0x0000
#define Cpld2CfBufsOn 0x0008
#define Cpld2SwapOff 0x0000
#define Cpld2SwapOn 0x0004
#define Cpld2CfPowerOn 0x0000
#define Cpld2CfPowerOff 0x0002
#define Cpld2BusWidth16 0x0000
#define Cpld2BusWidth8 0x0001
#define CpldReg04 0x0004
// CPLD Register 0x0004 Bit Definitions
// -------------------------------------
#define Cpld4LcdBiasOff 0x0000
#define Cpld4LcdBiasOn 0x0400
#define Cpld4LcdVccOn 0x0000
#define Cpld4LcdVccOff 0x0200
#define Cpld4LcdOff 0x0000
#define Cpld4LcdON 0x0100
#define Cpld4BlPdOff 0x0000
#define Cpld4BlPdOn 0x0080
#define Cpld4DtrOn 0x0000
#define Cpld4DtrOff 0x0040
#define Cpld4MmcCsOff 0x0000
#define Cpld4MmcCsOn 0x0020
#define Cpld4FiltSdOff 0x0000
#define Cpld4FiltSdOn 0x0010
#define Cpld4Rs232Off 0x0000
#define Cpld4Rs232On 0x0008
#define Cpld4IrdaOn 0x0000
#define Cpld4IrdaOff 0x0004
#define Cpld4MicOn 0x0000
#define Cpld4MicOff 0x0002
#define Cpld4SenseVoltage 0x0000
#define Cpld4SenseCurrent 0x0001
const uint32 kMemoryStartCPLD = 0x10E00000;
const uint32 kMemorySizeCPLD = 0x100;
class EmRegs330CPLD : public EmRegs
{
public:
EmRegs330CPLD (HandEra330PortManager * fPortManager);
virtual ~EmRegs330CPLD (void);
virtual void Reset (Bool hardwareReset);
uint8* GetRealAddress (emuptr address);
void SetSubBankHandlers (void);
emuptr GetAddressStart (void);
uint32 GetAddressRange (void);
uint32 GetWord (emuptr iAddress);
void SetWord (emuptr iAddress, uint32 iWordValue);
// only word access is allowed to the CPLD
// uint32 GetLong (emuptr iAddress) { return 0;}
// uint32 GetByte (emuptr iAddress) { return 0;}
// void SetLong (emuptr iAddress, uint32 iLongValue) {}
// void SetByte (emuptr iAddress, uint32 iByteValue) {}
private:
uint16 Reg0;
uint16 Reg2;
uint16 Reg4;
uint8 Buffer[kMemorySizeCPLD];
uint32 Read (emuptr address, int size);
void Write (emuptr address, int size, uint32 value);
// void SetReg02(uint16 val);
// void SetReg04(uint16 val);
HandEra330PortManager * fPortMgr;
};
#endif // EmTRGCFDefs_h
|