add .gitignore
[cyclone68000.git] / app.h
CommitLineData
6003a768 1\r
619b1824 2// This file is part of the Cyclone 68000 Emulator\r
3\r
d9d77995 4// Copyright (c) 2004,2011 FinalDave (emudave (at) gmail.com)\r
5// Copyright (c) 2005-2011 GraÅžvydas "notaz" Ignotas (notasas (at) gmail.com)\r
c41b9b97 6\r
619b1824 7// This code is licensed under the GNU General Public License version 2.0 and the MAME License.\r
8// You can choose the license that has the most advantages for you.\r
9\r
10// SVN repository can be found at http://code.google.com/p/cyclone68000/\r
11\r
d9d77995 12\r
6003a768 13#include <stdio.h>\r
14#include <stdarg.h>\r
15#include <stdlib.h>\r
16#include <string.h>\r
17\r
d9d77995 18#ifndef CONFIG_FILE\r
19#define CONFIG_FILE "config.h"\r
20#endif\r
21#include CONFIG_FILE\r
22\r
6003a768 23// Disa.c\r
d9d77995 24#include "Disa/Disa.h"\r
6003a768 25\r
26// Ea.cpp\r
d9d77995 27extern int earead_check_addrerr;\r
28extern int eawrite_check_addrerr;\r
29extern int g_jmp_cycle_table[];\r
30extern int g_jsr_cycle_table[];\r
31extern int g_lea_cycle_table[];\r
32extern int g_pea_cycle_table[];\r
33extern int g_movem_cycle_table[];\r
34int Ea_add_ns(int *tab, int ea); // add nonstandard EA cycles\r
35int EaCalc(int a,int mask,int ea,int size,int top=0,int sign_extend=1); // 6\r
36int EaRead(int a,int v,int ea,int size,int mask,int top=0,int sign_extend=1); // 7\r
37int EaCalcRead(int r_ea,int r,int ea,int size,int mask,int sign_extend=1); // 6\r
38int EaCalcReadNoSE(int r_ea,int r,int ea,int size,int mask);\r
6003a768 39int EaCanRead(int ea,int size);\r
d9d77995 40int EaWrite(int a,int v,int ea,int size,int mask,int top=0,int sign_extend_ea=1);\r
6003a768 41int EaCanWrite(int ea);\r
d9d77995 42int EaAn(int ea);\r
6003a768 43\r
44// Main.cpp\r
d9d77995 45extern int *CyJump; // Jump table\r
46extern int ms; // If non-zero, output in Microsoft ARMASM format\r
47extern const char * const Narm[4]; // Normal ARM Extensions for operand sizes 0,1,2\r
48extern const char * const Sarm[4]; // Sign-extend ARM Extensions for operand sizes 0,1,2\r
49extern int Cycles; // Current cycles for opcode\r
50extern int pc_dirty; // something changed PC during processing\r
51extern int arm_op_count; // for stats\r
c30e2e2d 52void ot(const char *format, ...);\r
6003a768 53void ltorg();\r
d9d77995 54int MemHandler(int type,int size,int addrreg=0,int need_addrerr_check=1);\r
55void FlushPC(void);\r
6003a768 56\r
57// OpAny.cpp\r
d9d77995 58extern int g_op;\r
59extern int opend_op_changes_cycles, opend_check_interrupt, opend_check_trace;\r
60int OpGetFlags(int subtract,int xbit,int sprecialz=0);\r
6003a768 61void OpUse(int op,int use);\r
d9d77995 62void OpStart(int op,int sea=0,int tea=0,int op_changes_cycles=0,int supervisor_check=0);\r
63void OpEnd(int sea=0,int tea=0);\r
64int OpBase(int op,int size,int sepa=0);\r
6003a768 65void OpAny(int op);\r
66\r
67//----------------------\r
68// OpArith.cpp\r
69int OpArith(int op);\r
70int OpLea(int op);\r
71int OpAddq(int op);\r
72int OpArithReg(int op);\r
73int OpMul(int op);\r
74int OpAbcd(int op);\r
d9d77995 75int OpNbcd(int op);\r
6003a768 76int OpAritha(int op);\r
77int OpAddx(int op);\r
78int OpCmpEor(int op);\r
d9d77995 79int OpCmpm(int op);\r
80int OpChk(int op);\r
81int GetXBit(int subtract);\r
6003a768 82\r
83// OpBranch.cpp\r
84void OpPush32();\r
85void OpPushSr(int high);\r
86int OpTrap(int op);\r
87int OpLink(int op);\r
88int OpUnlk(int op);\r
89int Op4E70(int op);\r
90int OpJsr(int op);\r
91int OpBranch(int op);\r
92int OpDbra(int op);\r
93\r
94// OpLogic.cpp\r
95int OpBtstReg(int op);\r
96int OpBtstImm(int op);\r
97int OpNeg(int op);\r
98int OpSwap(int op);\r
99int OpTst(int op);\r
100int OpExt(int op);\r
101int OpSet(int op);\r
102int OpAsr(int op);\r
103int OpAsrEa(int op);\r
d9d77995 104int OpTas(int op, int gen_special=0);\r
6003a768 105\r
106// OpMove.cpp\r
107int OpMove(int op);\r
108int OpLea(int op);\r
109void OpFlagsToReg(int high);\r
d9d77995 110void OpRegToFlags(int high,int srh_reg=0);\r
6003a768 111int OpMoveSr(int op);\r
112int OpArithSr(int op);\r
113int OpPea(int op);\r
114int OpMovem(int op);\r
115int OpMoveq(int op);\r
116int OpMoveUsp(int op);\r
117int OpExg(int op);\r
d9d77995 118int OpMovep(int op);\r
119int OpStopReset(int op);\r
120void SuperEnd(void);\r
121void SuperChange(int op,int srh_reg=-1);\r
122\r