stacksize = $2000 ; 8K .text _start: move.l 4(sp),a0 ; Obtain pointer to basepage move.l a0,basepage ; Save a copy move.l $18(a0),a1 ; BSS Base address adda.l $1C(a0),a1 ; Add BSS size adda.l #stacksize,a1 ; Add stack size move.l a1,sp ; Move your stack pointer to ; your new stack. suba.l basepage,a1 ; TPA size move.l a1,-(sp) move.l basepage,-(sp) clr.w -(sp) move.w #$4a,-(sp) ; Mshrink() trap #1 lea 12(sp),sp ; Fix up stack ; and fall through to main _main: ... .bss basepage: .ds.l 1 .end