1 //////////////////////////////////////////////////////////////////////////////
2 //Copyright 2008
3 //  Andrew Gacek, Steven Holte, Gopalan Nadathur, Xiaochu Qi, Zach Snow
4 //////////////////////////////////////////////////////////////////////////////
5 // This file is part of Teyjus.                                             //
6 //                                                                          //
7 // Teyjus is free software: you can redistribute it and/or modify           //
8 // it under the terms of the GNU General Public License as published by     //
9 // the Free Software Foundation, either version 3 of the License, or        //
10 // (at your option) any later version.                                      //
11 //                                                                          //
12 // Teyjus is distributed in the hope that it will be useful,                //
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of           //
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
15 // GNU General Public License for more details.                             //
16 //                                                                          //
17 // You should have received a copy of the GNU General Public License        //
18 // along with Teyjus.  If not, see <http://www.gnu.org/licenses/>.          //
19 //////////////////////////////////////////////////////////////////////////////
20 
21 /****************************************************************************/
22 /*                                                                          */
23 /*                                                                          */
24 /*   File  mctypes.h.                                                       */
25 /*   This file contains the definitions of the low-level                    */
26 /*   data types that are used in constructing the more complex objects that */
27 /*   are used in data representation and in instruction formats. This file  */
28 /*   will likely be included by most others defining the overall system.    */
29 /*                                                                          */
30 /****************************************************************************/
31 #ifndef MCTYPES_H
32 #define MCTYPES_H
33 
34 typedef unsigned char  Byte;                       /* 8 bits              */
35 typedef unsigned short TwoBytes;                   /* 16 bits             */
36 
37 
38 typedef unsigned char  Boolean;                    /* 8 bits: FALSE/TRUE  */
39 #define TRUE           1
40 #define FALSE          0
41 
42 
43 typedef unsigned long  Word;
44 typedef Word           *WordPtr;
45 
46 #define WORD_SIZE      sizeof(Word)               /* 4: 32-bits machine  */
47                                                   /* 8  64-bits machine  */
48 
49 typedef Word           Mem;                       /* generic memory type */
50 typedef Mem            *MemPtr;                   /* pointer to memory   */
51 typedef Byte           *CSpacePtr;                /* code space pointer  */
52 typedef Byte           *BytePtr;
53 
54 #endif //MCTYPES_H
55