ScaleTo::init:
		lap	param[$0]
		bnt	code_0080
		lap	param[$1]
		aTop	client
		lsp	param[$0]
		ldi	$2
		ge?
		bnt	code_0080
		lap	param[$2]
		aTop	endScale
		lsp	param[$0]
		ldi	$3		; z
		ge?
		bnt	code_0080
		lap	param[$3]
		aTop	step
		lsp	param[$0]
		ldi	$4		; scaleX
		ge?
		bnt	code_0080
		lap	param[$4]
		aTop	waitCount
		lsp	param[$0]
		ldi	$5		; scaleY
		ge?
		bnt	code_0080
		lap	param[$5]
		aTop	caller
code_0080:	pToa	waitCount
		aTop	saveWaitCount
		pushi	$6		; maxScale
		push0
		pToa	client
		send	$4
		bnot
		push
		pToa	endScale
		le?
		bnt	code_0094
		ldi	$1
code_0094:	aTop	scaleDir
		ret

ScaleTo::doit:
		link	$1
		lsg	global[$40]
		pToa	waitCount
		sub
		push
		ldi	$0
		gt?
		bnt	code_010c
		pToa	scaleDir
		bnt	code_00b6
		pushi	$6		; maxScale
		push0
		pToa	client
		send	$4
		bnot
		push
		pToa	step
		add
		jmp	code_00c2

code_00b6:	pushi	$6		; maxScale
		push0
		pToa	client
		send	$4
		bnot
		push
		pToa	step
		sub
code_00c2:	sat	temp[$0]
		pushi	$6		; maxScale
		push1
		push
		pushi	$4		; scaleX
		push1
		push
		pushi	$5		; scaleY
		push1
		push
		pToa	client
		send	$12
		bnot
		pToa	scaleDir
		bnt	code_00f0
		pushi	$6		; maxScale
		push0
		pToa	client
		send	$4
		bnot
		push
		pToa	endScale
		ge?
		bnt	code_0105
		pushi	$95		; 149, dispose
		push0
		self	$4
		bnot
		jmp	code_0105

code_00f0:	pushi	$6		; maxScale
		push0
		pToa	client
		send	$4
		bnot
		push
		pToa	endScale
		le?
		bnt	code_0105
		pushi	$95		; 149, dispose
		push0
		self	$4
		bnot
code_0105:	pTos	saveWaitCount
		lag	global[$40]
		add
		aTop	waitCount
code_010c:	ret

ScaleTo::dispose:
		link	$1
		ldi	$0
		aTop	endScale
		ldi	$6		; maxScale
		aTop	step
		ldi	$1
		aTop	waitCount
		pushi	$144		; 324, scaler
		push1
		push0
		pToa	client
		send	$6
		bnot
		pToa	caller
		bnt	code_0138
		sat	temp[$0]
		ldi	$0
		aTop	caller
		pushi	$c7		; 199, cue
		push0
		lat	temp[$0]
		send	$4
		bnot
code_0138:	pushi	$95		; 149, dispose
		push0
		super	Scaler, $4
		bnot
		ret

