Thanks Rick, I might be confused. I'm going to use your routine. > But to get a block of temporary memory, you need to call the Toolbox function > TempNewHandle, like this: > > h& = FN TempNewHandle&(size&, @OSErr%) > > where FN TempNewHandle& is defined like this: > > '-------------------------------------------------------- > LOCAL FN TempNewHandle&(size&, OSErrAddr&) > ` CLR.L -(SP) > ` MOVE.L ^size&,-(SP) > ` MOVE.L ^OSErrAddr&,-(SP) > ` MOVE.W #$001D,-(SP) > ` DC.W $A88F > ` MOVE.L (SP)+,^handle& > END FN = handle& > '-------------------------------------------------------- > > The available Temporary Memory is often (but not always) larger than the > available System Heap space, so you will probably have a better chance of > getting a block if you get it from Temporary Memory. > >> >> BTW, can I dispose temporary memory block using DEF DISPOSEH? > > Yes. > > - Rick