#include	<gccore.h>
#include	<sys/param.h>
#include	<stdio.h>
#include	<stdlib.h>
#include	<stdarg.h>
#include	<stddef.h>
#include	<string.h>
#include	<unistd.h>
#include	<assert.h>
//#include	<pthread.h>
#include	<SDL.h>

#define	SLZAURUS
#define	OSLANG_EUC
#define	OSLINEBREAK_LF

typedef	signed int	INT;

typedef	unsigned int	SINT;

typedef	unsigned char	UCHAR;
typedef	unsigned short	USHORT;
typedef	unsigned int	UINT;
typedef	unsigned long	ULONG;

typedef	 int8_t		SINT8;
typedef	uint8_t		UINT8;
typedef	 int16_t	SINT16;
typedef	uint16_t	UINT16;
typedef	 int32_t	SINT32;
typedef	uint32_t	UINT32;

//typedef	int				BOOL;
typedef	signed char		CHAR;
typedef	signed char		TCHAR;
typedef	unsigned char	BYTE;


#ifndef	TRUE
#define	TRUE	1
#endif

#ifndef	FALSE
#define	FALSE	0
#endif

#ifndef	MAX_PATH
#define	MAX_PATH	MAXPATHLEN
#endif

#ifndef	max
#define	max(a,b)	(((a) > (b)) ? (a) : (b))
#endif
#ifndef	min
#define	min(a,b)	(((a) < (b)) ? (a) : (b))
#endif

#ifndef	ZeroMemory
#define	ZeroMemory(d,n)		bzero((d),(n))
#endif
#ifndef	CopyMemory
#define	CopyMemory(d,s,n)	memcpy((d),(s),(n))
#endif
#ifndef	FillMemory
#define	FillMemory(a, b, c)	memset((a),(c),(b))
#endif

#ifndef	roundup
#define	roundup(x, y)	((((x)+((y)-1))/(y))*(y))
#endif

//#if SDL_BYTEORDER == SDL_BIG_ENDIAN
#define	BYTESEX_BIG
//#else /* SDL_BYTEORDER == SDL_LIL_ENDIAN */
//#define	BYTESEX_LITTLE
//#endif	/* SDL_BYTEORDER == SDL_BIG_ENDIAN */

#define	UNUSED(v)	((void)(v))

#ifndef	NELEMENTS
#define	NELEMENTS(a)	((int)(sizeof(a) / sizeof(a[0])))
#endif

#define	BRESULT				UINT
#define	OEMCHAR				char
#define	OEMTEXT(string)		string
#define	OEMSPRINTF			sprintf
#define	OEMSTRLEN			strlen

#define SIZE_VGA
#if !defined(SIZE_VGA)
#define	RGB16		UINT32
#define	SIZE_QVGA
#endif


#include	"common.h"
#include	"milstr.h"
#include	"_memory.h"
#include	"rect.h"
#include	"lstarray.h"
#include	"trace.h"


#define	GETTICK()			SDL_GetTicks()
#define	__ASSERT(s)
#define	SPRINTF				sprintf
#define	STRLEN				strlen

#define	VERMOUTH_LIB
// #define	SOUND_CRITICAL

#define	SUPPORT_EUC
//#define	SUPPORT_ANK

#define	SUPPORT_8BPP
#define	SUPPORT_16BPP
//#define	SUPPORT_24BPP
//#define	SUPPORT_32BPP
#define	SUPPORT_NORMALDISP
#define	MEMOPTIMIZE		2
//#define	MEMOPTIMIZE		1

#define	SOUNDRESERVE	100

#define	SUPPORT_SWSEEKSND

//#define	SCREEN_BPP		32
#define	SCREEN_BPP		16
//#define	SCREEN_BPP		8

//#define	SUPPORT_PC9821
#if defined(SUPPORT_PC9821)
typedef	uint64_t	UINT64;
typedef	int64_t		SINT64;
#define sigjmp_buf		jmp_buf
#define sigsetjmp(env, mask)	setjmp(env)
#define siglongjmp(env, val)	longjmp(env, val)
//#define msgbox(title, msg)	menumbox(msg, title, MBOX_OK | MBOX_ICONINFO)
#define msgbox(title, msg)	menumbox(msg, title, 0x0000 | 0x0040)
#define CPUCORE_IA32
#define IA32_PAGING_EACHSIZE
#define SUPPORT_CRT31KHZ
#define SUPPORT_PC9801_119
#endif
#define SUPPORT_CRT15KHZ
#define SUPPORT_PC9861K
//#define SUPPORT_SOFTKBD         0
#define SUPPORT_S98
//#define SUPPORT_KEYDISP
#define SUPPORT_MEMDBG32
//#define SUPPORT_HOSTDRV
#define SUPPORT_SASI
#define SUPPORT_SCSI
#if defined(TRACE)
        #define SUPPORT_IDEIO
#endif

#define SUPPORT_RESUME
#define SUPPORT_STATSAVE        10
#define SUPPORT_ROMEO


// You could specify a complete path, e.g. "/etc/timidity.cfg", and
// then specify the library directory in the configuration file.
// #define TIMIDITY_CFGFILE	"timidity.cfg"

