home *** CD-ROM | disk | FTP | other *** search
- #include <proto/exec.h>
- #include <exec/memory.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <exec/execbase.h>
-
-
- void main(void);
-
- void main()
- {
- struct ExecBase **execbaseptr=(struct ExecBase **)4L;
- struct ExecBase *execbase;
- ULONG LoMem,HiMem,Size;
- ULONG i;
- char *NewStack,*src,*dest;
-
-
- execbase = *execbaseptr;
- LoMem = (ULONG)execbase->SysStkLower;
- HiMem = (ULONG)execbase->SysStkUpper;
- if (HiMem > 0x200000)
- {
- exit(0);
- }
- Size = HiMem - LoMem + 1;
- if (!(NewStack = AllocMem(Size,MEMF_FAST|MEMF_CLEAR)))
- {
- exit(0);
- }
- Disable();
- src = (char *)LoMem;
- dest = NewStack;
- for(i=0;i<Size;i++)
- *dest++ = *src++;
- HiMem = (ULONG)NewStack;
- HiMem += Size;
- HiMem--;
- execbase->SysStkLower = (APTR)NewStack;
- execbase->SysStkUpper = (APTR)HiMem;
- LoMem = SuperState();
- UserState((char *)HiMem);
- Enable();
- }
-