66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
#ifndef I386_TYPE
|
|
#define I386_TYPE
|
|
|
|
typedef unsigned char u8;
|
|
typedef unsigned short u16;
|
|
typedef unsigned int u32;
|
|
typedef char s8;
|
|
typedef short s16;
|
|
typedef int s32;
|
|
typedef int bool;
|
|
|
|
struct dtr {
|
|
|
|
u16 limite;
|
|
|
|
u32 base;
|
|
|
|
} __attribute__ ((packed));
|
|
|
|
#define true 1;
|
|
#define false 0;
|
|
#define NULL 0x0000;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
extern char ctype[];
|
|
|
|
#define CT_UP 0x01 /* upper case */
|
|
#define CT_LOW 0x02 /* lower case */
|
|
#define CT_DIG 0x04 /* digit */
|
|
#define CT_CTL 0x08 /* control */
|
|
#define CT_PUN 0x10 /* punctuation */
|
|
#define CT_WHT 0x20 /* white space (space/cr/lf/tab) */
|
|
#define CT_HEX 0x40 /* hex digit */
|
|
#define CT_SP 0x80 /* hard space (0x20) */
|
|
|
|
/* without the cast to unsigned, DJGPP complains (using -Wall) */
|
|
#define isalnum(c) ((ctype + 1)[(unsigned)(c)] & (CT_UP | CT_LOW | CT_DIG))
|
|
#define isalpha(c) ((ctype + 1)[(unsigned)(c)] & (CT_UP | CT_LOW))
|
|
#define iscntrl(c) ((ctype + 1)[(unsigned)(c)] & (CT_CTL))
|
|
#define isdigit(c) ((ctype + 1)[(unsigned)(c)] & (CT_DIG))
|
|
#define isgraph(c) ((ctype + 1)[(unsigned)(c)] & (CT_PUN | CT_UP | CT_LOW | CT_DIG))
|
|
#define islower(c) ((ctype + 1)[(unsigned)(c)] & (CT_LOW))
|
|
#define isprint(c) ((ctype + 1)[(unsigned)(c)] & (CT_PUN | CT_UP | CT_LOW | CT_DIG | CT_SP))
|
|
#define ispunct(c) ((ctype + 1)[(unsigned)(c)] & (CT_PUN))
|
|
#define isspace(c) ((ctype + 1)[(unsigned)(c)] & (CT_WHT))
|
|
#define isupper(c) ((ctype + 1)[(unsigned)(c)] & (CT_UP))
|
|
#define isxdigit(c) ((ctype + 1)[(unsigned)(c)] & (CT_DIG | CT_HEX))
|
|
#define isascii(c) ((unsigned)(c) <= 0x7F)
|
|
#define toascii(c) ((unsigned)(c) & 0x7F)
|
|
|
|
#define tolower(c) (isupper(c) ? c + 'a' - 'A' : c)
|
|
#define toupper(c) (islower(c) ? c + 'A' - 'a' : c)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|