Specifications
Developer Technical Support May 1992
Apple IIGS
#71: DA Tips and Techniques 3 of 6
HowMuchStack gequ $1000 ;try for 4K of stack space
start phd
phb
phk
plb
pha ;Space for result
pha
PushLong #HowMuchStack
pha
_MMStartUp
pla
ora #$0f00 ;OR in an arbitrary auxiliary ID
pha
PushWord #$C001 ;fixed, locked, use specified bank
PushLong #0 ;(specify bank 0)
_NewHandle
tsc
sta theOldStack
bcs NoStackSpace ;still set from _NewHandle
tcd
lda [1]
tcd
; clc ;carry is already clear
adc #HowMuchStack-1
NoStackSpace pha
ldx #$fe
keepStack lda >$000100,x
sta stackImage,x
dex
dex
bpl keepStack
pla
tcs
jsl RealCDAentry ;carry is clear if large stack available
php
php
pla
sta pRegister
sei
ldx #$fe
restoreStack lda stackImage,x
sta >$000100,x
dex
dex
bpl restoreStack
lda theOldStack
tcs
lda pRegister
pha
plp
plp
lda 1,s
ora 3,s
beq noDispose
_DisposeHandle
bra Exit
noDispose pla
pla
Exit plb
pld
rtl
pRegister ds 2
theOldStack ds 2
stackImage ds.b 256










