(Continued from previous message)
// space which has been reallocated as conventional memory).
// Increase the number of variables to be allocated.
//
// If you still cannot solve your problem, keep yelling at CA .
//
// Note that this is not a catch all solution. There are many things
// which eat up DGROUP, and many combinations which lead to peril:
// a. C and ASM static data.
// b. CPU stack.
// c. Eval Stack.
// d. Memvar Table.
// e. "last resort" conventional memory.
// The total size of DGROUP is 64K. It is configured so that the
// Eval Stack grows toward the Memvar Table. If it overruns it, you get
// UE 667. If there is a large piece of memory in between the Eval Stack
// and the Memvar Table, and the VMM sees that after some time of program
// execution that your program has not accessed this area, it will
// allocate it as conventional memory as a last resort. After that point,
// if more local variables are instantiated, and the Eval Stack overruns
// the VMM conventional memory, you get UE 668.
//
// If, at some point, the VMM attempts to allocate conventional memory,
// and there is none left, you get "Conventional Memory Exhausted".
//
// Incidentially, UE 669 is what you get when the Memvar Tablecannot be
// expanded for the same reason. UE 650 processor stack fault, is caused
// by the cpu call stack growing too large, its size can be controlled with
// the linker /STACK command, or equivelent (SET PROCEDURE DEPTH, Etc.).
//
local p000, p001, p002, p003, p004, p005, p006, p007, p008, p009
local p010, p011, p012, p013, p014, p015, p016, p017, p018, p019
local p020, p021, p022, p023, p024, p025, p026, p027, p028, p029
local p030, p031, p032, p033, p034, p035, p036, p037, p038, p039
local p040, p041, p042, p043, p044, p045, p046, p047, p048, p049
if numlocvarsnil.and.numlocvars>50
fix_UE668(numlocvars-50)
endif
return
It works.
Raymond Pesek
* 1st 2.00 #2448 * Moderator - Clipper Echo
--- InterEcho 1.19
---------------
* Origin: PC-Ohio PCBoard * Cleveland, OH * 216-381-3320 (1:157/200)
|