Imported Upstream version 2.9.0
[debian/cc1111] / sim / ucsim / hc08.src / regshc08.h
1 /*
2  * Simulator of microcontrollers (regsz80.h)
3  *
4  * some z80 code base from Karl Bongers karl@turbobit.com
5  *
6  * Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
7  * 
8  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
9  *
10  */
11
12 /* This file is part of microcontroller simulator: ucsim.
13
14 UCSIM is free software; you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation; either version 2 of the License, or
17 (at your option) any later version.
18
19 UCSIM is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 GNU General Public License for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with UCSIM; see the file COPYING.  If not, write to the Free
26 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
27 02111-1307, USA. */
28 /*@1@*/
29
30 #ifndef REGHC08_HEADER
31 #define REGHC08_HEADER
32
33 #include "ddconfig.h"
34
35
36 struct t_regpair
37 {
38 #ifdef WORDS_BIGENDIAN
39   TYPE_UBYTE h;
40   TYPE_UBYTE l;
41 #else
42   TYPE_UBYTE l;
43   TYPE_UBYTE h;
44 #endif
45 };
46
47 #define DEF_REGPAIR(BIGNAME,smallname) \
48   union { \
49     TYPE_UWORD BIGNAME; \
50     struct t_regpair smallname; \
51   }
52
53 struct t_regs
54 {
55   TYPE_UBYTE A;
56   TYPE_UBYTE P;
57   TYPE_UBYTE H;
58   TYPE_UBYTE X;
59   TYPE_UWORD SP;
60   TYPE_UBYTE VECTOR;
61 };
62
63 #define BIT_C   0x01  // carry status(out of bit 7)
64 #define BIT_Z   0x02  // zero status, 1=zero, 0=nonzero
65 #define BIT_N   0x04  // sign, 1=negative, 0=positive (or zero)
66 #define BIT_I   0x08  // interrupt mask, 1=disabled, 0=enabled
67 #define BIT_H   0x10  // half carry status(out of bit 3)
68 #define BIT_V   0x80  // signed overflow, 1=overflow
69 #define BIT_ALL (BIT_C |BIT_Z |BIT_N |BIT_I |BIT_H |BIT_V)  // all bits
70
71 #define BITPOS_C 0    // 1
72 #define BITPOS_Z 1    // 2H
73 #define BITPOS_N 2    // 4H
74 #define BITPOS_I 3    // 8H
75 #define BITPOS_H 4    // 10H
76 #define BITPOS_V 7    // 80H
77
78 #endif
79
80 /* End of hc08.src/regshc08.h */