-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDXEngine.h
More file actions
71 lines (56 loc) · 1.42 KB
/
DXEngine.h
File metadata and controls
71 lines (56 loc) · 1.42 KB
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
#ifndef _ENGINE_H_
#define _ENGINE_H_
class DXEngine {
private:
protected:
Args *args;
long romStart;
long romEnd;
long pc;
Memory *mem;
Labels *labels;
long byteStackAddr;
vector<long> addressStack;
vector<int> byteStack;
bool verbose;
char byteDirective[MAXSTR];
char wordDirective[MAXSTR];
public:
private:
protected:
void stackByte(int byte, long addr);
void flushByteStack();
public:
DXEngine(Args *args, long beg, long end, long mask, const char *file);
DXEngine();
virtual void initialise();
virtual void usage();
virtual void preamble();
int fetch8();
int fetch8Rel();
int fetch8Lab(char *label);
int fetch8RelLab(char *label);
int fetch16();
int fetch16Rel();
int fetch16Lab(char *label);
int fetch16RelLab(char *label);
int fetch32();
bool alreadyStacked(long addr);
void stackAddress(long addr, const char *lab);
void stackAddress(long addr);
void stackRelAddress(long addr);
void readVector(long addr, const char *vecName);
virtual void commentBytes(long addr, OutputItem *out);
virtual bool willBranch(long addr);
virtual bool canBranch(long addr);
virtual long branchAddress(long addr);
virtual bool validCode(long addr);
virtual int codeSize(long addr);
void disassemble();
virtual int disassemble(long addr);
virtual void pass1();
void dump();
void setByteDirective(const char *);
void setWordDirective(const char *);
};
#endif