69 lines
2.1 KiB
C++
69 lines
2.1 KiB
C++
/*
|
|
* Mr. 4th Dimention - Allen Webster
|
|
*
|
|
* 18.07.2017
|
|
*
|
|
* Shared logic for 4coder initialization.
|
|
*
|
|
*/
|
|
|
|
// TOP
|
|
|
|
internal void
|
|
system_memory_init(){
|
|
#if defined(FRED_INTERNAL)
|
|
# if defined(FTECH_64_BIT)
|
|
void *bases[] = { (void*)TB(1), (void*)TB(2), };
|
|
# elif defined(FTECH_32_BIT)
|
|
void *bases[] = { (void*)MB(96), (void*)MB(98), };
|
|
# endif
|
|
#else
|
|
void *bases[] = { (void*)0, (void*)0, };
|
|
#endif
|
|
|
|
memory_vars.vars_memory_size = MB(2);
|
|
memory_vars.vars_memory = system_memory_allocate_extended(bases[0], memory_vars.vars_memory_size);
|
|
memory_vars.target_memory_size = MB(512);
|
|
memory_vars.target_memory = system_memory_allocate_extended(bases[1], memory_vars.target_memory_size);
|
|
memory_vars.user_memory_size = MB(2);
|
|
memory_vars.user_memory = system_memory_allocate_extended(0, memory_vars.user_memory_size);
|
|
memory_vars.debug_memory_size = MB(512);
|
|
memory_vars.debug_memory = system_memory_allocate_extended(0, memory_vars.debug_memory_size);
|
|
target.max = MB(1);
|
|
target.push_buffer = (char*)system_memory_allocate(target.max);
|
|
|
|
b32 alloc_success = true;
|
|
if (memory_vars.vars_memory == 0 || memory_vars.target_memory == 0 || memory_vars.user_memory == 0 || target.push_buffer == 0){
|
|
alloc_success = false;
|
|
}
|
|
|
|
if (!alloc_success){
|
|
char msg[] = "Could not allocate sufficient memory. Please make sure you have atleast 512Mb of RAM free. (This requirement will be relaxed in the future).";
|
|
system_error_box(msg);
|
|
}
|
|
}
|
|
|
|
internal void
|
|
load_app_code(){
|
|
App_Get_Functions *get_funcs = 0;
|
|
|
|
if (system_load_library(&libraries.app_code, "4ed_app")){
|
|
get_funcs = (App_Get_Functions*)system_get_proc(&libraries.app_code, "app_get_functions");
|
|
}
|
|
else{
|
|
char msg[] = "Could not load '4ed_app." DLL "'. This file should be in the same directory as the main '4ed' executable.";
|
|
system_error_box(msg);
|
|
}
|
|
|
|
if (get_funcs != 0){
|
|
app = get_funcs();
|
|
}
|
|
else{
|
|
char msg[] = "Failed to get application code from '4ed_app." DLL "'.";
|
|
system_error_box(msg);
|
|
}
|
|
}
|
|
|
|
// BOTTOM
|
|
|