_CP_load is an optional function for preloading BASIC subroutines, before they are needed.


int _CP_load(int* number, CPSTR* name)


number Must be a pointer to an integer. This integer must contain -1 when loading a new subroutine. Upon successful load, this location will contain an index number which should be passed down to succeeding _CP_calls to the same subroutine. This index allows the system to jump directly into the subroutine code without having to look up the name in the master dictionary.
name Should be a CPSTR* pointing to the subroutine name. The subroutine to be called must be previously compiled with FlashBASIC and be cataloged in the current master dictionary.

This function returns -1 if an error occurs. The error code is contained in _CP_errno, including:

PE_LOAD_ERR which indicates that the system could not load the subroutine. The subroutine must be cataloged, and must be compiled with the current version of FlashBASIC.

Note: All subroutines called must have been previously compiled with the current version of FlashBASIC.


/* call a user-written routine */
CPSTR * s = _CP_mkstr("hi");
int i = -1;
r = _CP_load(&i,s);
if (r < 0)
/* Now that the subroutine is loaded, it can be called */
/* very efficiently */
for (j=1; j < 100; j++) _CP_call(&i,s,0);