diff options
Diffstat (limited to 'backends/gp32/startup.c')
-rw-r--r-- | backends/gp32/startup.c | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/backends/gp32/startup.c b/backends/gp32/startup.c new file mode 100644 index 0000000000..159d373242 --- /dev/null +++ b/backends/gp32/startup.c @@ -0,0 +1,130 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001 Ludvig Strigeus + * Copyright (C) 2001/2004 The ScummVM project + * Copyright (C) 2002 Ph0x - GP32 Backend + * Copyright (C) 2003/2004 DJWillis - GP32 Backend + * + * 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 2 + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * $Header$ + * + */ + +#include <gpdef.h> +#include <gpstdlib.h> +#include <gpfont.h> +#include <gpfont_port.h> +#include <gpfontres.dat> + +#include <initval_port.h> + +#ifdef USE_GP_MEM + #include <gpmem.h> +#endif + +//#ifdef GP32_GDB +// #include <gdb-stub.h> +//#endif /*GP32_GDB*/ + +unsigned int HEAPSTART; +unsigned int HEAPEND; + +void InitializeFont (void); +extern void GpKeyPollingTimeSet (int loop_cnt); +extern void GpMain(void *arg); + +//extern int OpenUSB (); +//extern void InstallISR (); + + + +int main (int arg_len, char * arg_v) + { + GM_HEAP_DEF gm_heap_def; + + _gp_sdk_init(); + + // keyboard polling count setting + GpKeyPollingTimeSet (KEYPOLLING_NUM); + + #ifdef USE_GP_MEM + gm_heap_def.heapstart = (void*)(HEAPSTART); + gm_heap_def.heapend = (void *)(HEAPEND & ~3); + gm_heap_init (&gm_heap_def); + + gp_mem_func.malloc = gm_malloc; + gp_mem_func.zimalloc = gm_zi_malloc; + gp_mem_func.calloc = gm_calloc; + gp_mem_func.free = gm_free; + gp_mem_func.availablemem = gm_availablesize; + gp_mem_func.malloc_ex = gm_malloc_ex; + gp_mem_func.free_ex = gm_free_ex; + gp_mem_func.make_mem_partition = gm_make_mem_part; + + gp_str_func.memset = gm_memset; + gp_str_func.memcpy = gm_memcpy; + gp_str_func.strcpy = gm_strcpy; + gp_str_func.strncpy = gm_strncpy; + gp_str_func.strcat = gm_strcat; + gp_str_func.strncat = gm_strncat; + gp_str_func.gpstrlen = gm_lstrlen; + gp_str_func.sprintf = gm_sprintf; + gp_str_func.uppercase = gm_uppercase; + gp_str_func.lowercase = gm_lowercase; + gp_str_func.compare = gm_compare; + gp_str_func.trim_right = gm_trim_right; + #endif /*USE_GP_MEM*/ + + //Font initialize + InitializeFont (); + + GpKernelInitialize (); + + GpKernelStart (); + + GpAppExit (); + while (1) {}; + } + +void InitializeFont (void) + { + BGFONTINFO mInfo; + mInfo.kor_w = KORFONT_W; + mInfo.kor_h = KORFONT_H; + mInfo.eng_w = ENGFONT_W; + mInfo.eng_h = ENGFONT_H; + mInfo.chargap = FONT_CHARGAP; + mInfo.linegap = FONT_LINEGAP; + GpFontInit (&mInfo); + GpFontResSet ((unsigned char*)fontresKor, (unsigned char*)fontresEng); + } + +int GpPredefinedStackGet (H_THREAD th) + { + switch (th) + { + case H_THREAD_GPMAIN: + return GPMAIN_STACK_SIZE; + case H_THREAD_NET: + return NET_STACK_SIZE; + case H_THREAD_TMR0: + case H_THREAD_TMR1: + case H_THREAD_TMR2: + case H_THREAD_TMR3: + return USER_STACK_SIZE; + default: + return 0; + } + } |