/* datatypes.h Part of ForthBASIC, the BASIC interpreter and menuing system of POWER X Y This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _H_datatypes #define _H_datatypes #define BTYPE_NULL 0 /* no data */ #define BTYPE_U8 1 /* 1 byte value */ #define BTYPE_U16 2 /* 2 bytes value */ #define BTYPE_U32 3 /* 4 bytes value */ #define BTYPE_S16 4 /* 2 bytes value */ #define BTYPE_S32 5 /* 4 bytes value */ #define BTYPE_RAWSTR 6 /* length in bytes as (int), then string, then null byte at end */ #define BTYPE_437STR 7 /* string using 437 character set */ #define BTYPE_NKSTR 8 /* string using NK character set */ #define BTYPE_SINGLE 9 /* single precision floating number */ #define BTYPE_DOUBLE 10 /* double precision floating number */ #define BTYPE_VARIANT 11 /* used to indicate that a variable can contain any type */ #define BTYPE_RETURN 12 /* tells where to return to from a subroutine call */ #define BTYPE_USERTYPE 13 /* same format as string, for user-defined TYPEs */ #define BTYPE_ERROR 14 #define BTYPE_HEAP_INDEX 15 #define BTYPE_PROG_PTR 16 #define BTYPE_DATA_PTR 17 #define BTYPEMODIFIER_FIXED 32 /* Indicates a fixed-length value */ #define BTYPEMODIFIER_ARRAY 64 /* Indicates a array within a usertype */ #endif