This file doesn't do much but prepares a crucial aspect of the whole YGWM system. The next files will mostly be "modules" that will be registered by INIT() into INIT_list[].
INIT_list=[]; // cookies, menu, winlist, test_asm, OpcodeTable, asmwin, DOC_GEN, DEF_ASM, template...
function INIT(o){
INIT_list.push(o); // add the new module to the list
}
The list will be scanned later by body_start.js. Each module entry point will be executed
to provide new services. The entry points are:
* INIT_func() will be called to setup this module as a "second stage" in body_start.js.
* start() will be called when the corresponding "key" is called.
* win.trigger() sends data to the module, maybe forcing a refresh or a change in behaviour (it's usually
given the "parameters" following the # after the key name)
So a template for a module looks like this:
INIT(my_module={
my_trigger: function() {
// change some data, reconfigure stuff...
}
start: function() {
// create a window and populate it
my_module.win.trigger=my_module.my_trigger;
}
INIT_func: function(){
// add to the menu, things like that
}
});
This template is the underlying structure of most of the modules that will be loaded after this file. Later, we'll see a more complete template file.
Each module will be added in the same order as the files are included. A post_init feature is also available for certain modules that need to make a second stage of initialisation.