1596dfa2572b88c6dc99e799feab6e0e65240ba3
[cyclone68000.git] / Cyclone / app.h
1 \r
2 // This file is part of the Cyclone 68000 Emulator\r
3 \r
4 // This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
5 // You can choose the license that has the most advantages for you.\r
6 \r
7 // SVN repository can be found at http://code.google.com/p/cyclone68000/\r
8 \r
9 #include <stdio.h>\r
10 #include <stdarg.h>\r
11 #include <stdlib.h>\r
12 #include <string.h>\r
13 \r
14 // Disa.c\r
15 #include "../Pico/Disa.h"\r
16 \r
17 // Ea.cpp\r
18 int EaCalc(int a,int mask,int ea,int size);\r
19 int EaRead(int a,int v,int ea,int size,int top=0);\r
20 int EaCanRead(int ea,int size);\r
21 int EaWrite(int a,int v,int ea,int size,int top=0);\r
22 int EaCanWrite(int ea);\r
23 \r
24 // Main.cpp\r
25 extern int *CyJump; // Jump table\r
26 extern int ms; // If non-zero, output in Microsoft ARMASM format\r
27 extern char *Narm[4]; // Normal ARM Extensions for operand sizes 0,1,2\r
28 extern char *Sarm[4]; // Sign-extend ARM Extensions for operand sizes 0,1,2\r
29 extern int Cycles; // Current cycles for opcode\r
30 extern int Amatch; // If one, try to match A68K timing\r
31 extern int Accu; // Accuracy\r
32 extern int Debug; // Debug info\r
33 void ot(char *format, ...);\r
34 void ltorg();\r
35 void CheckInterrupt();\r
36 int MemHandler(int type,int size);\r
37 \r
38 // OpAny.cpp\r
39 int OpGetFlags(int subtract,int xbit);\r
40 void OpUse(int op,int use);\r
41 void OpFirst();\r
42 void OpStart(int op);\r
43 void OpEnd();\r
44 int OpBase(int op);\r
45 void OpAny(int op);\r
46 \r
47 //----------------------\r
48 // OpArith.cpp\r
49 int OpArith(int op);\r
50 int OpLea(int op);\r
51 int OpAddq(int op);\r
52 int OpArithReg(int op);\r
53 int OpMul(int op);\r
54 int OpAbcd(int op);\r
55 int OpAritha(int op);\r
56 int OpAddx(int op);\r
57 int OpCmpEor(int op);\r
58 \r
59 // OpBranch.cpp\r
60 void OpPush32();\r
61 void OpPushSr(int high);\r
62 int OpTrap(int op);\r
63 int OpLink(int op);\r
64 int OpUnlk(int op);\r
65 int Op4E70(int op);\r
66 int OpJsr(int op);\r
67 int OpBranch(int op);\r
68 int OpDbra(int op);\r
69 \r
70 // OpLogic.cpp\r
71 int OpBtstReg(int op);\r
72 int OpBtstImm(int op);\r
73 int OpNeg(int op);\r
74 int OpSwap(int op);\r
75 int OpTst(int op);\r
76 int OpExt(int op);\r
77 int OpSet(int op);\r
78 int OpAsr(int op);\r
79 int OpAsrEa(int op);\r
80 \r
81 // OpMove.cpp\r
82 int OpMove(int op);\r
83 int OpLea(int op);\r
84 void OpFlagsToReg(int high);\r
85 void OpRegToFlags(int high);\r
86 int OpMoveSr(int op);\r
87 int OpArithSr(int op);\r
88 int OpPea(int op);\r
89 int OpMovem(int op);\r
90 int OpMoveq(int op);\r
91 int OpMoveUsp(int op);\r
92 int OpExg(int op);\r