Documentation for the STATIC/USECODE file. PsudoBNF overview: * LEFTVALUE = RIGHTVALUE is read as "LEFTVALUE consists of RIGHTVALUE". * [TOKEN]* is read as "zero or more of TOKEN(s)". * TOKEN = lots of text. "lots of text" is the details of what TOKEN is ususally data size, and vague description of relevance. USECODE_FILE = [FUNCTION]* FUNCTION = FUNCTION_HEADER DATASEGMENT CODESEGMENT FUNCTION_HEADER = FUNCID FUNCSIZE DATASEGMENT = DATASEG_SIZE DATASEG_DATA CODESEGMENT = NUM_ARGS NUM_LOCALS EXTERNS USECODE_BLOCK EXTERNS = NUM_EXTERNS EXTERN_LIST FUNCID = (uint16) The "id" of the function. (Also referenced as "function number".) FUNCSIZE = (uint16) The total size of the function (code + data). Am unsure if this also includes the "header". DATASEG_SIZE = (uint16) The total size of the data segment (in number of bytes). DATASEG_DATA = Consists of DATASEG_SIZE bytes of string data of the format "string\0" where \0 is the NULL byte. NUM_ARGC = (uint16) The number of arguments to the function on the stack. NUM_LOCALS = (uint16) The number of local "variables" used in the function. NUM_EXTERNS = (uint16) The number of external function numbers in the external function list. EXTERN_LIST = NUM_EXTERNS number of external numbers, each is (uint16) in size. USECODE_BLOCK = [USECODE_CALL]+ USECODE_CALL = Consists of (ubyte8) opcode and a variable number of trailing bytes, depending upon which opcode. See: tools/ucxt/Docs/opcodes.txt for more information.