CAR will write to memory locations below 1M. There are three ways to cope with that:
- Back up that area during suspend and restore it as last instruction
of resume. 2. Declare the CAR area (48 kB) as reserved memory.
Imho this is OK, and easiest.
- Write excessively clever and fragile code which performs a double
stack switch during resume.
Here are some other ideas, might not work if stack is never realocated. I dont know how CAR in v3 works.
4. use 0xA0000-0xBFFFF
I think we can use this RAM because it will be covered by SMM (done by us) or will be covered by legacy VGA anyway.
5. use 0xf0000-0xfffff
It will get overwritten by some our code, before that we might use it.
Rudolf